今回はUnityで主人公キャラクターに正確な位置と角度で武器を持たせてみようと思います。
例えばキャラクターが武器を持っているようにキャラクターの子要素に武器を配置し、なんとなく位置と角度を指定したとします。
ですが、実際に銃を構えてみると銃を構えるアニメーションの手の位置と銃の位置が一致しません。
これを小まめに修正していってそれなりの位置や角度を指定していた方も多いと思います。わたしだけ?(謎)
新しい武器を手に入れる度にこんな面倒臭い事を繰り返すのはかなり大変です。
そこでもっと簡単に正確に銃を構えた時の手の位置と角度に銃を合わせられるようにしたいと思います。
上のようなキャラクターの右手の子要素に装備品を持っているとします。
上のようにそれなりに位置が合っている場所に銃を移動し、角度を合わせます。
銃を持っている状態のキャラクターではないのでここでは正確に位置などを合わせるのは難しいです。
Unityを実行している時に正確な位置を取得する
実際にUnityの実行ボタンを押して一時停止してSceneウインドウでキャラクターの手の位置を見てみましょう。
この記事を作成する段階でちょっと角度を合わせてしまったので手の位置以外は合ってしまってますが・・・(^_^;)
正確に持たせたつもりでもかなりのギャップがあります。
一時停止ボタンを押したままでシーン上の銃の位置と角度を合わせます。
上のように位置と角度を合わせました。
銃の所にはみ出ているのは左手の位置なので、今回は無視します。
この左手の位置も正確に置きたい場合はあらかじめ持たせる武器に合わせてBlender等で作成するアニメーションの手の位置と角度を作成したり、
IKを使うとうまく合わせられます。
IKを使って手を合わせたい方は
を参照してみてください。
銃を選択した状態のインスペクタを表示します。
↑のように歯車をクリックします。
Copy Componentを選択します。
Unityの実行ボタンを押して、実行画面を解除し編集状態に戻します。
次に銃を選択し、インスペクタ上の歯車をクリック、Paste Component Valuesを選択します。
これで銃を構えた時の正確な位置が設定されました。
もう一度Unityの実行ボタンを押して試してみましょう。
銃を構えた状態の銃の位置と角度が先ほど修正した位置にちゃんと置かれていると思います。
正直なところ、武器をうまく持たせる為ずーっと調整してましたが・・・、こんなに簡単に位置を合わせる事が出来たんですね。
他の武器を装備させる時ももちろん使えます。