201713日目の記事です。概要Fungusはフリーで使えるビジュアルノベルアセットです。簡単な概要についてはフリーのビジュアルノベルアセットのFungusが便利で紹介しています。今回はこのFungusを使って、シーン切り替えありのRPGのイベント処理を作りたいと思います。いわゆる、おつかいイベントを実装します。AssetsのFPSControllerを配置したとします。ToolsメニューからFungusのフローチャートを作成します。ここで、町の人に話しかけたときのイベントを実装します。新しくブロックを作成し、ブロック名を設定します。町の人に話しかけたときにこのブロック名を指定して呼ぶことによって会話を始めます。町の人のイベントトリガーを作成Flowchartのblock名を保存するだけのクラスを作り、町の人につけます。特定のキーを押したらRayを飛ばして、ぶつかったオブジェクトが上記のBlockTriggerを持っていたら、FungusのFlowchartのblockを実行します。これをFPSのカメラにAddすれば、見ている方向を調べるコマンドが実装できます。}}こんな感じで町の人を向いてキーを押すことによってFungusのblockを実行できました。このままではメッセージが表示されている間もプレイヤーが移動できてしまいます。Fungusが動いている間は移動できないように制限しましょう。Flowchartオブジェクトに以下のようなクラスを追加して実現します。}}上記コードだと1点問題があり、選択メニューを表示しているときに動けてしまいます。選択メニュー表示中はどこのblockも実行していない待ち状態だからです。FPSコントローラを使用しているとマウスのカーソルがロックされているため、メニューを選択できません。それらを考慮して上記のコードを改良したのが以下です。}}コマンドについてFungusの各ブロックのコマンドですが、これに関しては見たままなのでここでは特に記載することはありません。やれば自然になります。このとき、次シーンの開始時にフェードインコマンドを実行する必要はあります。コマンドで表現できないものはソース書いてスクリプト実行コマンドを使ったりします。冒頭の動画にあるようなクエスト完了時のカットシーン的なのもFungusでオブジェクトのアクティブを切り変えたり、iTweenコマンドで動かしたりして実装しています。セーブについて町の外でフラグを立てて、シーンを切り替えて建物の中でそのフラグを判定します。flowchartで変数の管理はできます。切り替えが入るので、Fungusのflowchartの変数の値をどこかに保存しないといけません。変数のセーブ機能はあります。変数一つ一つにコマンドを実行しないといけないので結構つらさがあります。ロードに関しても同様です。保存先はPlayerPrefsなので利用シーンによっては改良する必要があります。まとめセーブ周りがちょっとしんどいですが、簡単なイベントを作るにはFungusは便利です。RPGツクールを触っていた人間からすると、これが一番しっくりきたアセットでした。(@kido0617)。