執筆:Y.H
はじめに
ORENDA WORLDでエンジニアをしております、Y.Hと申します。
今回はUnityを用いてUnityChanKAGURA(URP)を動かしてみようと思います。
この記事は初心者向けの内容になっております。
UnityのTimelineの機能を使って、キャラクターを動かします。
この記事の内容
1. UnityChanのダウンロード
2. MixamoからモーションをUnityに適応
3. Unity上にTimeLine作成
4. 動作確認
5. 番外編
6. まとめ
用意するもの
今回必要なもの
- Unity 2019.4.16f1
- UnityChanKAGURA(URP)
- Mixamo
実装してみよう
UnityChanをインストール
こちらからUnityChanをインストールします。
今回は見た目が良い感じのユニティちゃんにしてみました。
UnityChanKAGURA(URP)
記事
ダウンロード
https://unity-chan.com/download/releaseNote.php?id=kagura
利用規約を守って扱いましょう。
UnityChanのプロジェクト開く
ダウンロードしたzipファイルを解凍します。
こちらのユニティちゃんはまるごとプロジェクトになっているので、Unity Hubからプロジェクトを開きます。
Unityのエディターバージョンの2019.4.16f1がダウンロードされていなければ、ここでダウンロードします。
※ダウンロードしてないと開けません。
インストールされていれば、Unity Hubのタブからインストールをクリックで確認できます。
このプロジェクトは完成されているもので、そのまま起動すると音声と共にUnityChanが踊りだします。
※音声が大きいので注意
このままで十分すごいんですが、せっかくなのでこのプロジェクトを基に自分の動かしたいモーションをいれて動かしてみようと思います。
※今回は音やカメラを制御まではしないため、新規に入れたモーションでUnityChanが動くという記事になります。
Mixamoからモーションをダウンロード
今回はキャラクターを動かすにあたってモーションデータを使いたいと思います。
そこでMixamoというモーションデータが配布されているWebサイトからモーションデータをダウンロードして、Unityで使えるようにします。(無料で使えます)
こちらからサイトにアクセスしてください。
会員登録後にログインして、入れたいモーションをダウンロードしていきます。
利用規約は下記になります。
「ロイヤリティフリーのキャラクターとアニメーションの両方を個人、商用、非営利のプロジェクトに使用できます。」
https://helpx.adobe.com/jp/creative-cloud/faq/mixamo-faq.html
こちらも利用規約を守って扱いましょう。
こちらの画面になれば完了です。
様々なモーションがあるので、見るだけでも面白いです。
サイト左上の検索ボックスから絞り込みが行えます。
今回はダンスのモーションをいれるのでDanceの項目にチェックを入れます。
※ダンスに限らずに動かしたいお気に入りのモーションを探してみてください。
ものを持たせたモーション等は別途追加の作業が必要になるので注意です。
(この記事では割愛します)
動かしたいモーションが決まったらサイト右上の[DOWNLOAD]からダウンロードします。
今回はUnityにいれる想定なので、FormatをFBX for Unity(.fbx)。
UnityChanで動かしたいので、SkinをWithout Skin。
Frames per Secondは30fpsでも良いですが、今回は60fpsにします。
Keyframe Reductionについては、キーフレーム削減らしいのでnoneで行います。
最後に右下の[DOWNLOAD]をクリックし、ダウンロードできたら完了です。
後でUnityにいれるので、どこに置いたかフォルダーなどにまとめておくと良いです。
ダウンロードしたモーションをUnityに入れて設定
Assetsの配下にMotion用のフォルダを作成し、そこにダウンロードしたモーションデータであるfbxをいれます。
いれたfbxを実際にUnityChanで使えるようにするために設定します。
fbxを指定して、タブの中から[Rig]を選択し、AnimationTypeをHumanoidに設定します。
今回は人型のモーションなのでHumanoidにしましたが、人型以外のモーションだとGenericなどに設定する必要があります。
タイムラインを作成し、モーションを登録
Unityの標準の機能であるTimelineを利用して、キャラクターを動かします。
https://docs.unity3d.com/ja/2018.4/Manual/TimelineOverview.html
※Unityのバージョンは2018.4のドキュメントです。
UnityChanのサンプルシーンを基に新規シーンを用意
既存のサンプルシーンを複製して、複製したシーンの名前を変更。
サンプルシーンを選択した状態で、Windowsなら Ctrl + D 、Macなら Command + Dでシーンを複製します。
複製したシーンをわかりやすいようにシーン名を変更します。
サンプルシーン内のキャンバスを削除
そのままだとキャンバスでカメラの映像が見えないため、削除または非アクティブにしておきます。
MainCameraの位置を微調整
MainCameraの位置が合ってないのでTransformを調整します。
ぼかしなどで見えない場合MainCameraのポストプロセスを切る
標準でカメラにぼかしなどの加工がはいっているため、状況に合わせて切っておきます。
MainCameraのコンポーネントのCinemachineBrainを非アクティブ
本来Cinemachineを使うことでカメラワークを付けてTimelineなどで制御できるのですが、今回はカメラを固定にするためにCinemachineBrainを非アクティブにします。
新規のTimelineを作成し、既存のTimelineとの差し替え
TL Unite in the skyについているPlayable DirectorのPlayableに今回作成したTimelineをドラッグ&ドロップします。
新規のTimelineにモーション用のAnimationTrackとClip作成
Mixamoから持ってきたFBXを展開し、AnimationClipをTimeLineにドラッグ&ドロップでクリップを作成します。
動作確認
再生してUnityChanが動くことを確認
モーションによっては挙動が合わない場合もあるので適宜調整してください。
番外編
実際にモーションキャプチャースタジオでモーションを撮ってUnityにいれてみました
弊社が所有しているモーションキャプチャースタジオで
撮ったモーション(FBX)をMixamoのときと同じような設定でhumanoidに適応しました。
ラジオ体操
ランニングマン
剣(間に合いませんでした)
青一Studioの紹介
弊社ではモーションキャプチャースタジオを所有しています。
最新鋭の光学式モーションキャプチャシステム「OptiTrack」により、
現実の人物の動きを滑らかに3D空間へ投影、
3Dキャラクタを使った映像制作、生配信、XRコンテンツの収録が可能です。
ご興味ありましたら、お気軽にお問い合わせください。
まとめ
今回はUnityChanのプロジェクトを用いてモーションを別から用意し、動かしてみました。
今回使用しなかったPostprocessingやCinemachineなども合わせれば、より表現の幅が広がるかと思います。
細かいオブジェクト位置調整やモーションの調整は大変ですが動かすだけなら、気軽にできるのでみなさんもお試しください。
ここまで読んでいただきありがとうございました。
関連記事
- 3Dキャラクターにアニメーションをつけることができる 「Mixamo」を使って、座ったときのポーズを変えてみる https://creator.cluster.mu/2021/11/17/mixamo/