プログラミング系のネタをまとめていきます。

Unity メカニム

アニメーション関連用語

用語説明備考
アニメーションクリップ関連
アニメーションクリップ
AnimationClip
アニメーションデータ。キーフレームとカーブ情報。
アニメーションカーブ
AnimationCurves
アニメーションクリップ内のカーブ情報。
ボディマスク
BodyMask
スケルトンに含めるor除外するためのもの。アニメーションレイヤ、インポーターで使用される。
アバター関連
アバター
Avater
スケルトンをリターゲッティングするためのインターフェーススケルトン=ボーンジョイント構造
リターゲッティング
Retargeting
特定のモデル用のアニメーションを、別のモデルに適用すること
リギング
Regging
メッシュに対して、ボーンジョイントのスケルトン階層を構築すること
スキニング
Skinning
キャラクターのメッシュorスキンをボーンジョイントにひもづけるプロセス
マッスル定義
Muscle Definition
メカニム特有の概念。スケルトンを直感的に制御できる。
Tポーズ
T-pose
キャラクターが腕を真横に(Tの形状に)伸ばしたポーズ。アバターを作成するために必要なポーズ
バインドポーズ
Bind-pose
キャラクターがモデリングされた時のポーズ
ヒューマンテンプレート
Human template
事前に定義されたボーンマッピング。ボーンをFBXからアバターに変換する際に使用する
アニメータおよびアニメータコントローラ関連
アニメータコンポーネント
Animator Compponent
メカニムアニメーションシステムを使ってモデルをアニメーションさせるコンポーネント
ルートモーション
Root Motion
キャラクターのルートオブジェクトのモーション。アニメーションによる制御、外部からの制御の二つがある。
アニメータコントローラ(アセット)
Animatior Controller
アニメーションレイヤーを通じて、アニメーションステートマシン、アニメーションブレンドツリーを制御する。
アニメータコンポーネントによって制御される。
アニメータコントローラ(window)
Animation Controller
アニメータコントローラアセットを視覚化して編集するウィンドウ
アニメーションレイヤー
Animation Layer
アニメーションステートマシンを含み、モデル全体あるいは一部のアニメーションを制御する。
アニメーションステートマシン
Animation State Machine
アニメーションステートの相互作用を成魚するフラグ。
各ステートはアニメーションブレンドツリーまたは1つのアニメーションクリップを参照する。
アニメーションブレンドツリー
Animation Blend Tree
アニメーションクリップの継続的ブレンディングを行う
アニメーションパラメータ
Animation Parameters
スクリプティングとアニメータコントローラ間の連携に使用される。
インバースキネマティクス(IK)
Inverse Kinematics
非メカニム アニメーション関連
アニメーションコンポーネント
Animation Component
メカニムを使わないアニメーション

オリジナルの人体モデルの作成について


以下、一般的な 3Dモデリングパッケージ での作業です。

モデリング

  • スケールは一辺が1mのキューブを参考にする。
  • キャラクターの足がモデルの起点または アンカー地点 に立っているようにする。アンカーポイントは床に接している方が扱いやすい。
  • モデルを可能なかぎり Tポーズ とする。

リギング


ヒップがスケルトン階層の親ボーンとして、最低でも15のボーンがスケルトンに必要。
腕および脚は一対であるためネーミングもそれを反映すべき。(例えば左腕は "arm_L" 、右腕は "arm_R" 、等)

ボーン階層例
  • ヒップ - 背骨 - 胸 - 肩 - 腕上部 - 腕 - 手
  • ヒップ - 背骨 - 胸 - 首 - 頭
  • ヒップ - 脚上部 - 脚 - 足 - 足指 - つま先

公式ドキュメントの参考画像


スキニング


メッシュをスケルトンに紐付けるプロセス。

Soft Bindでは最大でも影響要素は4つ(Unityが扱える上限数)に抑えます。

MMDモデルをUnityにインポートしてみる

使ったもの


MMD4Mecanim(Beta)に含まれている [PMX2FBX]
http://stereoarts.jp/

因幡てゐ PMDファイル
http://nya.b.la9.jp/mmd/atochi.html

手順


1. PMX2FBXを使って、pmdファイルをfbxファイルに変換。

 コマンドプロンプトから。

> pmx2fbx tewi_test.pmd
 ※ファイル名を適当なものに変換しています。


2. Unityへインポート

 ドラッグ&ドロップするだけ。
 とりあえずシーンに配置したところ。

 ※テクスチャの参照は持ってこれないようです。


3. テクスチャをインポートしてマテリアル設定





 ※シェーダはユニティちゃんのものを利用しています。


4. アバター設定

 モデルプレハブを選択して、Inspector上で設定する。

 Rigタブの設定
 Animation Type を "Humanoid" に変更してApply。



 リグ割り当て
 Configure... ボタンを押して、編集モードへ。


 Mappingタブ

 元データがUnityの期待するデータに近いようで、ほぼ設定済みになっていました。

 ●シーンビュー
  ※修正を加えていない状態。


 ●アバター
  ※修正を加えていない状態。


 ●つま先の設定
  つま先が設定されていなかったので、手動で設定。


 ●顔の設定
  データ上にあごのボーンは存在しないので、はずす。
  目のボーンを変更。


 ※その他のボーンは問題なし。

 ●Muscles タブで細かい動作チェック
 ※各種スライダーを操作すると、シーンビューで可動範囲を確認できます。



5. ユニティちゃんのアニメーションをセットして再生




 再生動画


※物理演算、IK、表情は対応してません。

Menu

メインコンテンツ

プログラミング

機器

Macツール

各種情報

Wiki内検索

おまかせリンク

Androidアプリ

AdSense

技術書


管理人/副管理人のみ編集できます