Unity 3DダンジョンRPGの作り方21 不具合修正とダンジョンテクスチャの貼り方を解説 | Unity入門の森 ゲームの作り方

Unity 3DダンジョンRPGの作り方21 不具合修正とダンジョンテクスチャの貼り方を解説

Unity 3DダンジョンRPGの作り方 ~世界樹・ウィザードリィ風ゲームを作ろう~

現場レベルのゲーム制作が、すべてここで学べます。

【永久会員チケット】

永久会員チケット|Unity入門の森

全講座を見放題で学ぶ

ソースコード・素材・プロジェクトすべて公開。
Unityの基礎から応用まで、一生使えるスキルを体系的に習得。

この講座は3Dダンジョン探索型RPGの作り方について解説しています。元々は第20回が最終回でしたが不具合修正とおまけの演出強化の第21回を設けてみました。

前回はBGMや効果音、そしてエフェクトアニメーションやスマホ対応などを行い、遊べるゲームとして完成させました。

前回の記事:

Unity 3DダンジョンRPGの作り方20 BGMと効果音を設定/アニメーションなど演出面を強化/スマホ操作に対応させる
この講座は3Dダンジョン探索型RPGの作り方について解説しています。今回が最終回になります。前回はダンジョン内メニューの実装とスキル・アイテム使用処理を実現し、3DダンジョンRPGシステムを完成させました。前回の記事:今回はゲームに華を添え...

今回は戦闘不能になっているキャラクターに対してメニュー画面からスキル使用を行う対象にできることへの対応、そしてダンジョンテクスチャの貼り方について追記していきます。

ダンジョンテクスチャを変更するだけで3Dダンジョンの雰囲気がガラッと変わるのでぜひ試してみてください

【ゲームの作り方講座プレゼント中!】

戦闘不能まわりの不具合修正

現在、ダンジョン探索中のメニュー画面から戦闘不能になったキャラクターに対してスキルを使用できたり、回復などを行える不具合が存在しています。スクリプトを一部修正しこの問題に対処しましょう。

MenuWindow.cs内 SelectActorUIメソッド

戦闘不能のキャラはターゲットに選べないように修正しました。戦闘画面側では既にこの条件式が追加されているためそちらは修正不要です。

また全体回復スキルなどで対象に選ばれることもありますが、HPが1以上に回復することはないためそちらも対処不要です。

ダンジョンブロックにテクスチャを設定しよう

現在、このゲームのダンジョンにおいて壁や床となるブロックオブジェクトはワイヤーフレーム風のテクスチャのみが貼られており、少々味気ない見た目となっています。
テクスチャ画像を張り替えるだけなら簡単ですが、折角なのでダンジョンの階層ごとに異なるテクスチャ画像を設定できる仕様に変更してみましょう。

サンプルテクスチャ配布

新しくブロックに設定するテクスチャは任意の画像を使用可能ですが、すぐに確認したい人のためにサンプル用のテクスチャを2種類ずつ配布します。

壁テクスチャ

床テクスチャ

Texture/MapTileTextureフォルダ以下に格納すると良いでしょう。

画像をそれぞれ右クリックで保存する場合は拡張子を.webpから.pngに変更してください。

スクリプト設定

MapDataSO.cs内 変数宣言部

MapEditorWindow.cs内 OnGUIメソッド内

マップデータ定義クラスおよびマップエディタ画面を編集し、階層ごとに異なる壁・床テクスチャ画像を指定できるようにしました。

MapManager.cs内 Initメソッド内

MapManagerで壁・床ブロックのオブジェクトを作成する際にテクスチャの割り当てを行う処理を追加しました。

マップエディタからテクスチャ画像を貼り付けよう

ここまででマップデータやマップ表示機能の処理追加は完了です。ここからは実際にマップエディタでテクスチャ画像を貼り付けてみましょう。

メニューからWindow > MapEditorを選択して以前作ったScriptable Objectを選ぶとテクスチャを設定できるようになっています。

↑試しにタイルを当てはめてみましょう。

この段階でマップエディタからテクスチャ画像を割り当てれば、ゲーム内でテクスチャが切り替わっていることを確認できるはずです。

テクスチャ表示の上下反転を修正

これまでは上下対象な画像であるワイヤーフレームを使用していたため問題になりませんでしたが、Cubeオブジェクトにテクスチャを貼り付けた場合、見る向きによっては画像が上下に反転してしまいます。

MapBlock_Wallプレハブを編集して、反転して見えてしまう面の部分には新しく面を重ねることでカバーしておきます。

子オブジェクトにQuadオブジェクト(名前は任意ですがWallQuadとしました)を作成します。
これを反転してしまう面の位置、Position=(0, 0, -0.5001)辺りに移動させます。

その後、親オブジェクトであるMapBlock_Wallと同じMaterialを適用します(つまりWireframeマテリアル)。
(同じマテリアルでないとスクリプトからの反映が正常に行われません。)

なお、床ブロックについては真上からしか見ることがないため同様の設定は不要です。

これによってどの角度から壁を見ても同じ向きでテクスチャ画像が表示されるようになりました。
階層ごとに個別に画像を設定できる機能も含めて動作確認してみてください!

意外と簡単に3Dダンジョンにテクスチャを貼ることができましたね。

テクスチャを貼るだけで見栄えが変わってダンジョンRPGの雰囲気がグッと引き立つのでぜひ試してみてください。

Unity 3DダンジョンRPGの作り方講座に戻る >>

【ゲームの作り方講座もプレゼント中!】

現場レベルのゲーム制作が、すべてここで学べます。

【永久会員チケット】

永久会員チケット|Unity入門の森

全講座を見放題で学ぶ

ソースコード・素材・プロジェクトすべて公開。
Unityの基礎から応用まで、一生使えるスキルを体系的に習得。

コメント

タイトルとURLをコピーしました