トマシープが学ぶ

Unity/VR/AR/デザイン好きのミーハー 記事内容は自分用のメモです

会話アセットFungusを使う【Unity】

無料の会話アセットを使ってみます。

サンプル

f:id:bibinbaleo:20191013212338p:plain

FPSで歩いている手前に会話表示

f:id:bibinbaleo:20191013211814p:plain

セリフ表示

こちらを参考にやっていきます。全く同じこと書いていきます。

yuutea335.hatenablog.com

Toolからflowchart

f:id:bibinbaleo:20191013212616p:plain

OpenFlowchartを押す

f:id:bibinbaleo:20191013213007p:plain

NewBlockを押す

f:id:bibinbaleo:20191013213003p:plain

右下の+を押してNarrative>say

f:id:bibinbaleo:20191013213000p:plain

sayを押す。

f:id:bibinbaleo:20191013212955p:plain

StoryTextを書く

実行で表示!!

f:id:bibinbaleo:20191013212951p:plain

いきなり表示された!

キャラクター

Toolからcharacter

f:id:bibinbaleo:20191013213914p:plain

portraitsに差分を含め画像を入れる

f:id:bibinbaleo:20191013213859p:plain

Toolsからstage

f:id:bibinbaleo:20191013214122p:plain

f:id:bibinbaleo:20191013214124p:plain

フローチャートで設定

フローチャートの+からnarrative>portrait

f:id:bibinbaleo:20191013214617p:plain

キャラクターとか゚ポジションを設定

sayと順番を入れ替える

f:id:bibinbaleo:20191013214930p:plain

実行!

f:id:bibinbaleo:20191013214611p:plain

sayのほうにキャラクターを設定してポートレイトも設定すると

f:id:bibinbaleo:20191013214609p:plain

こんな感じだ

f:id:bibinbaleo:20191013214614p:plain

以下下の記事からの流用

bibinbaleo.hatenablog.com

スクリプトから会話を発生させる

最初はこちらの記事を参考にやってた。

negi-lab.blog.jp

qiita.com

でもこちらの記事のほうが場合分けしやすかった。

unity.moon-bear.com

フローチャートに新しくフローチャートを作る

f:id:bibinbaleo:20191015083330p:plain

Message Receivedに受け取るメッセージを書く

f:id:bibinbaleo:20191015083509p:plain

そしてスクリプト側でメッセージを送る。

public Flowchart flowChart;

flowChart.SendFungusMessage(message);

f:id:bibinbaleo:20191019204653p:plain

以下は今回のゲームすべてのスクリプトが入っているので分かりにくいけど、こんな感じ。

https://gist.github.com/bibinba/8821d127684c4b87c8cd05550731c4bf

お菓子が何個目かによって会話を変化させるのはこんな感じ

f:id:bibinbaleo:20191019200236p:plain

fungusだけでめっちゃ細かい設定できるのね。playmakerよりプログラミング的なこといろいろできそう

しゃべっている間は動かない

上の記事のスクリプトでしゃべっているときが取れるので、しゃべっているときはFirstPersonAIOコンポーネントをオフにした。

GetComponent<FirstPersonAIO>().enabled = false;

 これで動けなくなった。

 

IEnumerator Talk(string message)
{
if (isTalking)
{
yield break;
}
isTalking = true;

GetComponent<FirstPersonAIO>().enabled = false;
flowChart.SendFungusMessage(message);
yield return new WaitUntil(() => flowChart.GetExecutingBlocks().Count == 0);
isTalking = false;
GetComponent<FirstPersonAIO>().enabled = true;
}

会話が終わったら立ち絵を消す

会話が終わった後にキャラを消すにはPortraitを追加してHide

f:id:bibinbaleo:20191015083730p:plain

それぞれのキャラをhideしないといけないよ。

ちなみにfade screenは画面真っ黒だった。

f:id:bibinbaleo:20191015083327p:plain

選択肢

Menuでできる。

f:id:bibinbaleo:20191019220435p:plain

f:id:bibinbaleo:20191019220439p:plain

フォントを変える

tool>fungus>create>say dialogでシーンにsay dialogが出るのでそこで変えればいい。この変更が反映される。色とかも変えられる。

f:id:bibinbaleo:20191019200344p:plain

Menuも同様

f:id:bibinbaleo:20191019200336p:plain

 

f:id:bibinbaleo:20191019200348p:plain

reload

Scene>reloadで「最初から遊ぶ」ができる

f:id:bibinbaleo:20191019214141p:plain

公式リファレンス

公式のドキュメント

fungusdocs.snozbot.com


公式のフォーラム

fungusgames.com

最後に

fungus、最初はとっつきにくいかと思ったけどかなりいろいろ機能あるし日本語の解説があったらめっちゃいろいろできそう。