【Unity】人型キャラクターの構成要素について(キャラクターのパーツのTransformを取得する)
Unityにおいて変数を知ることは熟練度を上げることや、思ったことを再現することに非常に重要な要素だと最近思っています。
今回はUnityの公式アセット、Unity-chanを使いながら人型キャラクターについて軽めに説明します。
別にこれがわからないとキャラクターをうごかせない訳ではないのですが、知っておくとキャラクターの情報を取得するときに使えるかもしれません。またキャラクターのアニメーションクリップを作成するときや、一部分のパーツだけ動かしたいときなどは知っていることが必須の項目になります。
ユニティちゃんは一つのオブジェクトとして存在していますが中身は腕や脚・頭、詳しくみると手や足などこんな感じに細かく要素に分かれています。
たとえばもしユニティちゃんの脚だけ動かしたいとなった場合は
このようにCharacter1_LeftUpLegのローテーションをいじると脚だけを動かすことができます。
アニメーションはこのように各要素の数値を時間ごとに記録させ、それを再生させることで決まったモーションで動かしています。
したがってこの要素を理解し、数値を取得できるようになるとアニメーションクリップも作成できます。
ちなみにポジションを動かすと・・・
あー!僕達のアイドルユニティちゃんの脚がああああ!
となります。
ではこの要素ってどうすれば取得できるのでしょうか?
毎回getfindしたりpublicで設定するのって非常にめんどくさいですよね。
Unity上ではこの要素についてHumanBodyBonesとして定義されています。
要素の詳細は公式のマニュアルにありますので参考にしてみてください。
どうやって使うかなのですが、実際にユニティちゃんの左脚の情報を取得するスクリプトで説明します。
このような手法で取得できます。
実際に実行すると
このようにきちんとTransformの情報を取得できていることがわかると思います。
次回はこれを基礎としてアニメーションクリップを作成する方法を紹介できたらなと思います。