Unityに関連する記事です

 以下の内容で順番に実装していきます。

28.現在のシナリオデータ(パラグラフ)に合わせた分岐用のメッセージ表示とBGMを再生する

28.現在のシナリオデータ(パラグラフ)に合わせた分岐用のメッセージ表示とBGMを再生する


 設計と手順についてまとめます。

 1.Excelファイルに情報を追加し、Jsonファイルとして出力後、Unityにインポートする
 2.SenarioMasterDataスクリプトを修正して、分岐用のメッセージと再生するBGMの情報を登録できるようにする
 3.GameDataスクリプトを修正してJsonファイルから取得したデータをゲーム内で使用できる状態にする
 4.TextMessageViewerスクリプトを修正して、シナリオの展開(パラグラフ)に合わせたBGMを再生する
 5.GameDirectorスクリプトを修正して固定メッセージになっていた分岐ボタンのメッセージを、シナリオの内容を反映させて表示する


1.Excelファイルに情報を追加し、Jsonファイルとして出力後、Unityにインポートする


 今回追加したい機能については、現在のシナリオデータだけでは情報が足りません。
そこでまずは以下の項目について、Excelファイルにデータを追加するところから修正を行います。

 準備後、ExcelファイルをまたJsonファイルに出力してUnityにインポートしてください。

bgmNo

 
 シナリオデータ再生時に再生するBGMを設定します。整数の数字を1つ用意します。この番号が再生するBGMの番号になります。

branchMessageString


 パラグラフの最後に表示される分岐用のメッセージを設定します。カンマ区切りで用意してください。

autoScenarioNo


 パラグラフの最後に分岐がない場合、branchStringに文字列で -1 を入力しておくことで、自動的にこのシナリオ番号のパラグラフが再生させるようになります。
ExcelやJsonにデータがない場合(空白の場合)には、自動的に 0 が代入されます。


2.SenarioMasterDataスクリプトを修正して、分岐用のメッセージと再生するBGMの情報を登録できるようにする


 Excelファイルに新しく準備した項目に合わせて、分岐用のメッセージとBGMの番号情報を受け取るための変数を、スクリプタブル・オブジェクト側に用意します。

 Excel ImporterでExcelファイルから直接スクリプタブル・オブジェクトを作成している場合には、Scenariスクリプト内のParamを同じように修正して変数を追加してください。


Excel => Jsonからスクリプタブル・オブジェクトを作成している場合


SenarioMasterData.cs

 <= クリックすると開きます。



Excel ImporterでExcelファイルから直接スクリプタブル・オブジェクトを作成している場合


Scenario.cs

 <= クリックすると開きます。

3.GameDataスクリプトを修正してJsonファイルから取得したデータをゲーム内で使用できる状態にする


 1列の文字列になってJsonファイルに登録されている分岐用メッセージ(branchMessageString)を、カンマの位置で区切って1つずつのメッセージになるようにして、それを配列に入れる処理を追加します。

 全文掲載しますが、追加箇所はCreateScenarioDataListメソッド内に4行だけです。

GameData.cs

 <= クリックすると開きます。


4.TextMessageViewerスクリプトを修正して、シナリオの展開(パラグラフ)に合わせたBGMを再生する


 修正箇所は大きく分けて3か所です。

 1つ目は、宣言フィールドに 銑の宣言を追加します。BGMと分岐用メッセージの値と、分岐がない場合のシナリオ番号の値を代入するためのものです。
 2つ目は、SetUpScenarioDataメソッド内に処理を追加します。,鉢△鮖箸辰董BGMと分岐用のメッセージを設定し、SoundManagerクラスを使ってBGMを再生します。
 3つ目は、NextTouchメソッド内にあるCreateBranchSelectButtonメソッドの呼び出しの引数を変更を行います。
 この引数を分岐用のメッセージに変更することにより、ボタンに表示されるメッセージをパラグラフの内容に合わせて表示させます。
 また最後のメッセージ後に分岐のある/なしに合わせて、分岐選択ボタンを生成するのか、自動的に次のシナリオを再生するのかを分岐するようにします。


TextMessageViewer.cs

 <= クリックすると開きます。

5.GameDirectorスクリプトを修正して固定メッセージになっていた分岐ボタンのメッセージを、シナリオの内容を反映させて表示する


 GameDirectorスクリプトのCreateBranchSelectButtonメソッドを修正します。
修正箇所は5箇所あります。

´◆CreateBranchSelectButtonメソッドの第1引数、第2引数
  ,汎韻献瓮愁奪鋲發for文の条件
きァBranchSelectButtonスクリプトのCreateBranchSelectButtonメソッドの第1引数、第2引数です。

 ´CreateBranchSelectButtonメソッドの引数を変更することにより、分岐用のメッセージを受け取れるようにします。
また、この配列の最大要素数(Lnegth)を取得することで、分岐のメッセージの数(作成するボタンの数)だけfor文のループを繰り返せるように条件を変更します。

 最後のきBranchSelectButtonスクリプトのCreateBranchSelectButtonメソッドの第1引数、第2引数ですが、こちらにシナリオデータの分岐用メッセージを渡すことで
いままで分岐ボタンに選択肢1〜3というように固定で表示していた内容を、シナリオデータの分岐のメッセージをそれぞれ表示させるように変更します。

GameDirector.cs(該当するメソッドのみ掲載します。修正箇所は 銑イ蚤弍しています。)

 クリックすると開きます。

 

 
 以上になります。ゲームを実行してみます。まずは、スクリプタブル・オブジェクトに、新しく設定した項目の内容が登録されるか確認します。
問題なければ、ゲームの再生を続けます。シナリオデータに設定された番号のBGMが流れて、最後に分岐用のメッセージの内容が反映された分岐選択肢ボタンが表示されれば成功です。
 

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu



技術/知識(実装例)

2Dおはじきゲーム(発展編)

2D強制横スクロールアクション(発展編)

3Dダイビングアクション(発展編)

2Dタップシューティング(拡張編)

レースゲーム(抜粋)

2D放置ゲーム(発展編)

3Dレールガンシューティング(応用編)

3D脱出ゲーム(抜粋)

2Dリアルタイムストラテジー

2Dトップビューアドベンチャー(宴アセット使用)

3Dタップアクション(NavMeshAgent 使用)

2Dトップビューアクション(カエルの為に〜、ボコスカウォーズ風)

VideoPlayer イベント連動の実装例

VideoPlayer リスト内からムービー再生の実装例(発展)

AR 画像付きオブジェクト生成の実装例

AR リスト内から生成の実装例(発展)

private



このサイト内の作品はユニティちゃんライセンス条項の元に提供されています。

管理人/副管理人のみ編集できます