3Dモデルで踏切動画を作りたくて、モデルを用意した。3DモデルのアニメーションをUnityで作成する方法を記事する。
Unityは動画編集ツールのように、タイムラインに沿ってアニメーションを作成する事ができて非常に良かった。
3Dモデルのインポートから、アニメーションを設定し、動画の書き出しまでの手順を示す。
また、タイムラインの表示であったり、プロパティのチェックの有無など、いちいちつまづいた部分の補足を行う。
- 3Dモデルをインポートするフォルダを作成
- 地面を作る
- 3Dモデルを配置
- 踏切のライトを点滅させるアニメーションを作成
- Timeline機能を使ってアニメーションをタイムライン上で管理
- パスに沿って電車を動かす
- 動画の書き出し
- おわりに
3Dモデルをインポートするフォルダを作成
3Dモデルが使用するテクスチャファイルも一緒にインポートすること
地面を作る
地形の大きさはTerrainの設定から変更する
3Dモデルを配置
D&Dで踏切を設置
踏切のライトを点滅させるアニメーションを作成
AnimationウインドウのCreateをクリック
AddPropertyで制御対象のオブジェクトのis activeを選ぶ
これでカンカンの動きができた。
実行すると勝手にアニメーションがループで開始される。
気持ち悪いため、実行のタイミングをTimelineで設定する。
Timeline機能を使ってアニメーションをタイムライン上で管理
アセットにTimeline追加
作成したTimelineをHierarchyにD&D TimelineのInspectorからPlayableをダブルクリックするとTimelineウインドウが現れる
Animationクリップを追加する
アニメーションを持っているオブジェクトを選択
オブジェクトが持っているアニメーションを選択
タイムライン上にアニメーションを配置する。
タイムラインでアニメーションを再生すると、座標が謎の位置に吹っ飛ぶ。
とりあえずよくわからないが、吹っ飛ぶオブジェクトのAnimatorのapply Root Motionにチェックを入れたら動かなくなった。
根本原因を下記サイト様を参考に把握する必要がある。(未実施)
【Unity】Unity 2018.3でTimelineの座標系が少し分かりやすくなった - テラシュールブログ
Unity タイムラインのActivationTrackとAnimationTrackの使い方 - Unity+UnrealEngine4+Blog.
Unityでタイムラインを使ってゲームのイベントシーンの動きを作成してみる | Unityを使った3Dゲームの作り方(かめくめ)
パスに沿って電車を動かす
Packge Managerからcinemachineをインストール
空のオブジェクトを作成し、CinemachineSmoothPathを追加する
動かしたいオブジェクトにchinemachine Dolly Cartを追加し、Pathにさきほどパスを設定したオブジェクトを指定する。
実行するとTimelineは進むが、GameScreen上のTrainRunのオブジェクトがピクリともうごかない
アニメーションを設定しているオブジェクトのAnimator->Apply Root Motionにチェックを入れる。 なぜこれでよくなるのかわからないし、副作用もわからないがとりあえず動いたので良しとする。
動画の書き出し
Unity Recorderをインストール
Recorder Windowを表示 Window -> General -> Recorder -> Record Window
動画を書き出す設定を行う Add Recorder -> Movie
レコードの実行と停止 Window上部の「START RECORDING」を押し、終了したいタイミングで「STOP RECORDING」を押す。 自動で停止しないので注意。
おわりに
3Dモデルを動かすアニメーションを作成する流れの紹介をした。
Timelineやパスに沿ってオブジェクトを動かすcinemachine、動画を書き出すUnity Recorderを用いることで動画編集ソフトのようにアニメーションを作成することができた。
ちなみにBlenderでも今回と同様のアニメーションを作成することができる。どちらが3Dモデルのアニメーションを作るに適しているかはまだ判断できない。
とりあえず次回もUnityでアニメーションを作成しようと思う。