質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.34%
Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

261閲覧

Unity オブジェクトが意図しない座標に生成される

ryu18_

総合スコア4

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2024/09/15 02:21

編集2024/09/15 02:53

前提

 Unityで、2 bone IKを用いてアニメーションを作ろうと考えています。

発生している問題・エラーメッセージ

 コードを実行したところ、Target, Hint, Collider は意図した位置に生成されるのですが、3Dモデルだけがy座標に-1だけずれた位置に生成されてしまいます。

該当のソースコード

 UIの操作しかわからないため、必要なソースコードがあればおっしゃっていただけると幸いです。

RigのディレクトリはGameObjectの配下に配置しました。
あとはUnityのデフォルトの設定のままにしています。

試したこと

 AnimatorのControllerに、サンプルのControllerを設定する→問題なく動かせた。
Rigを削除して実行する→問題なく動かせた。

 また、2 bone IK は正しく機能していました。

補足情報(FW/ツールのバージョンなど)

 3Dモデルは、Asset Storeで無料で入手できる、3D Character Dummy というモデルを使っています。

 Unity Editor のバージョンは、2022.3.45f1 を使っています。

追記

実行時の様子です。

実行前
実行前

実行後
実行後

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fiveHundred

2024/09/15 02:37

その3Dモデルなどを生成しているコードを記載してください。 また、その3Dモデル自体が元々-1ずれている場合もあるので、そちらも確認(必要ならその画像も提示)してください。
ryu18_

2024/09/15 03:01

ご返信ありがとうございます。 モデルを生成しているコードはどこを探せばよろしいでしょうか? もしUIでのパラメタをお見せするだけでもよろしければ、必要なパラメタをおっしゃっていただけると幸いです。 3Dモデルについては、写真を追加させていただきました。実行後にずれてしまうようです。
fiveHundred

2024/09/15 04:30

コードとはC#スクリプトのことです。 この様子だとどこにもC#スクリプト使ってないと思われますが、それでいいですか。 また、Unityで「生成」というと「Instantiate()」のことを指すことが多いです。 この状態だと「シーンに配置して再生するとずれる」、と言う表現が適切でしょう。 あと怪しいのが、PlayerゲームオブジェクトのTransformのy座標が1になっている点が気になります。 こちらで「3D Character Dummy」をインポートして使うと、y座標は0になっています。 具体的にどのような手順でモデルやIKを設定したのでしょうか?
ryu18_

2024/09/15 08:27

はい。C♯のスクリプトはどこにも使ってないです。 ”また、Unityで「生成」というと” ご指摘ありがとうございます。 y座標を1にしたのは、このモデルの座標が体の中心を指すため、下半身が地面に埋まってしまうからです。y座標を0にしても同じように座標がずれてしまいました。 設定した手順は、 1.インポートしたモデルを、prehubからドラッグアンドドロップして配置。 2.モデルの名前を「Player」に変更し、Animation Rigging の、Rig Setup を押して、Playerの直下にRig1を作成。 3.両腕両足に、two Bone IK を設定する。  ①Rig1の直下にRightArmRigを作成し、さらにその直下にtargetとhintを作成。手のひらと肘にそれぞれの座標を合わせる。  ②RightArmRigに、Add Component から、Two Bone Constraintを選択して、適宜適切なパーツをパラメタに入れる。  ③これを各腕各脚に一つずつ適用。 3.モデルが地面に埋まらないように、モデルのy座標を1にして配置し、再生。 このように操作しました。
guest

回答1

0

ベストアンサー

詳細は分かりませんが、以下のように設定したところ、少なくとも地面に埋もれてしまうということは無かったです。

  1. 以下のように、空のゲームオブジェクトを配置

イメージ説明
2. rigにAdd ComponentボタンからRigコンポーネントを追加
3. lfikとrfikにAdd ComponentボタンからTwo Bone Constraintを追加
4. PlayerにAdd ComponentボタンからRig Builderを追加し、Rig Layersにrigを追加
5. 以下のように(3D Character Dummyの)DummyType01をPlayerに配置
イメージ説明
6. 以下のようにTwo Bone Constraintを設定

  • lfik

イメージ説明

  • rfik

イメージ説明

投稿2024/09/15 11:16

fiveHundred

総合スコア10172

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryu18_

2024/09/16 17:03

回答ありがとうございます! どうやらAnimatorのavatarが設定されてしまっていたのが原因のようでした。 解決できました、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.34%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問