このUnityでノベルゲームを簡単に作れるエディタ拡張の機能紹介です。
データ作成
グラフを使用して視覚的にデータを作成できます。選択肢によってループする、異なる選択肢で一回異なる会話を挟んでから同じ会話にたどり着く、同じ選択肢を複数用意するなどを複雑な会話を簡単に設定できます.
UI設定
セリフ枠やボタンに好みのイラストを設定し、好きな位置に動かすことで自由にカスタマイズできます。
また、使用するNovelDataで背景を指定しないことで脱出ゲームや3Dゲームなどにも使用することができます。
ノード・セリフごとの設定
・名前・セリフ
名前を入力しなかった場合(ナレーションとか)名前なし用のセリフ枠が表示されます
・背景の設定
変わるかどうか、変わる場合は切り替わり方(フェード、パッと切り替わる、ディゾルブ)。
フェードの位置(背景のみ、セリフ枠後ろ、画面全体)
フェードの色、フェードにかかる時間
・立ち絵の設定
変わるかどうか、変わる場合は切り替わり方(パッと切り替わる、ディゾルブ)
変更するSprite(Noneにした場合は立ち絵が消えます)
ディゾルブ時の色
・SE・BGMの設定
変更なしor再生or停止
再生する場合は、どのように再生するか(指定回数だけ再生、指定秒数間再生・エンドレス再生)
再生する場合は開始時のフェード秒数
エンドレス再生でない場合は終了時のフェード秒数
・フォント
名前・セリフごとにフォントを変えられます。
指定のセリフでフォントが切り替わるかどうか
切り替わる場合はフォント・フォント色・フォントサイズを設定可能
TMPなのでリッチテキストタグを使用することもできます。リッチテキストタグを使用してもちゃんと1文字ずつ表示されます。
・エフェクト設定
色々あるので試してみてください
キャラ別・背景だけ・セリフ枠後ろ・画面全体のどこに適用するか、エフェクトの強さを選択可能
また、ノードにNameをつけて、どれを辿ったのかを調べることもできます
立ち絵の設定
・Imageを使用して視覚的に確認しながら立ち絵の位置を決めることができます。
・途中で立ち絵を増やしたい時、減らしたい時も同じImageのプレハブであれば画像やエフェクトの情報を保って変更することができます。
NovelPlayerコンポーネントの機能
・PlayOnAwakeにチェックを入れるとゲーム開始と同時に再生されます。
・HideAfterPlayにチェックを入れると、会話終了後にNovelPlayerが非表示になります。
・最後消す時のフェード時間:HideAfterPlayチェック時、終了時に非表示になるときのフェードにかかる時間です
・IsDisplayのチェックを外すと非表示になります。スクリプトからも操作できます
・入力方法ではDefaultかUserSettingかOverWriteかが選べます。UserSettingの場合は入力方法を自由にInputから選ぶことができます。OverWriteの場合は、NovelInputProviderを継承したクラスで入力方法を定義してNovelPlayer.SetInput()で設定してください。Defaultでは以下のようになっています
次のセリフへ | Return、Space、左クリック |
選択肢までor終了までスキップ | N |
UI非表示 | H |
一時停止 | S |
他にも以下のスクリプトリファレンスにある関数を用意しています。
コールバックを使用することで、特定の選択肢を選んだ時の動作を決めたり、バックログを作ったりすることができます
詳しくは同封のサンプルをみてください
今後入れていくであろう機能
・Live2Dへの対応
・AnimationClipによる立ち絵のアニメーション
・オート再生機能(現状デリゲートを使用することで実装できます)
・音声の再生機能
・エフェクトの追加
・会話ごとの文字速度の指定
・ノードのコピペをショートカットキーに対応させたい
お借りした素材
動画のセリフ枠/ボタンはびだちー素材館様、立ち絵はわたおきば様と三日月アルペジオ様、背景は気まぐれアフター様、BGMは甘茶の音楽工房様からお借りしました。