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

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

on

  • 5,191 views

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が必要ですのでご注意ください。

Statistics

Views

Total Views
5,191
Views on SlideShare
4,723
Embed Views
468

Actions

Likes
21
Downloads
35
Comments
0

5 Embeds 468

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

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

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