Unityでキャラクターに正確に武器を持たせる

今回はUnityで主人公キャラクターに正確な位置と角度で武器を持たせてみようと思います。

例えばキャラクターが武器を持っているようにキャラクターの子要素に武器を配置し、なんとなく位置と角度を指定したとします。
ですが、実際に銃を構えてみると銃を構えるアニメーションの手の位置と銃の位置が一致しません。

これを小まめに修正していってそれなりの位置や角度を指定していた方も多いと思います。わたしだけ?(謎)
新しい武器を手に入れる度にこんな面倒臭い事を繰り返すのはかなり大変です。

そこでもっと簡単に正確に銃を構えた時の手の位置と角度に銃を合わせられるようにしたいと思います。

正確性1

上のようなキャラクターの右手の子要素に装備品を持っているとします。


正確性2

上のようにそれなりに位置が合っている場所に銃を移動し、角度を合わせます。
銃を持っている状態のキャラクターではないのでここでは正確に位置などを合わせるのは難しいです。

正確性3

スポンサーリンク

Unityを実行している時に正確な位置を取得する

実際にUnityの実行ボタンを押して一時停止してSceneウインドウでキャラクターの手の位置を見てみましょう。

この記事を作成する段階でちょっと角度を合わせてしまったので手の位置以外は合ってしまってますが・・・(^_^;)
正確に持たせたつもりでもかなりのギャップがあります。

一時停止ボタンを押したままでシーン上の銃の位置と角度を合わせます。

正確性4

上のように位置と角度を合わせました。

銃の所にはみ出ているのは左手の位置なので、今回は無視します。
この左手の位置も正確に置きたい場合はIKを使うとうまく出来ますが、それはまたの機会に・・・

正確性5

正確性6

そのままの状態で銃のインスペクタの歯車をクリックしCopy Componentを選択します。

正確性7

Unityの実行ボタンを押して、実行画面を解除し編集状態に戻します。
次に銃を選択し、インスペクタ上の歯車をクリック、Paste Component Valuesを選択します。
これで銃を構えた時の正確な位置が設定されました。

もう一度Unityの実行ボタンを押して試してみましょう。
銃を構えた状態の銃の位置と角度が先ほど修正した位置にちゃんと置かれていると思います。

正直なところ、武器をうまく持たせる為ずーっと調整してましたが・・・、こんなに簡単に位置を合わせる事が出来たんですね。
他の武器を装備させる時ももちろん使えます。