Blenderで3Dキャラクターモデルを作っていると、自作のモデルをUnityで動かしてみたくなることがあります。
幸いUnityでは「人型のボーン構造を持つキャラクター」であればアニメーションを使いまわせるので動かすこと自体は簡単なのですが、そのためにはあらかじめ決まったボーン構造にしないとダメなんですよね。そして一体どういうボーン構造にすれば良いのかが少しわかりづらいので、私も最初に自作モデルを動かそうとしたときには苦労しました。
そこでここでは、他の皆さんが同じような苦労をしなくて済むようにBlenderでUnityのヒューマノイドアニメに対応した3Dキャラクターモデルを作る方法を説明しますね。
この記事はBlenderやUnityの使い方が分かっている方を対象としているので、各ソフトの使い方の解説は省略します。予めご了承ください。
そもそも、Unityのヒューマノイドアニメ対応リグはどういうボーン構造なのか?
でははじめに、そもそもUnityのヒューマノイドアニメーションに対応するためにはどういったボーン構造にする必要があるのか?という部分から説明します。
Unityのヒューマノイド対応リグの構造は大まかに分けると次の3つになります。
- 体
- 頭
- 手の指
それぞれ詳しく見ていきましょう。
体のボーン構造
まずは体のボーン構造です。少々複雑ですが、各ボーンの親子関係を一覧で示すと次のようになります(※印は必須のボーン)。
- Hips:お尻(上の図の5番)※
- Upper Leg:脚の付け根(11番)※
- Lower Leg:ひざ(12番)※
- Foot:かかと(13番)※
- Toes:つま先(14番)
- Foot:かかと(13番)※
- Lower Leg:ひざ(12番)※
- Spine:脊椎(4番)※
- Chest:お腹(3番)※
- Upper Chest:胸(2番)
- Shoulder:肩(7番)
- Upper Arm:上腕(8番)※
- Lower Arm:ひじ(9番)※
- Hand:手のひら(10番)※
- (以下、手の指のボーン構造に続く)
- Hand:手のひら(10番)※
- Lower Arm:ひじ(9番)※
- Upper Arm:上腕(8番)※
- Shoulder:肩(7番)
- (以下、頭のボーン構造に続く)
- Upper Chest:胸(2番)
- Chest:お腹(3番)※
- Upper Leg:脚の付け根(11番)※
Hipsがルートで、あとはズラズラっと子が連なっているイメージです。なおここで示した親子関係は非常に重要なので、Blenderでボーンを作る際は必ず上記の親子関係になるように作ってください。
頭のボーン構造
次は頭のボーン構造です。こちらは簡単で、
- Upper Chest(体のボーン構造の続き)
- Neck:首(体の図の6番)
- Head:頭(同じく1番)※
- Jaw:顎
- Left Eye:左目
- Right Eye:右目
- Head:頭(同じく1番)※
- Neck:首(体の図の6番)
となっています。
手の指のボーン構造
最後は手の指のボーン構造です。指のボーンはすべて任意なので省略しても構いません。
- Hand(体のボーン構造の続き)
- Thumb Proximal:親指の付け根
- Thumb Intermediate:親指の第二関節
- Thumb Distal:親指の第一関節
- Thumb Intermediate:親指の第二関節
- Index Proximal:人差し指の付け根
- (以下親指と同じ)
- Middle Proximal:中指の付け根
- (以下同じ)
- Ring Proximal:薬指の付け根
- (以下同じ)
- Little Proximal:小指の付け根
- (以下同じ)
- Thumb Proximal:親指の付け根
BlenderでUnity用のアーマチュアを作る方法
さてボーン構造さえ理解できれば、あとはその通りにBlenderでアーマチュアを作ればOKです。ただしBlender標準のヒューマノイドリグは少し複雑すぎるので、個人的には面倒でもリグを一から自作してしまったほうがシンプルで良いと思います。
参考までに私がゴリラのキャラクターを作ったときのアーマチュアを示すと次の通りです。
作り方のポイントはボーンの親子関係は絶対に間違えないようにすることです。間違えるとUnityにインポートしたときにエラーが出てヒューマノイドアニメに対応できなくなってしまうのでご注意ください。
おわりに
以上、簡単ではありますが
- Unityのヒューマノイドアニメに対応したリグの構造
- BlenderでUnity用のアーマチュアを作る方法
といった点についてザックリと説明しました。BlenderでUnity用のリギングをするのは少し大変ですが、正しく作って自作のキャラクターを動かすことができるととても感動するので、3Dゲームを作っている方はぜひ一度チャレンジしていただければと思います。
この記事がゲーム開発のお役に立てば幸いです。