おーみんブログ

C#, ASP.NET Core, Unityが大好きです。

【Unity】TimelineとFungusでムービーに会話を入れる!

f:id:bookreadkun:20190412120549p:plain

おはようございます。おーみんです。

 

 

 

TimelineとFungusでムービーに会話を入れる!

今回はムービー作成の勉強として用いているTimelineを使いながら会話イベントを起こす方法について考えてみたいと思います。

 

会話イベントと言えばFungusを使うと思うのですが、これTimelineを用いてムービー作成する際はどうやって使用するのか謎ですよね・・・(笑)

 

というのも、Timelineには以下のように各々のオブジェクトのアニメーション等を入れていくのですが、ここにFungus機能をどうやって組み合わせればいいのか不明なのです。色々と海外の方々が書いた記事までしつこく探しましたが、見つからず・・・(というかTimelineを使用して会話シーンを作っている方自体がほぼいないという・・・( ;∀;))。

f:id:bookreadkun:20190409230304p:plain

(写真のTimelineの引用はこちらの記事から)

 

仕方ないので自分で色々と考えてみたら、まさかの超簡単に組み合わせられる方法を見つけたのでブログに残しておこうと思います。

 

FungusのWait Framesコマンドを使う!

以下の写真を見てみましょう。

f:id:bookreadkun:20190412121834p:plain

この写真は記事の最初にツイートしたムービーのFungus部分です。

 

「Execute On Event」の設定をGame Startedに設定し、会話の開始部分を「Wait For Frames」で調整します。この「Wait For Frames」とピンク色の「Wait frames」コマンドでTimelineのフレーム数と合うように自身で調整してください(少し大変かもしれませんが、何度も再生してキャラクターの動作とセリフが良い感じになるように)。

 

ちなみに4つ目のSayコマンドで空白の会話がありますが、これは直前のセリフ「よく見ていて~だから。」のセリフが終わった後に自動でセリフのUIをフェードアウトさせるためです。

 

これがないと、「よく見ていて~だから。」のセリフのUIがずっと画面上に残ったままになってしまうんですよね・・・

Sayコマンドの詳細に会話が終わった後に自動でフェードアウトさせるチェックボタンもあるのですが、それで試してみるとセリフを言い終わった後に即UIが消えてしまい、ユーザがセリフを見逃してしまいます。

 

ここら辺はゲームならばクリックしたりボタンを押すことで次のセリフに移れるのですが、今回作っているのはムービーであり、ユーザにはただ見てもらうように作るため工夫しなくてはいけません。

 

Timelineの設定

Timelineは以下のような感じに設定しています。

f:id:bookreadkun:20190412123245p:plain

 

登場している4人のキャラクターの動作とアニメーションをそれぞれ設定しています。

カメラの切替はCinemachineを用いており、5行目の方ではそれぞれ設定したバーチャルカメラを設定している形になっています。 

最後に

ということで、今回はTimelineを使ったムービー作成にFungusを用いて会話イベントを入れてみるという内容でした。

 

もちろん、TimelineとFungusのフレーム数を合わせる際に画面を行ったり来たりするのが大変ではありますが、今のところこれが僕の見つけた最善の方法です。

 

もしも、もっと楽にムービーでも会話イベントを取り込める方法を知っている方がいらっしゃいましたら教えて欲しいです。