トマシープが学ぶ

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

【unity1week】Fungusを使って会話!【お題:さがす】

さがす

今回のお題は「さがす」

 

私の今回の目標はfungusを使うこと。

ゲームはシンプルに鍵を探して脱出するゲームにしたい。

ハロウィン🎃の時期なのでお菓子を3つ探すゲームにしました。

立ち絵

立ち絵がないと始まらない。有料でいいからイケメンが欲しい

ググって探したけど好みのイケメンがいない・・・

そもそも高品質なイラストがあまりない?調べ方が悪いのか

www.dlsite.com

vroidのキャラを使ったほうがいいかな

アセットストアでよかったのはこれぐらいかな

assetstore.unity.com

assetstore.unity.com

fungusの解説記事を書いている方が使っていたサイト「三日月アルペジオ」はイケメンいっぱいいた!!

roughsketch.en-grey.com

アベリーさんとレイバンさんをお借りしました。

f:id:bibinbaleo:20191015064906p:plain

三日月アルペジオ アベリー

f:id:bibinbaleo:20191015064903p:plain

三日月アルペジオ レイバン

f:id:bibinbaleo:20191019214838p:plain

部屋を移動

部屋

部屋はこちらの無料アセット

コライダーもついていて、移動もしやすく素晴らしい

f:id:bibinbaleo:20191019213626p:plain



なんかエラーが出たので入ってたスクリプトは消した。

f:id:bibinbaleo:20191015083332p:plain

移動

fungusにfpsのサンプルシーンがあったのでそこから移動を持ってくる。

Playerを丸ごとプレハブ化して自分のシーンに持ってくるだけ!一瞬

f:id:bibinbaleo:20191015072357p:plain

だけど、なんか動きにくかったので結局別のアセットを使った。

これ

 

この記事で試したときよかったので

bibinbaleo.hatenablog.com

うん、やっぱりいい。カーソルはLock and Hide Cursorのチェックを外したら消える

f:id:bibinbaleo:20191019194928p:plain

けどwebglビルドして遊ぶと、カーソルがない状態だとrayクリックが反応しなかった。結局カーソル出した。

カギをクリックする

qiita.com

event triggerで取得しようと思ったけど、なんかうまくいかなかったのでraycastにした。

今思えば純粋に鍵の位置がマウスのrayに当たらないところだっただけな気がする。

qiita.com

クリックしたらキーを消す。

Destroy(hit.collider.gameObject);

fungus

 基礎だけ前の記事でやりました。

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でできる。

フォントを変える

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

仕上げ

音はこちらから

dova-s.jp

maoudamashii.jokersounds.com

サムネもUnityで作った

f:id:bibinbaleo:20191019215125p:plain

f:id:bibinbaleo:20191019215029p:plain

おかしはGooglePolyからダウンロードしたんだけど、ほとんどテクスチャがなくて使えなかった。5個もおかし揃えられなかったのでunityちゃんのバレンタインチョコを2つ置いた。

バレンタインチョコレート - ダウンロード - UNITY-CHAN! OFFICIAL WEBSITE

f:id:bibinbaleo:20191019215533p:plain

poly.google.com

f:id:bibinbaleo:20191019215419p:plain

f:id:bibinbaleo:20191019215424p:plain

最後に

公開されたら遊べます。

https://unityroom.com/games/find3sweets

www.youtube.com

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

今回はtrelloでタスク管理した。褒められてうれしかった

いろいろ実装したいことが頭の中で出てくるからそれを書きとめるのにいい。すぐ終わるタスクばっかりだったのでActiveにとどまることなくDoneに行った。