borndigital主催 autodesk mayaltセミナー資料...

34
BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim 使いこなしTips(キャラアニメ編) Unity Technologies Japan 合同会社 コミュニティエバンジェリスト 小林 信行 2013/11/28 ×

Upload: -

Post on 26-May-2015

6.783 views

Category:

Technology


0 download

DESCRIPTION

2013/11/28に開催されました、『HumanIK×Mecanim徹底解説セミナー』で使用しました資料を一部手直ししたものです。 当日のセミナーの内容は、以下のURLを参照してください。 http://www.borndigital.co.jp/seminar/2537.html なおセミナーで使用しましたMayaLTは、Extension for Autodesk Maya LT 2014です。 「Unityに送る」機能を試したい場合には、Extensionが必要ですのでご注意ください。

TRANSCRIPT

Page 1: BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim使いこなしTips(キャラアニメ編)

BornDigital主催 Autodesk MayaLTセミナー資料

HumanIK×Mecanim使いこなしTips(キャラアニメ編)

Unity Technologies Japan 合同会社コミュニティエバンジェリスト小林 信行

2013/11/28

×

Page 2: BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim使いこなしTips(キャラアニメ編)

キャラアニメに絞ってMayaLTの使いこなしについて語る

本セミナーのテーマ

…と題して、インディー開発者向けのTipsをご紹介しようと思います!

×

Page 3: BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim使いこなしTips(キャラアニメ編)

ちなみに、私は…•元コンシューマゲームのクリエイティブ・ディレクター•原作付きアニメのゲーム化を中心に、オリジナルシナリオで、複雑な分岐を扱うADVゲームを作るのが得意です•Mayaは、Maya 2012ぐらいから使ってます(ちなみに、Mayaに初めて出会ったのは、1999年頃)

Page 4: BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim使いこなしTips(キャラアニメ編)

UnityとMayaを使って、ゲームをつくったり…

水着姿の少女と共に島の中を歩き回りながらターゲットを探し、輪投げをするゲームです。成功するとチキ神が解放されます

Page 5: BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim使いこなしTips(キャラアニメ編)

デザイナーさんじゃなくても、Mayaを使うようになった理由:

•小さな会社/チームだと、専任の3Dグラフィックチームがない•外注のグラフィック会社は、Mayaを使ってるところがすごく多い•3Dデータには、PhotoshopのPSDファイルのように、デファクトスタンダード的なファイル形式がないので、仮にデータが読めたとしても、アプリによって見た目がかなり違ったりする

•つまり、3Dデータを作ったアプリが使えないと、極めて不便

インディー開発者の状況と同じ

Page 6: BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim使いこなしTips(キャラアニメ編)

とはいっても、Maya導入はハードルが高い…•ハイエンドのプロツールなので、会社ならともかく個人で所有するには、導入&維持費の負担が大きいです…

•機能が多すぎて、何から覚えればいいのか、わかりづらい…そもそも全ての機能を知っている人がなかなかいない…

•Mayaを使うためにはMELって言語をマスターする必要があると聞いたけど…

MayaLTの登場でハードルが下がりました!

Page 7: BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim使いこなしTips(キャラアニメ編)

MayaLTの体験版から、使ってみましょう!

そのサンプルワークフローとして、Asset StoreからDLした3Dモデルに新規にアニメーションを付けてみます!

×

Page 8: BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim使いこなしTips(キャラアニメ編)

3DキャラモデルをUnityにインポートするまでの作業モデリング UV設定 スケルトン設定

スキンのバインド

ウェイト調整

コントロールリグ作成

アニメーション作成

アニメーションベイク

FBX出力

モデリングツールキット

UVテクスチャエディタ

HumanIKスケルトン作成

スムーズバインド

スキンウェイトペイントツール

マテリアル設定

ハイパーシェード

スケルトン定義&リグ作成

FK/FBIKカーブエディタ ベイク処理 Send to Unity

Asset StoreからモデルをDLすることで、ここの作業のみとなります

MayaLT機能

Page 9: BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim使いこなしTips(キャラアニメ編)

それでは実際に使ってみましょう

×

Page 10: BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim使いこなしTips(キャラアニメ編)

Unity,MayaLTの準備Unity 1.新規プロジェクトの作成(BDMayaLT)

2.Asset StoreからKyleの3DモデルをDL3.ProjectウィンドウからAssets>Robot Kyle>Model と進み、「Robot Kyle」上で右クリック、「Reveal in Finder」を選ぶ

4.Robot Kyle.fbxをデスクトップ等にコピーしておく。(移動しないように注意)5.同じくRobot Kyle内のTexturesフォルダをファインダー等で開き、デスクトップ等に中身をコピーしておく

MayaLT 6.ファイル>プロジェクトウィンドウより、「新規」を選び、現在のプロジェクトにKyle等の名前を付けて、「適用」する

7.ファインダー等より6で作成したプロジェクト内のscenesフォルダを開き、そこに4でコピーしておいたFBXをD&Dする

8.Kyleのテクスチャを、6で作成したプロジェクト内のsourceimagesフォルダにD&Dする。9.ファイル>Unityに送る>Unityプロジェクトを設定で、1で作成したUnityプロジェクトを指定する10.MayaLT上で適当なオブジェクトを作成して、試してみよう

Page 11: BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim使いこなしTips(キャラアニメ編)

Unity,MayaLTの準備:トラブルシューティング

Mayaバージョン情報より、使用しているMayaLTがExtensionかチェックプラグインマネージャよりGamePipeline.bundle等がロード/自動ロードになっているかチェック

「Unityに送る」がMayaLTのメニューにない

Page 12: BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim使いこなしTips(キャラアニメ編)

Unity,MayaLTの準備:トラブルシューティング

1.MayaLTで、念のために以下をチェックプリファレンス>設定>作業単位より、リニアが「センチメートル」になってるか、念のためチェック「Unityに送る」で書き出しする時の、オプションで詳細オプション>単位>変換先のファイル単位が「センチメートル」になっているかチェック

「Unityに送る」でUnityにオブジェクトを送り、  シーンにドロップすると、ずいぶん小さく表示される

2.Unityで、以下をチェックProjectウィンドウで、MayaLTから送ったオブジェクトをクリックし、Inspector>Modelタブ Meshes /

Scale Factorを0.01から1に変更し、Applyする

➡このように設定すると、Maya上での1グリッドが、Unityでの1グリッド(約1m)と一致するようになります(Mayaでキューブを作って、確かめてみよう!)

Page 13: BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim使いこなしTips(キャラアニメ編)

Mayaでオプションを指定して実行したい時には、メニュー最右の四角部分にカーソルを合わせて選択する

プリミティブ作成時には、「インタラクティブ作成」のチェックは外しておいたほうがよい

Mayaのミニ知識:コマンドオプションの出し方

Page 14: BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim使いこなしTips(キャラアニメ編)

Robot KyleをMayaLTに読み込んでみよう1.ファイル>新規シーン2.ファイル>読み込み、よりscenesフォルダが開くので、Robot Kyle.fbxを選択し「読み込み」3.シェーディング>すべてをスムーズシェード、ハードウェアテクスチャリング に設定すると、テクスチャを貼られた状態のKyleが表示されます

Page 15: BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim使いこなしTips(キャラアニメ編)

Mayaのミニ知識:ハイパーシェード

MayaLTプロジェクト内のsourceimagesフォルダ内に、Kyleのテクスチャを前もってUnityからコピーしておけば、Robot Kyle.fbxをシーン内に読み込んだ時点で、左のようなマテリアルがMayaLT上で自動設定されます。MayaLT上でマテリアルを設定するには、ハイパーシェードを利用します。

Page 16: BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim使いこなしTips(キャラアニメ編)

Mayaの重要操作:ピボット移動モード

初期状態でのピボット位置 「Insertキー」もしくは「Dキー押しっぱなし」で、ピボット移動モードに入る

ピボット移動モードのままで、X軸上に沿ってピボットを移動してみる

回転ツールに切り替えると、移動したピボットを中心にキューブが回転することがわかる

Kyleなら腰にあります

移動したピボット

ピボットとは、オブジェクトの移動/回転/スケールを行う際に中心となる点のことです。Mayaを使ってこれらのピボットを、モデルをゲーム内で使うのに便利な位置に移動できます。ピボットは単一のオブジェクトだけでなく、オブジェクトをグループ化したもの全体に独自で設定することなどが可能です。

Page 17: BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim使いこなしTips(キャラアニメ編)

Robot Kyleにコントロールリグをつけてみよう

Shift+クリックで全部開く

ウィンドウ>アニメーションエディタ>HumanIK で開く

ここをクリックして、アウトライナーを開く

キャラクターコントロール>定義>スケルトン を選んで、定義ウィンドウを出す

すべて設定が終わると、キャラクターコントロールウィンドウの表示がこう変わります

Page 18: BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim使いこなしTips(キャラアニメ編)

コントロールリグのセンター定義をどこにする?

HipsTranslation

Kyleのように、スケルトン全体のセンターが腰(お尻)の位置にあるモデルの場合、HipTranslationの位置で右クリックして、「Assign Selected Bone」を選択します。

Page 19: BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim使いこなしTips(キャラアニメ編)

コントロールリグのセンター定義をどこにする?

Reference

多くの人型モデルは、スケルトン全体のセンターを足の間にあるReferenceの位置に持っています。Referenceの位置で右クリックして、「Assign Selected Bone」を選択します。

Page 20: BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim使いこなしTips(キャラアニメ編)

Kyleのスケルトン定義をする

RootHip

Left_Thing_Joint_01

Left_Knee_Joint_01

Left_Ankle_Joint_01

Ribs

Head

Left_Upper_Arm_Joint_01Left_Forearm_Joint_01

Left_Wrist_Joint_01

最低限、10箇所のジョイントを定義する

ミラー定義ボタンが押されていると、右側が自動設定される

Page 21: BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim使いこなしTips(キャラアニメ編)

コントロールリグを設定する

スケルトン定義をロックした後、コントロールタブを選択する

ソースより、ドロップダウンメニューから「コントロールリグ」を選択する

Kyleにコントロールリグが設定された。FBIKの機能をチェックしてみよう!

Page 22: BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim使いこなしTips(キャラアニメ編)

フルボディ/ボディパーツモード/スタンスポーズ

フルボディ ボディパーツモード スタンスポーズ

位置ピン/回転ピン/ピン一時解除

キャラクターコントロールメニューボタン(スケルトンへのベイク処理のみ使用する)

フルボディ時の挙動 ボディパーツ時の挙動

Page 23: BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim使いこなしTips(キャラアニメ編)

HumanIKコントロール/補助ピボット

エフェクタのIK100%の時 エフェクタのFK100%の時

エフェクタ上で右クリックするとピボットエフェクタ(補助ピボット)や補助エフェクタを作成するサブメニューが出ます

設定した補助ピボット等を削除する時には、もう一度右クリックでサブメニューを出します

補助ピボットは、アニメーションを作る際に非常に便利な機能です。歩行サイクルの接地を管理したり、視線を調整したりするのに使います

設定されたピボットエフェクタ

IKとFKの違いは?

Page 24: BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim使いこなしTips(キャラアニメ編)

歩行用の補助ピボットをつけてみようピボットエフェクタを設定すると、まず足首のエフェクタの部分に設定される

ピボットを選択し、Dキーを押したまま、ピボット移動モードに入ったら、X軸/Y軸ハンドルのみを動かして、かかとまで移動させる。この時、同時にXキーやVキーをさらに押して、グリッドや点にくっつけるとよい

ピボットのY座標がほぼゼロであることを確認する

Dキー押しっぱなしで移動

Page 25: BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim使いこなしTips(キャラアニメ編)

歩行用の補助ピボットをつけてみよう同様にして、足の底、つま先にも補助ピボットを追加する

右足にも同様に補助ピボットをつける。視線チェックのために頭のエフェクターにも補助ピボットを付けて完成。

Page 26: BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim使いこなしTips(キャラアニメ編)

実習:歩行アニメーションをつけてみる当日、短時間ですが歩行アニメーションをつける過程をハンズオンしていただきました。以下に、簡単にポイントをまとめておきます。

•補助ピボットは、最低限かかとにつけておく。•歩行アニメーションの練習用に、MayaLTの中に入っているサンプル素材を参考にするとよい。•サンプル素材は、ウィンドウ>一般エディタ>サンプルバイザー、より「モーションキャプチャサンプル」の中のWalkstraight.ma等のデータを選ぶ。データの上で右クリックでシーンに読み込まれる。

•歩行アニメーションをループで作成するためには、最低限1サイクルの動きを作成すること。例として右足が接地している状態から始まるアニメーションならば、右足⇒左足⇒再び右足のループが必要ということ。最後の右足接地のポーズは、位置は違うが最初の右足接地ポーズと同じでもよい。

•各足の接地のタイミングは、モーションキャプチャデータをタイムスライダで動かしながら再生することで、参考にするとよい

Page 27: BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim使いこなしTips(キャラアニメ編)

実習:歩行アニメーションをつけてみる•アニメーションのキーを打つときには、現在のモードが「フルボディ」なのか、「ボディパーツ」かに注意する。「フルボディ」ならばどのエフェクタを選んでいても全てのエフェクタにキーが打たれるが、「ボディパーツ」時には選択しているエフェクタにしかキーは打たれない。

•各々「フルボディ」/「ボディパーツ」時での、「スタンスポーズに戻す」ボタンの動作の違いを工夫して、身体の一部分だけリセットするなどに使うとよい。例:「腰に付けた回転を元に戻す」時に、一時「ボディパーツ」にした後でスタンスポーズに戻すことで、ポーズに極力影響を与えないで、腰の回転のみリセットするなど

•かかとの補助ピボットは、移動モードで接地を確認するのに使う他、回転モードで足首の角度を変えるのにも使える。

•ポーズを変えないで、身体の位置だけずらしたい時には、両足のピンを移動/回転共に外した後、腰のエフェクターを指定して位置を移動し、再度キーを打つ。

•キーの移動は、移動したいキーの上で、Shiftキーを押しながらキーをクリックして範囲指定した後で、カット&ペーストする。もしくはキーを範囲指定した後で、中ボタンドラッグで移動する。

•HumanIKのアトリビュートを出したい時には、キャラクターコントロール上で適当なエフェクタを選んだ後で、Ctrl+Aでアトリビュートを表示する。

Page 28: BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim使いこなしTips(キャラアニメ編)

実習:歩行アニメーションをつけてみる•作業中のピンの操作やモードのチェンジは、ビュー上のエフェクタの上で右クリックして現れるショートカットメニューを使うと便利

•作業中のビュー切り替えは、スペースキーで表示されるラジアルメニューから、中央の「Maya」を右クリックして現れるショートカットメニューを使うと便利

Page 29: BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim使いこなしTips(キャラアニメ編)

アニメーションをスケルトンにベイクする

コントロールリグの階層

Kyleのメッシュとスケルトンの階層

コントロールリグに打たれたアニメーションキー

コントロールリグの各エフェクタに打たれたアニメーションキーをUnityで使うためには、コントロールリグに打たれたアニメーションを再びKyleのスケルトンにベイク(焼き移す)します。この工程をスケルトンへのベイクといいます。一度ベイクすると、コントロールリグが解除されますので、この段階で必ずシーンをセーブしましょう。

Page 30: BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim使いこなしTips(キャラアニメ編)

アニメーションをスケルトンにベイクする

キャラクターコントロールメニューボタン(スケルトンへのベイク処理のみ使用する)

スケルトンへのベイク処理が終われば、コントロールリグの階層をデリートしても大丈夫です。

スケルトンにベイクされたアニメーションキー

Kyleのメッシュとスケルトンの階層

こちらはデリートしてもOK

Page 31: BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim使いこなしTips(キャラアニメ編)

Mecanim重要Tips:バインドポーズノードを持つオブジェクトをUnityに転送する

Kyleの場合には、バインドポーズノードを持つオブジェクトはスケルトン側にあります。

Mecanim用にアニメーションを含むFBXを出力する際には、必ずバインドポーズノードを含んでいるオブジェクトを一緒に転送するようにします。バインドポーズはメッシュ側にあることもあるので、要注意です。

Page 32: BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim使いこなしTips(キャラアニメ編)

Mecanim重要Tips:バインドポーズノードを持つオブジェクトをUnityに転送する

バインドポーズがアニメーションと一緒に転送されている場合、Mecanim側のPoseメニューに「Sample Bind-Pose」という項目が現れます

「Sample Bind-Pose」を選ぶと、Maya上でのスタンスポーズが表示されます。「Enforce T-Pose」で元に戻ります

Page 33: BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim使いこなしTips(キャラアニメ編)

参考:アニメーションデータ上での移動のあり/なしと   キャラクターコントローラの設計について

•キャラクターコントロール内でプログラムで移動設定をする場合•原点でアニメーションがループしている場合(移動がオフセットされているアニメーションデータの場合)→キャラの移動量はプログラム側で制御する

•モーションキャプチャデータのように、移動が元のアニメーション自体にあるデータで、そのデータ上の移動量をキャラの移動量として使う場合(オフィシャルのMecanimサンプルの多くがこれ)

ゲーム用に作られたループアニメーション向けの

Mecanim設定

モーションキャプチャ等の元がループしていないアニメーション用向けの

Mecanim設定

Page 34: BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim使いこなしTips(キャラアニメ編)

おまけ:MayaLTで自前でIKハンドルを追加する方法

https://gist.github.com/hiko9lock/7660365http://hiko9lock.blogspot.jp/2013/11/mayaltikhandle.html

情報、ありがとうございます!