ひと昔前、話題になりましたが、インターネット上にPerfumeのダンスモーションデータが無償公開されています。
japanese.engadget.com
前回、MMDのダンスモーションのUnityへの取り込みに失敗しましたが、こちらはUnityに取り込めるのでしょうか。
bluebirdofoz.hatenablog.com
結論、あっさり取り込めました。
以下に改めて手順を書き出しておきます。
まずは以下からダンスモーションデータをダウンロードします。
www.perfume-global.com
モーションデータの形式はBVH形式となります。この形式の特徴はダンスの動作データとボーン構造が一つのファイルに含まれる点です。
・MOCAPデータファイル - TMPSwiki
http://mukai-lab.org/wp-content/uploads/2014/04/MotionCaptureDataFile.pdf
早速、Blenderでデータを読み込みます。デフォルトでインポートから読み込み可能です。
前述の通り、BVHを読み込むだけで、ボーンの構造体とモーションデータの両方が取得できます。
因みにそのままだとボーン構造がかなり大きいのでサイズ調整しています。
肝心のボーン構造は……下半身部分のボーンが下から上に伸びる形になっているのが分かります。
その他もHuman mecanimのRigify構造に近いです。これは行ける気がします。
因みに、キーフレームがめちゃくちゃ多いのはモーションキャプチャで取得したデータだからと思われます。
これをそのままFBX形式のファイルとして書き出します。
因みにこのとき、エクスポートの際、「アーマチュア」のみを選択してエクスポートすると、より良いです。
こうすると今回必要なデータである、ボーン構造とモーションのデータのみをファイル出力できます。
Unityのプロジェクトに作成したFBXファイルをインポートします。
FBXファイルを確認します。
Rigタブを選択すると、デフォルトでは Animation Type が「Generic」に設定されていることが分かります。
また、ボーン構造のオブジェクトとモーションデータが含まれているのが確認できます。
さて、MMDモデルの時と同様、Human mecanimの適用を試みます。
Animation Type に「Humanoid」を選択して Apply をクリックします。
反映が完了したら Configure をクリックして適用状況を確認すると……。
めちゃ綺麗に適用されてます。Perfume編、完。
まぁボーン構造を見るに、初めからRigifyの構造を意識しているものと思われます。無駄なボーンも一切ありませんし。
この辺り、流石というか。MMDが特殊すぎるのか。
さて、これで取り込んだモーションデータはHumanoidリグに関連付いたモーションデータとなりました。
早速ユニティちゃんに使ってみましょう。
ダンスモーションのための Animator Controller を作成します。
Projectのフォルダ内で右クリック->Create->Animator Controllerで新規のコントローラを作成します。
「Perfume Controller」とでも名付けておきます。
Animator Controllerにダンスモーションを設定します。
「Perfume Controller」をダブルクリックで開き、ダンスモーションファイルをドロップで設定するだけです。
ユニティちゃんのAnimator Controllerとして「Perfume Controller」を設定します。
作業完了です。ゲームを再生してみると、ユニティちゃんが踊ってくれました。
MMDのモーションデータに比べると非常にスムーズに利用可能です。これはやはり元々のボーン構造がRigifyに合っているからです。
逆に言うと、Perfumeのモーションはボーン構造が異なるMMDモデルには流用が難しいことになります。
この記事を書く前、Perfumeのダンスモーションを使った動画を探してみたのですが、ほとんど見つかりませんでした。
これは3D動画作成ツールとしてはメジャーなMMDでモーションが利用できないためだったということでしょう。
メジャー(であるはずの)ボーン規格でモーションデータを作成すると、よりメジャーな3D動画作成ツールで流用できないため、データが3D動画に利用されない……難儀な話です。