【Unity】TimelineとFungusでムービーに会話を入れる!
おはようございます。おーみんです。
Unityで『魔術』の再現にチャレンジ中。
— 超おーみん3@Unity民族 (@Ooooooomin_365) 2019年4月11日
TimelineとFungusの組合せも可能ですね!(アニメーションとセリフのタイミングを合わせるのが大変でしたがw)カメラ切り替えはCinemachineにて。
明日は炎の中の石炭を金貨に変えるシーンからラストまでいきたい。#unity #Fungus #Timeline #cinemachine pic.twitter.com/qFWRhdbiKD
TimelineとFungusでムービーに会話を入れる!
今回はムービー作成の勉強として用いているTimelineを使いながら会話イベントを起こす方法について考えてみたいと思います。
会話イベントと言えばFungusを使うと思うのですが、これTimelineを用いてムービー作成する際はどうやって使用するのか謎ですよね・・・(笑)
というのも、Timelineには以下のように各々のオブジェクトのアニメーション等を入れていくのですが、ここにFungus機能をどうやって組み合わせればいいのか不明なのです。色々と海外の方々が書いた記事までしつこく探しましたが、見つからず・・・(というかTimelineを使用して会話シーンを作っている方自体がほぼいないという・・・( ;∀;))。
(写真のTimelineの引用はこちらの記事から)
仕方ないので自分で色々と考えてみたら、まさかの超簡単に組み合わせられる方法を見つけたのでブログに残しておこうと思います。
FungusのWait Framesコマンドを使う!
以下の写真を見てみましょう。
この写真は記事の最初にツイートしたムービーのFungus部分です。
「Execute On Event」の設定をGame Startedに設定し、会話の開始部分を「Wait For Frames」で調整します。この「Wait For Frames」とピンク色の「Wait frames」コマンドでTimelineのフレーム数と合うように自身で調整してください(少し大変かもしれませんが、何度も再生してキャラクターの動作とセリフが良い感じになるように)。
ちなみに4つ目のSayコマンドで空白の会話がありますが、これは直前のセリフ「よく見ていて~だから。」のセリフが終わった後に自動でセリフのUIをフェードアウトさせるためです。
これがないと、「よく見ていて~だから。」のセリフのUIがずっと画面上に残ったままになってしまうんですよね・・・
Sayコマンドの詳細に会話が終わった後に自動でフェードアウトさせるチェックボタンもあるのですが、それで試してみるとセリフを言い終わった後に即UIが消えてしまい、ユーザがセリフを見逃してしまいます。
ここら辺はゲームならばクリックしたりボタンを押すことで次のセリフに移れるのですが、今回作っているのはムービーであり、ユーザにはただ見てもらうように作るため工夫しなくてはいけません。
Timelineの設定
Timelineは以下のような感じに設定しています。
登場している4人のキャラクターの動作とアニメーションをそれぞれ設定しています。
カメラの切替はCinemachineを用いており、5行目の方ではそれぞれ設定したバーチャルカメラを設定している形になっています。
最後に
ということで、今回はTimelineを使ったムービー作成にFungusを用いて会話イベントを入れてみるという内容でした。
もちろん、TimelineとFungusのフレーム数を合わせる際に画面を行ったり来たりするのが大変ではありますが、今のところこれが僕の見つけた最善の方法です。
もしも、もっと楽にムービーでも会話イベントを取り込める方法を知っている方がいらっしゃいましたら教えて欲しいです。