2017.05.10
第6回目:Dance Mobcap
今回紹介するAssetは「Dance MoCap」です。有料で$16.20になりますが、いろいろなダンスの形を提供してくれます。何種類かのダンスの形が用意されていますので、これらを組み合わせて、音楽と関連付け、3Dモデルにダンスを踊らせてみましょう。
Dance MoCapのインポート
Asset Storeの検索欄に「Dance MoCap」と入力すると表示されますので、「ダウンロード」→「インポート」と進んでください(図1)。筆者は何度も使用していますので、「インポート」と表示されています。
一度ダウンロードしたファイルは、C:\Users\ユーザー名\AppData\Roaming\Unity\Asset Store-5.xというフォルダに保存されますので、2回目以降は、ここからファイルを読み込んでインポートになるのです。
図1から「インポート」をクリックすると、UnityのProject内に図2のようなフォルダが作成され、必要なファイルが取り込まれます。
次にもう1個、ダンスを踊らせるための3Dモデルである「Space Robot Kyle(無料)」をインポートします。検索欄に「Kyle」と入力すると表示されますので「ダウンロード」→「インポート」と進んでください(図3)。
図3から「インポート」をクリックすると、UnityのProject内に図4のようなフォルダが作成され、必要なファイルが取り込まれます。
舞台をつくる
まず初めに、HierarchyのCreateから「3D Object」→「Plane」と選択して、「床」となるべきPlaneを配置します。そのPlane上にSpace Robot Kyleを配置しましょう。
Space Robot Kyleの配置
Projectの「Assets」→「Robot Kyle」フォルダ内にある、「Robot Kyle.fbx」をPlane上に配置します。配置したRobot Kyleはカメラに背を向けていますので、InspectorのTransformのRotationのYに「180」を指定してカメラの方を向かせてください。その後、Main Cameraを調整して図5のように表示します。
次にRobot KyleのAnimation Typeを設定します。
Robot KyleのAnimation Type
HierarchyからRobot Kyleを選択してInspectorを表示させます。Inspectorの上部にModelという項目があり、「Select」というボタンがあります。これをクリックしてください(図6)。
すると、図7のような画面が表示されますので、「Rig」ボタンをクリックしてください。「Animation Type」にはデフォルトで「Legacy」と表示されていると思います。右端の「上下▲」アイコンをクリックして、「Humanoid」を選択してください(図7)。
「Legacy」と、「Humanoid」の場合は3Dモデルの動作を設定するのに「Animator」を使用するようになります。別にLegacyのままでのいいように思うのですが、3DモデルはHumanoidに当たりますので、ここは正当に「Humanoid」を選択しておいた方が無難です。これはInspectorの中に表示されます。選択したら、右隅下のApplyボタンを必ずクリックしてください。
ApplyボタンをクリックしたのちRobot Kyleを選択してInspectorを表示させると「Animator」という項目ができているはずです(図8)。デフォルトのLegacyでも「Animator」は表示されます。
図8のControllerの右隅の「」(〇に・)のアイコンをクリックして、「dance Controller」を選択してください。
これでPlayするとRobot Kyleは1回だけダンスを踊ります。ダンスはずっと踊らせたいので、dance controllerを編集します。
dance controllerを編集する
Controllerに指定した「dance controller」をダブルクリックします。するとAnimatorの画面が表示されます。全体が表示されるように、スクリーンショット撮る間だけ、LayoutをDefaultに変更しています。
図9のように表示されています。各ダンスのモーションが表示されている長方形は「State」と呼ばれるもので、アニメーションを制御する役割を持っています。一番上のオレンジ色の長方形が緑色のEntryと矢印線でつながっていますが、この矢印線のことを「Transition(遷移)」と呼びます。
まずオレンジ色の「High_Rhythm_Dance_01」を選択してマウスの右クリックをします。「Make Transition」と言う項目が表示されますので、これを選択します。矢印線が表示されたら、下の「High_Rhythm_Dance_02」の上でクリックします。すると、これら2つの長方形が矢印線で繋がります。
今度は逆に「High_Rhythm_Dance_02」を選択してマウスの右クリックから「Make Transition」を選択し、表示される矢印線を「High_Rhythm_Dance_01」の上でクリックします。これで逆向きの矢印線で二つのStateがつながります(図10)。
この作業を表示されているすべてのStateに対して行います。最終的には図11のようにしてください。
RobotControllerの設定が終わるとLayoutは「2 by 3」に戻して作業します。
これでPlayすると図12のようにRobot Kyleがずっとダンスを踊り続けます。
これでダンスはするようになりましたが、やはり音楽が無いと物足りません。そこでRobot Kyleのダンスに音楽を追加してみましょう。追加する音楽は、Asset Storeから無料のAssetである「Free music pack」を使用します。
Free music packのインポート
Asset Storeの検索欄に、Free music packと入力すると、表示されますので「ダウンロード」→「インポート」と進んでインポートしてください(図13)。
インポートできたところで、Audioの設定を行います。
Audioの設定
UnityメニューのGameObjectからCreate Emptyを選択して、空のGameObjectを作成します。Hierarchy内のGameObjectを選択してInspectorを表示します。「Add Component」から「Audio」→「Audio Source」を選択します。Audio Clipに「Enegetic rock loop 12」を選択します。またLoopにチェックを入れております(図14)。
どのファイル名がどんな音楽かを前もって知りたい場合は、Project内のFree Pack内のフォルダにある、音楽ファイルをクリックすると聞くことが出来ます。何を使って再生するかの選択画面が出ますが、筆者はWindows Media Playerを指定しています。
実際にPlayした動画が、動画1になります。
今回は1人の3Dモデルしか使用していませんが、複数の3Dモデルを用意しても、同じダンスを踊らせることが出来ます。但し、Humanoidの3Dモデルである必要があります。AKB48のようなこともできるので、各自試してみてください。また音楽ファイルは無料のAssetがたくさん公開されていますので、自分が気に入った音楽Assetを使用するといいでしょう。
次回は、多数の鳥を大空に羽ばたかすことが出来る「Bird Flock(有料)」について解説します。お楽しみに。