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

Like this? Share it with your network

Share

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

  • 6,114 views
Uploaded on

2013/11/28に開催されました、『HumanIK×Mecanim徹底解説セミナー』で使用しました資料を一部手直ししたものです。 ...

2013/11/28に開催されました、『HumanIK×Mecanim徹底解説セミナー』で使用しました資料を一部手直ししたものです。
当日のセミナーの内容は、以下のURLを参照してください。
http://www.borndigital.co.jp/seminar/2537.html

なおセミナーで使用しましたMayaLTは、Extension for Autodesk Maya LT 2014です。
「Unityに送る」機能を試したい場合には、Extensionが必要ですのでご注意ください。

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
6,114
On Slideshare
5,598
From Embeds
516
Number of Embeds
5

Actions

Shares
Downloads
52
Comments
0
Likes
24

Embeds 516

https://twitter.com 449
https://tal2tot4uenli8d3lphbjvrrl237cfes-a-sites-opensocial.googleusercontent.com 61
http://s.deeeki.com 4
https://cybozulive.com 1
https://hashtagsjp.appspot.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. BornDigital主催 Autodesk MayaLTセミナー資料 HumanIK×Mecanim 使いこなしTips(キャラアニメ編) Unity Technologies Japan 合同会社 コミュニティエバンジェリスト 小林 信行 2013/11/28
  • 2. 本セミナーのテーマ キャラアニメに絞ってMayaLTの 使いこなしについて語る …と題して、 インディー開発者向けのTips をご紹介しようと思います!
  • 3. ちなみに、私は… •元コンシューマゲームのクリエイティブ・ディレクター •原作付きアニメのゲーム化を中心に、オリジナルシナリオ で、複雑な分岐を扱うADVゲームを作るのが得意です •Mayaは、Maya 2012ぐらいから使ってます (ちなみに、Mayaに初めて出会ったのは、1999年頃)
  • 4. UnityとMayaを使って、ゲームをつくったり… 水着姿の少女と共に島の中を歩き回りながらターゲットを探し、 輪投げをするゲームです。成功するとチキ神が解放されます
  • 5. デザイナーさんじゃなくても、 Mayaを使うようになった理由: • 小さな会社/チームだと、専任の3Dグラフィックチームがない • 外注のグラフィック会社は、Mayaを使ってるところがすごく多い • 3Dデータには、PhotoshopのPSDファイルのように、デファクト スタンダード的なファイル形式がないので、仮にデータが読めた としても、アプリによって見た目がかなり違ったりする • つまり、3Dデータを作ったアプリが使えないと、極めて不便 インディー開発者の状況と同じ
  • 6. とはいっても、Maya導入はハードルが高い… • ハイエンドのプロツールなので、会社ならともかく個人で所有す るには、導入&維持費の負担が大きいです… • 機能が多すぎて、何から覚えればいいのか、わかりづらい… そもそも全ての機能を知っている人がなかなかいない… • Mayaを使うためにはMELって言語をマスターする必要があると 聞いたけど… MayaLTの登場で ハードルが下がりました!
  • 7. MayaLTの体験版から、使ってみましょう! そのサンプルワークフローとして、 Asset StoreからDLした3Dモデルに 新規にアニメーションを付けてみます!
  • 8. 3DキャラモデルをUnityにインポートするまでの作業 モデリング MayaLT 機能 UV設定 マテリアル設定 スケルトン設定 モデリング UVテクスチャ ハイパー ツールキット エディタ シェード HumanIK スケルトン作成 ウェイト コントロール アニメーション アニメーション 調整 リグ作成 作成 ベイク スキンウェイト スケルトン定義 ペイントツール &リグ作成 FK/FBIK カーブエディタ ベイク処理 スキンの バインド スムーズ バインド FBX出力 Send to Unity Asset StoreからモデルをDLすることで、ここの作業のみとなります
  • 9. それでは実際に使ってみましょう
  • 10. Unity,MayaLTの準備 Unity 1.新規プロジェクトの作成(BDMayaLT) 2.Asset StoreからKyleの3DモデルをDL 3.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上で適当なオブジェクトを作成して、試してみよう
  • 11. Unity,MayaLTの準備:トラブルシューティング 「Unityに送る」がMayaLTのメニューにない Mayaバージョン情報より、使用しているMayaLTがExtensionかチェック プラグインマネージャよりGamePipeline.bundle等がロード/自動ロードになっているかチェック
  • 12. Unity,MayaLTの準備:トラブルシューティング 「Unityに送る」でUnityにオブジェクトを送り、   シーンにドロップすると、ずいぶん小さく表示される 1.MayaLTで、念のために以下をチェック プリファレンス>設定>作業単位より、リニアが「センチメートル」になってるか、念のためチェック 「Unityに送る」で書き出しする時の、オプションで詳細オプション>単位>変換先のファイル単位が 「センチメートル」になっているかチェック 2.Unityで、以下をチェック Projectウィンドウで、MayaLTから送ったオブジェクトをクリックし、Inspector>Modelタブ Meshes / Scale Factorを0.01から1に変更し、Applyする ➡このように設定すると、Maya上での1グリッドが、Unityでの1グリッド(約1m)と 一致するようになります(Mayaでキューブを作って、確かめてみよう!)
  • 13. Mayaのミニ知識:コマンドオプションの出し方 Mayaでオプションを指定して実行したい時には、 メニュー最右の四角部分にカーソルを合わせて選択する プリミティブ作成時には、「インタラクティブ 作成」のチェックは外しておいたほうがよい
  • 14. Robot KyleをMayaLTに読み込んでみよう 1.ファイル>新規シーン 2.ファイル>読み込み、よりscenesフォルダが開くので、Robot Kyle.fbxを選択し「読み込み」 3.シェーディング>すべてをスムーズシェード、ハードウェアテクスチャリング に設定すると、 テクスチャを貼られた状態のKyleが表示されます
  • 15. Mayaのミニ知識:ハイパーシェード MayaLTプロジェクト内のsourceimages フォルダ内に、Kyleのテクスチャを前も ってUnityからコピーしておけば、Robot Kyle.fbxをシーン内に読み込んだ時点 で、左のようなマテリアルがMayaLT上で 自動設定されます。 MayaLT上でマテリアルを設定するに は、ハイパーシェードを利用します。
  • 16. Mayaの重要操作:ピボット移動モード 移動した ピボット 初期状態でのピボット位置 「Insertキー」もしくは「Dキー 押しっぱなし」で、ピボット移動 モードに入る ピボット移動モードのままで、 X軸上に沿ってピボットを移動 してみる ピボットとは、オブジェクトの移動/回転/スケール を行う際に中心となる点のことです。 Mayaを使ってこれらのピボットを、モデルをゲー ム内で使うのに便利な位置に移動できます。 回転ツールに切り替えると、移動 したピボットを中心にキューブが 回転することがわかる Kyleなら腰にあります ピボットは単一のオブジェクトだけでなく、オブジ ェクトをグループ化したもの全体に独自で設定する ことなどが可能です。
  • 17. Robot Kyleにコントロールリグをつけてみよう ウィンドウ>アニメーションエディタ> HumanIK で開く Shift+クリックで全部開く キャラクターコントロール >定義>スケルトン を選ん で、定義ウィンドウを出す ここをクリックして、 アウトライナーを開く すべて設定が終わると、キャラクターコントロール ウィンドウの表示がこう変わります
  • 18. コントロールリグのセンター定義をどこにする? HipsTranslation Kyleのように、スケルトン全体のセンター が腰(お尻)の位置にあるモデルの場合、 HipTranslationの位置で右クリックして、 「Assign Selected Bone」を選択します。
  • 19. コントロールリグのセンター定義をどこにする? Reference 多くの人型モデルは、スケルトン全体の センターを足の間にあるReferenceの位置 に持っています。Referenceの位置で右ク リックして、「Assign Selected Bone」を 選択します。
  • 20. Kyleのスケルトン定義をする Left_Wrist_Joint_01 Left_Forearm_Joint_01 Left_Upper_Arm_Joint_01 Head ミラー定義ボタンが押されていると、 右側が自動設定される Ribs Hip Root Left_Thing_Joint_01 Left_Knee_Joint_01 Left_Ankle_Joint_01 最低限、10箇所のジョイントを定義する
  • 21. コントロールリグを設定する スケルトン定義をロックした後、 Kyleにコントロールリグが設定された。 コントロールタブを選択する ソースより、ドロップダウン メニューから「コントロール リグ」を選択する FBIKの機能をチェックしてみよう!
  • 22. フルボディ/ボディパーツモード/スタンスポーズ キャラクターコントロールメニューボタン (スケルトンへのベイク処理のみ使用する) 位置ピン/回転ピン/ピン一時解除 フルボディ フルボディ時の挙動 ボディパーツモード スタンスポーズ ボディパーツ時の挙動
  • 23. HumanIKコントロール/補助ピボット エフェクタ上で右クリックすると ピボットエフェクタ(補助ピボッ ト)や補助エフェクタを作成する サブメニューが出ます 設定されたピボットエフェクタ 設定した補助ピボット等を IKとFKの違いは? 削除する時には、もう一度 右クリックでサブメニュー を出します 補助ピボットは、アニメーションを作る際に非常 に便利な機能です。歩行サイクルの接地を管理し エフェクタのIK100%の時 エフェクタのFK100%の時 たり、視線を調整したりするのに使います
  • 24. 歩行用の補助ピボットをつけてみよう ピボットを選択し、Dキー ピボットエフェクタを を押したまま、ピボット移 設定すると、まず足首 動モードに入ったら、X のエフェクタの部分に 軸/Y軸ハンドルのみを動か 設定される Dキー押しっぱなしで移動 して、かかとまで移動させ る。この時、同時にXキー やVキーをさらに押して、 グリッドや点にくっつける とよい ピボットのY座標がほぼゼロ であることを確認する
  • 25. 歩行用の補助ピボットをつけてみよう 同様にして、足の底、つま先 にも補助ピボットを追加する 右足にも同様に補助ピボットをつける。 視線チェックのために頭のエフェクター にも補助ピボットを付けて完成。
  • 26. 実習:歩行アニメーションをつけてみる 当日、短時間ですが歩行アニメーションをつける過程をハンズオンしていただきました。 以下に、簡単にポイントをまとめておきます。 •補助ピボットは、最低限かかとにつけておく。 •歩行アニメーションの練習用に、MayaLTの中に入っているサンプル素材を参考にするとよい。 •サンプル素材は、ウィンドウ>一般エディタ>サンプルバイザー、より「モーションキャプチャサンプ ル」の中のWalkstraight.ma等のデータを選ぶ。データの上で右クリックでシーンに読み込まれる。 •歩行アニメーションをループで作成するためには、最低限1サイクルの動きを作成すること。例として右 足が接地している状態から始まるアニメーションならば、右足 左足 再び右足のループが必要というこ と。最後の右足接地のポーズは、位置は違うが最初の右足接地ポーズと同じでもよい。 •各足の接地のタイミングは、モーションキャプチャデータをタイムスライダで動かしながら再生すること で、参考にするとよい
  • 27. 実習:歩行アニメーションをつけてみる •アニメーションのキーを打つときには、現在のモードが「フルボディ」なのか、「ボディパーツ」 かに注意する。「フルボディ」ならばどのエフェクタを選んでいても全てのエフェクタにキーが打 たれるが、「ボディパーツ」時には選択しているエフェクタにしかキーは打たれない。 •各々「フルボディ」/「ボディパーツ」時での、「スタンスポーズに戻す」ボタンの動作の違いを 工夫して、身体の一部分だけリセットするなどに使うとよい。 例:「腰に付けた回転を元に戻す」時に、一時「ボディパーツ」にした後でスタンスポーズに戻す ことで、ポーズに極力影響を与えないで、腰の回転のみリセットするなど •かかとの補助ピボットは、移動モードで接地を確認するのに使う他、回転モードで足首の角度を 変えるのにも使える。 •ポーズを変えないで、身体の位置だけずらしたい時には、両足のピンを移動/回転共に外した後、 腰のエフェクターを指定して位置を移動し、再度キーを打つ。 •キーの移動は、移動したいキーの上で、Shiftキーを押しながらキーをクリックして範囲指定した後 で、カット&ペーストする。もしくはキーを範囲指定した後で、中ボタンドラッグで移動する。 •HumanIKのアトリビュートを出したい時には、キャラクターコントロール上で適当なエフェクタ を選んだ後で、Ctrl+Aでアトリビュートを表示する。
  • 28. 実習:歩行アニメーションをつけてみる •作業中のピンの操作やモードのチェンジは、ビュー上のエフェクタの上で右クリックして現れる ショートカットメニューを使うと便利 •作業中のビュー切り替えは、スペースキーで表示されるラジアルメニューから、中央の「Maya」 を右クリックして現れるショートカットメニューを使うと便利
  • 29. アニメーションをスケルトンにベイクする コントロールリグの各エフェ クタに打たれたアニメーショ ンキーをUnityで使うために は、コントロールリグに打た コントロールリグの階層 れたアニメーションを再び Kyleのスケルトンにベイク(焼 コントロールリグに打たれたアニメーションキー Kyleのメッシュと スケルトンの階層 き移す)します。 この工程をスケルトンへのベ イクといいます。 一度ベイクすると、コントロ ールリグが解除されますの で、この段階で必ずシーンを セーブしましょう。
  • 30. アニメーションをスケルトンにベイクする キャラクターコントロールメニューボタン (スケルトンへのベイク処理のみ使用する) こちらはデリート してもOK スケルトンにベイクされたアニメーションキー Kyleのメッシュと スケルトンの階層 スケルトンへのベイク処理が終われば、 コントロールリグの階層をデリートしても大丈夫です。
  • 31. Mecanim重要Tips: バインドポーズノードを持つオブジェクトをUnityに転送する Mecanim用にアニメ ーションを含むFBX Kyleの場合には、バインドポーズノード を出力する際には、 を持つオブジェクトはスケルトン側にあ 必ずバインドポーズ ります。 ノードを含んでいる オブジェクトを一緒 に転送するようにし ます。バインドポーズ はメッシュ側にある こともあるので、要 注意です。
  • 32. Mecanim重要Tips: バインドポーズノードを持つオブジェクトをUnityに転送する バインドポーズがアニメーションと一緒 「Sample Bind-Pose」を選ぶと、 に転送されている場合、Mecanim側の Maya上でのスタンスポーズが表示 Poseメニューに「Sample Bind-Pose」 されます。 という項目が現れます 「Enforce T-Pose」で元に戻ります
  • 33. 参考:アニメーションデータ上での移動のあり/なしと    キャラクターコントローラの設計について ゲーム用に作られた ループアニメーション向けの Mecanim設定 •キャラクターコントロール内で プログラムで移動設定をする場合 •原点でアニメーションがループ している場合(移動がオフセット されているアニメーションデータ の場合) →キャラの移動量はプログラム側 で制御する •モーションキャプチャデータの ように、移動が元のアニメーショ ン自体にあるデータで、そのデー タ上の移動量をキャラの移動量と して使う場合(オフィシャルの Mecanimサンプルの多くがこれ) モーションキャプチャ等の 元がループしていない アニメーション用向けの Mecanim設定
  • 34. おまけ:MayaLTで自前でIKハンドルを追加する方法 https://gist.github.com/hiko9lock/7660365 http://hiko9lock.blogspot.jp/2013/11/mayaltikhandle.html 情報、ありがとうございます!