にわかプラス

にわかが玄人になることを夢見るサイトです。社会や国際のトレンド、プログラミングや電子工作のことについて勉強していきたいです。

Unityでアニメーションを作成し動画書き出しする手順

sponsor

3Dモデルで踏切動画を作りたくて、モデルを用意した。3DモデルのアニメーションをUnityで作成する方法を記事する。
Unityは動画編集ツールのように、タイムラインに沿ってアニメーションを作成する事ができて非常に良かった。

3Dモデルのインポートから、アニメーションを設定し、動画の書き出しまでの手順を示す。
また、タイムラインの表示であったり、プロパティのチェックの有無など、いちいちつまづいた部分の補足を行う。

3Dモデルをインポートするフォルダを作成

f:id:hiddenvally333:20210117215816p:plain

3Dモデルが使用するテクスチャファイルも一緒にインポートすること f:id:hiddenvally333:20210117215949p:plain

地面を作る

f:id:hiddenvally333:20210117215825p:plain

地形の大きさはTerrainの設定から変更する
f:id:hiddenvally333:20210117215820p:plain

3Dモデルを配置

D&Dで踏切を設置
f:id:hiddenvally333:20210117215830p:plain

踏切のライトを点滅させるアニメーションを作成

  1. AnimationウインドウのCreateをクリック f:id:hiddenvally333:20210117215843p:plain

  2. AddPropertyで制御対象のオブジェクトのis activeを選ぶ f:id:hiddenvally333:20210117215834p:plain

f:id:hiddenvally333:20210117215839p:plain

これでカンカンの動きができた。
実行すると勝手にアニメーションがループで開始される。
気持ち悪いため、実行のタイミングをTimelineで設定する。

Timeline機能を使ってアニメーションをタイムライン上で管理

  1. アセットにTimeline追加 f:id:hiddenvally333:20210117215859p:plain

  2. 作成したTimelineをHierarchyにD&D TimelineのInspectorからPlayableをダブルクリックするとTimelineウインドウが現れる

  3. Animationクリップを追加する
    f:id:hiddenvally333:20210117215847p:plain

  4. アニメーションを持っているオブジェクトを選択 f:id:hiddenvally333:20210117222356p:plain

  5. オブジェクトが持っているアニメーションを選択 f:id:hiddenvally333:20210117215851p:plain

  6. タイムライン上にアニメーションを配置する。 f:id:hiddenvally333:20210117215855p:plain

タイムラインでアニメーションを再生すると、座標が謎の位置に吹っ飛ぶ。 とりあえずよくわからないが、吹っ飛ぶオブジェクトのAnimatorのapply Root Motionにチェックを入れたら動かなくなった。
f:id:hiddenvally333:20210117215904p:plain

根本原因を下記サイト様を参考に把握する必要がある。(未実施)

【Unity】Unity 2018.3でTimelineの座標系が少し分かりやすくなった - テラシュールブログ

Unity タイムラインのActivationTrackとAnimationTrackの使い方 - Unity+UnrealEngine4+Blog.

Unityでタイムラインを使ってゲームのイベントシーンの動きを作成してみる | Unityを使った3Dゲームの作り方(かめくめ)

パスに沿って電車を動かす

  1. Packge Managerからcinemachineをインストール

  2. 空のオブジェクトを作成し、CinemachineSmoothPathを追加する f:id:hiddenvally333:20210117215913p:plain

  3. 動かしたいオブジェクトにchinemachine Dolly Cartを追加し、Pathにさきほどパスを設定したオブジェクトを指定する。 f:id:hiddenvally333:20210117215918p:plain

  4. 実行するとTimelineは進むが、GameScreen上のTrainRunのオブジェクトがピクリともうごかない
    f:id:hiddenvally333:20210117215923p:plain

  5. アニメーションを設定しているオブジェクトのAnimator->Apply Root Motionにチェックを入れる。 なぜこれでよくなるのかわからないし、副作用もわからないがとりあえず動いたので良しとする。 f:id:hiddenvally333:20210117215928p:plain

動画の書き出し

  1. Unity Recorderをインストール f:id:hiddenvally333:20210117215933p:plain

  2. Recorder Windowを表示 Window -> General -> Recorder -> Record Window f:id:hiddenvally333:20210117215938p:plain

  3. 動画を書き出す設定を行う Add Recorder -> Movie f:id:hiddenvally333:20210117215943p:plain

  4. レコードの実行と停止 Window上部の「START RECORDING」を押し、終了したいタイミングで「STOP RECORDING」を押す。 自動で停止しないので注意。

おわりに

3Dモデルを動かすアニメーションを作成する流れの紹介をした。
Timelineやパスに沿ってオブジェクトを動かすcinemachine、動画を書き出すUnity Recorderを用いることで動画編集ソフトのようにアニメーションを作成することができた。
ちなみにBlenderでも今回と同様のアニメーションを作成することができる。どちらが3Dモデルのアニメーションを作るに適しているかはまだ判断できない。
とりあえず次回もUnityでアニメーションを作成しようと思う。