覚え書きブログ

読者です 読者をやめる 読者になる 読者になる

Unity覚え書き(とりあえず動かしてみる編)

今回は、Unityでキャラクターを動かしてみる。
利用したUnityのバージョンは、5.2.1である。

まず、Unityの新規プロジェクト「test1」を「3D Asset Packages」を選択して作る。
f:id:hirotaka_hachiya:20151123004231p:plain

Unityは、3Dモデル(キャラクター、小道具、植物、建物、乗り物)、アニメーションやスクリプトなどが無料または有料で入手できるAsset Storeがとても充実しているので、私のような初心者でも簡単にCGが作れる。

このAsset Storeから、まずキャラクターの3Dモデルを入手する。
「Asset Store」タブを選択し、「MCS Male Lite」を検索する。
そして、「ダウンロード」ボタンを押し、ダウンロードが完了すると、「インポート」ボタンを押す。
f:id:hirotaka_hachiya:20151123005258p:plain

すると左下のAssetsに、「MORPH3D」がインポートされる。
MORPH3Dを選択すると、Readme.txtがあるので、内容を確認する。
「1) If this is the first time you've imported A Morph3D Package, you'll need to reimport the "MORPH3D" folder. The reason for this is that unity will not always import the Morph3D DLL before it imports the content. Our DLL file sets up the content for you on import. It's worth the wait. It saves hours of time, and connects all the amgic together so things work properly.」
とのことなので、MORPH3Dを右クリックして、「Reimport」を選択する。

次に、Assets->MORPH3D->Content->StarterPacks->Male->MCSMaleLiteを選択し、MCSMaleLite.fbxを、キャンパスにドラッグアンドドロップする。
f:id:hirotaka_hachiya:20151123155234p:plain

メインカメラと光源下記のように3Dモデルの前に移動して、Gameタブでキャラクターを見てみると、以下のようになっている。
f:id:hirotaka_hachiya:20151123152144p:plain
f:id:hirotaka_hachiya:20151123152159p:plain

次に、Assets->MORPH3D->Content->StarterPacks->Male->UrbanMetroを選択し、UrbanMetro.fbxを、Hierarchy->MCSMaleLite->Inspector->Content Packs->Newにドラッグアンドドロップし、キャラクターに服を着させる。
f:id:hirotaka_hachiya:20151123154255p:plain
同様に、Assets->MORPH3D->Content->StarterPacks->Male->hair->BritHairのBritHair.fbxを、キャラクターに着させる。

次に、Hierarchy->MCSMaleLite->Inspector->All Blendshapesの様々な項目を調整して、体型を変えてみる。例えば、Heavyを100にすると、次のような体型になる。
f:id:hirotaka_hachiya:20151123160732p:plain

次に、キャラクターを動かすためのモーキャプデータとして、Asset Storeから「Raw Mocap Data for Mecanim」と「Mecanim Locomotion Starter Kit」を、ダウンロード&インポートする。
f:id:hirotaka_hachiya:20151123161639p:plain
f:id:hirotaka_hachiya:20151123165001p:plain

そして、Assets->Locomotion Setup->Locomotionを選択し、Locomotion.controllerを、Hierarchy->MCSMaleLite->Inspector->Controllerにドラッグアンドドロップし、キャラクターの動作コントローラを設定する。「Animator」タブ->Locomotionを選択すると、下記のような状態遷移モデルが表示される。
f:id:hirotaka_hachiya:20151123170224p:plain
この状態遷移モデルの各ノードは、Motionに対応していて、矢印はMotion間の遷移に対応している。
例えば、「WalkRun」を選択すると、InspectorのMotionに「WalkRun」というモーションが設定されている。WalkRunをダブルクリックすると、次のように、WalkとRunとの2つのモーションの影響度合いを「Speed」パラメータで調整してブレンドしているのがわかる。例えば、speedが1.545087の場合は、Walkが100%で、Runは0%である。
f:id:hirotaka_hachiya:20151123205430p:plain
ブレンドの詳細については、下記に記載されている。
http://docs.unity3d.com/Manual/BlendTree-1DBlending.html

次に、MCSMaleLiteにて、Add Componentをクリックして、Scripts->Locomotion Playerを選択する。
次に、上の再生ボタンを押すと、Gameタブに切り替わり十字キーでキャラクターを操作することができる。
f:id:hirotaka_hachiya:20151123213909p:plain

今回は、「Raw Mocap Data for Mecanim」の基本的なモーションを組み合わせた動作コントローラ「Mecanim Locomotion Starter Kit」を用いて、とりあえずキャラクターを動かしてみた。

このLocomotionアニメーターには、任意のモーションを追加することもできる。
モーキャプデータを提供しているサイトとしては、
mocapdata.comや、
Carnegie Mellon University - CMU Graphics Lab - motion capture libraryなどがある。