ものららい 2022/04/03 14:56

ゲーム的な演出とかのイベント進行など


こんにちは🍎

RPGなどをプレイしてると特定の位置や話の流れでキャラが動いたり会話が始まったりとか自動的な演出する事ありますよね。

それらの動作をスクリプト上に記述していってもいいんですが、規模が大きくなるとどうしてもスクリプトの再読み込み等の時間のロスが大きくなってきて、後に数文字変更した微調整繰り返してくるとだんだんとやきもきしますよね…。

流石に開発進んでくると長い読み込みとか待ってられないので、今回は以前作った会話の機能を改造してイベントの動作を順番にする機能を作ってみました。


まずこんな感じのできるようになりました。

↓今回使用するのは主にこの二つファイル
Assets/Script/CharacterTalkEvent.cs イベント機能
Assets/TalkEvent_001.txt イベントの設定ファイル


基本的にtxtに書かれてるコマンドのある行を順に処理していくというのはキャラクターとの会話の処理と同じものですが、こっちはより上位版になっていて設定されてる範囲で会話以外の事もできるようになっています。

パラメータ等の詳細はCharacterTalkEvent.csの処理中の方に記述していますが、一例をあげると、

Character_Move : "StagePlayer", 4,0,-3, true

という記述は「Character_Move :」の部分は命令の種類で「 "StagePlayer",」は移動の指定をするステージ上のキャラクターの名前、「 4,0,-3,」は順にx,y,z、最後の「true」は移動後に次の処理を行うか即座に次の処理を行うかboolで設定できます。

他にも色々ありますが、こういう命令を組み合わせることでイベントが始まったときに村人が寄ってきてから会話を始める、や、プレイヤーが近づいたときにみんな驚いたあとで逃げていく、や、敵兵NPCが一か所に集まってみんなで作戦を練り始めるとかの演出の準備に使えます。


今回思いつく範囲で一応基本的な所は用意しましたが、状況に応じてまだまだ必要なコマンドが出てくると思うのでその都度CharacterTalkEventに追加していけばいいかなと思っています。

CharacterTalkEventができたのでCharacterTalkは必要なくなりそうですが、普通の会話をする程度ならCharacterTalkの方がシンプルで楽なので、今後も一応残しておきます。(CharacterTalkの方に不備あったのでコマンドを解読する処理はCharacterTalkEventに合わせました。


一応イベントはひと段落付いたので(しゃべってるキャラ画像の差し替えとかONOFFとか、他不足はあるけど実際使っていかないと何ともな感じなのでもうちょい後で…リソース引っ張って来る方法とかもあるので後で…)、次はキャラクターとかじゃなくちょっと変わった所をやりたいと思います。(お楽しみに🍎)


今回のの実際動作するアセットフォルダも置いておきますので、アセットフォルダを空プロジェクトに入れれば確認できます。

2022_04_03_Assets.zip (571.34kB)

ダウンロード

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

最新の記事

記事のタグから探す

月別アーカイブ

記事を検索