ものららい 2022/03/11 12:16

Unityで今まで作ってみた物をつなぎ合わせてみた


こんにちは🍎

前回キャラクターの基本的な動作の部分ができたので、今回は実際に今まで作った機能の「会話ウィンドウ」と「ふきだしセリフ」と「キャラクター」を使って移動してNPCと会話できるようにしてみました。

機能の繋ぎこみ自体はもともと初めから想定してたので問題は無かったんですが、今回会話処理というものの結構な実装の手間さを再確認してしまって、ここら辺の作業苦手だな~って思いました。

会話がNPCが一言しか言葉を発しないならそれなりに楽なんですが、普通は会話始まると数ページくらい文言が表示されて決定ボタンを押しながらどんどん読んでいきますよね。

実際それをしようとすると何かしらの会話データを解読する処理が必要になるので、まずそこから作ってましたが、経験上なるべく複雑なものにしたくないので今回は.txtファイルに一行ずつ命令文を書いていくシンプルな形を心がけるようにしました。(過去にjsonとかxmlとかでデータ保持して色々やってみましたが結局入力するデータの肥大化とかシンプルから遠ざかって行ったので今回はごくごくシンプルに徹しました。)

実際に会話データ Assets/TalkText_001.txt の中身にこんな記述がありますが。

name:ものほし
text:こんにちは!
text:今日はいい天気ですね。

会話データの命令文について説明しますが、「name:」で始まる行は会話ウィンドウの名前欄の文字列の変更で「text:」が会話ウィンドウのセリフ文言の変更になります。

基本的によほどの事が無い限り命令は「text:」に行くまで命令は自動的に次へ次へと行われます。

それはなぜかというと、名前の変更を行った際に処理が停止してしまうともう一回決定ボタンを押さないとセリフの表示がされないので、レスポンス的に非常にももやもやする感じになるので、決定キーを押して次の命令を行う動作は次のセリフの表示(または現在のセリフのアニメーションを完了させる)のみを行うようにしています。

実際そこら辺の処理は Assets/Script/CharacterTalk.cs や Assets/Script/BaseSystem/UI/UI_TextAnimation.cs に書いてありますが、若干仮組感あり今回もあんまり上手く実装できたとはいいがたいのでお手柔らかに。(これから使用できる命令も少しずつ増やしていければなど…)

ちなみにですが、会話データは色変えと改行タグ(<color=#ffffff>や<br>)が使えます。
操作に関しては、話しかけたり会話ウィンドウ内の決定はEnterキーでできます。


実際に動作してみたやつ。


他にもNPC周りの実装とかネタはあるんですが、今回会話データの命令の処理とかアニメーションする文字列にタグ適応とかで結構消耗してしまったので、そこらへんは次回に回そうと思います🐄


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

2022_03_11_Assets.zip (457.35kB)

ダウンロード

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

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

最新の記事

記事のタグから探す

月別アーカイブ

記事を検索