Unity x Mixamo 連携

Unity

Mixamoからキャラをダウンロードして、Unityで動かしてみよう。
最後にはcinemacineを使ってムービーを作成する。
なお、今回Unityは6.3を使っていく。

Mixamo

  • まずはMixamoに行く。MixamoはAdobeが行っているサービスで、アカウントがあれば無料で利用できる。
  • Mixamoへ行く
  • ログインしたら、上部タブからCharactersを選ぶ
  • ゲームで使用したいキャラを選んでDownloadボタンを押す
  • FBX for Unity
  • T-pose
  • ダウンロード

モーションダウンロード

  • ダウンロードしたいモーションを選択
  • Overdrive…モーションのスピード
  • Character Arm-Space…装備がある場合などそのまま手を振るとぶつかってしまう時がある、その場合はこの値を広げる
  • Trim…モーションをトリミング。一部分だけを使いたい場合にトリミングする
  • Mirror…左右反転させたい場合にチェックを入れる

調整がすんだらダウンロードを押す

  • FBX for Unity
  • Without Skin
  • ダウンロード
  • 他にも使いたいモーションがあればダウンロードする

Unity

  • 新規にUniversal3Dプロジェクト作成する(適当に名前をつける)
  • Cubeから床を作成する
  • 新規にフォルダを作成 -> 今回のキャラはMedeaという名前だったのでその名前にした
  • Medeaフォルダの中にTexturesとMaterialsというフォルダを作成
  • Medeaフォルダに先ほどダウンロードしたデータをドラッグドロップで配置

大きさ調整

  • シーンに配置してみよう
この画像は大きさ調整済み
  • 明らかに小さかったでデフォルトのcube(直径1m)を置き大きさをだいたい合わせる
  • fbxを選択してModel -> Scale Factorを使って合わせる

マテリアル

大きさは適切になったが,マテリアルがあたっていない。これを修正しよう

  • モデルを選択して、Materials -> Extract Texturesを押す
  • どのフォルダに展開するかとダイアログが出るので先程作成したTexturesフォルダを選択
  • 同じことをMateralについても行なう(保存するフォルダはMaterials)
OK!

Rig

  • 見た目がOKになったのでRigを調整しよう。
  • Rigタブ -> Humanoid にしてApply
これで適切にモーションが適用できようになった!

モーションの設定

  • 個別でダウンロードした、モーションも最適化する必要がある
  • モーションデータを選択し、Rig -> Humanoid
  • Avatar DefinitionをCopy From Other Avatarを選択
  • 最初に作成したデータを選択
  • Apply
  • この作業をインポートしたモーションの数だけ行なう(この例では2つ)

モーションの適用

持ってきたモーションをこのキャラに適用する方法は主に2つある

Animator

ゲームなどで使う場合はこちらの方法になるが、今回は深堀りはしない。詳しく知りたい方は他の記事を参照してもらいたい。

  • 新規にAnimatorControllerを作成しモーションを配置する
  • Animatorコンポーネントから登録する
  • ゲームを実行してみよう
かなり男っぽい歩き方だw

Timeline

movie制作の際に便利になるのが、Timelineとcinemachineだ。いつの間にかcinemachine3になって仕様が変わっていたので深堀りしていく。

  • プロジェクトビューでTImelineを作成(名前をmyTimeline)
  • ヒエラルキーに配置
  • プロジェクトビューのmyTimelineをダブルクリックするとTimelineウインドウが開くので下に移動する。
  • この画面が閉じてしまわないように鍵マークを押す
  • ヒエラルキーに配置したモデルをドラッグすると選択肢が現れるので
    • Add Animation Trackを選択
  • 選択肢の中からStartWalkingを選択
  • 再生してみて地面から浮くようだったらインスペクター以下の部分で調節
  • 続いて2つ目のクリップを配置
    • このとき右クリックをしてMatchOffsets To Previous Clipを選択すると前のモーションによって移動したその場所から続きのモーションを再生できる。
  • ドラッグして前のクリップに重ねるように動かすと、クロスフェードによるモーション遷移にすることができる

カメラワーク

cinemachineを使ってカメラワークを作成していこう。cinemachineはversion3にアップデートされ、多くの変更が加わっている。

  • パッケージマネージャーを開いてcinemachineをインストール
  • ヒエラルキーからCinemachine -> Cinemachine Cameraを作成
  • Cinemachine Camera を追加すると、シーン内の Main Camera に自動で Cinemachine Brain コンポーネントが追加される。
  • これにより、実際の映像を出力する Main Camera を、Cinemachine が制御できるようになる
  • MainCameraをTimelineにドラッグ
  • Add CinemachineTrackを選択する
  • カメラをtimelineに配置
  • シーンビューでおおよそのカメラアングルを決めて,カメラが選択された状態でctrl+shift+f
    • カメラが配置される
  • 再生しながら、細かい調整はインスペクターで行なう

2台目のカメラ

モーションが切り替わるタイミングで今度はキャラの前方から撮ろう。

  • 1台目のカメラをctrl+Dで複製をし、ドラックで配置
  • シーンビューで前方のアングルを作り、カメラを選択した状態でctrl+shift+fで配置する
  • 再生してみよう

キャラの移動量が多いので画角からはみ出してしまった。ここでは被写体を追うようにカメラを回転させてみよう。

  • TrackingTargetにMedeaを登録
  • RotationControlにRotationComposer
  • まずは、基本的な追従が以下だ
    • ターゲットのy+0.8つまり足元ではなく腰辺りを見る
    • そのポイントをScreenPos(0,0)画面の中央に捉えようとする
    • ダンピング(0.5,0.5)が入っているので少し遅れる感じで滑らかに追従する
破綻しない使いやすい設定だ
  • もう少し画面をいっぱいに使ってダイナミックが構図にしてみよう
    • x(0.27)ターゲットを画面右より捉える
    • DeadZoneを設定することで、カメラを動かさない範囲を設定できる
      • ここではx(0.8)として横方向の移動があってもカメラをすぐに動かさいようにしている
      • Center On Activateをオンにして、このカメラで映す時すぐにその場所にキャラが映るようにしている
画面の横幅をフルに使った迫力ある構図になった!

最後に

今回はmixamoと連携と新しくなったcinemachineの解説を行った。どちらも使いこなすととても便利なのでしっかりと慣れていこう。

Unity
スポンサーリンク
シェアする
mjpurinをフォローする

コメント

タイトルとURLをコピーしました