スクリプトにコマンドを書くおまけはじめにNaninovelとは、Unity用のビジュアルノベル開発エンジンです。好感度上昇インディケーターとは、ノベルゲームで選択肢を選んだ後、好感度が上昇したことを画面上にビジュアルで示すものです。画面上に何らかのエフェクトを表示することが多いです。ラブキャッチなどとも言いますが、決まった呼び方はなさそうです。↓これ(左下に出るやつ)をNaninovelを使って実装します。用意するものまずは表示したいエフェクトを用意します。今回はアセットストアで販売されているこのVFXを使いました。購入するとプレハブのセットが大量に入っているのですが、好きなものを選んで必要に応じて見た目をカスタマイズしておきます。エフェクトにはパーティクルシステムが使われています。Loopingの設定は基本OFFにして、表示時間などを調整します。実装にはカスタムUIを使います。コマンド(カスタムエフェクトを設定できる機能)を使おうかと思っていたのですが、一つ問題がありました。表示したエフェクトは、ゲームカメラをズームすると、位置によってはカメラの外に行ってしまってエフェクトが見えなくなります。インディケーターは常に画面の特定の位置に表示させたい。実はNaninovelではゲームカメラとUIカメラの2種類を使っていて、ゲーム画面をズームしていても、UIカメラに表示されているものは常に一定の位置にあります。インディケーターはUIカメラに表示するのが良さそう。カスタムUIを作るNaninovelにはカスタムUIを作る機能が用意されています。インスペクターの設定は基本デフォルトのまま。カスタムUIの名前をLoveにして、ヒエラルキーの下にエフェクトを配置しました。黒塗りの部分はキャラクターの名前です。キャラクターごとにエフェクトを変えたかったので、複数配置しました。エフェクトごとにタグを設定しておく複数のキャラクターのエフェクトがあるので、後でオブジェクトを識別するためにインスペクターウィンドウでタグを設定します。キャラクターの名前をタグにして、それぞれのエフェクトにタグをセットします。カスタムコマンドを作るスクリプト中の好きな場所にインディケーターを表示できるように、カスタムコマンドを作ります。空のC#ファイルを作ってLove.csと名付けました。中身はシンプルにこう。・・・カスタムコマンドの名前を紐づけます。いうコマンド名にしました。いう引数を設定して、キャラクターごとのエフェクトを出し分けます。whoの値を持つタグの付いたオブジェクトを探します。書くことで、エフェクトが再生されます。Layerの数字を変えても効かなかった。Layerを変更すると効いた。執筆者Yuliusゲームの翻訳を承っています。お気軽にご相談ください。