【Unity】AriadneのイベントをカスタマイズするEventCategory
- 2020.11.17
- 3DダンジョンRPG, Asset, Unity, ゲーム開発
このページでは『Ariadne - 3D Dungeon Maker』という3DダンジョンRPGのダンジョン部分を作れるアセットについて、イベントをカスタマイズしていく部分について紹介しています。イベントを自由にカスタマイズしてあなただけのダンジョンを作り上げましょう。
あなたのゲームをいち早く完成させるための研究所
このページでは『Ariadne - 3D Dungeon Maker』という3DダンジョンRPGのダンジョン部分を作れるアセットについて、イベントをカスタマイズしていく部分について紹介しています。イベントを自由にカスタマイズしてあなただけのダンジョンを作り上げましょう。
このページでは3DダンジョンRPGのダンジョン部分を作ることができるニッチなアセット『Ariadne - 3D Dungeon Maker』でダンジョン内のイベントをどのように制御しているかを紹介しています。3DダンジョンRPGではダンジョン内のイベントも魅力的にしたいところです。
このページでは3DダンジョンRPGのダンジョン部分を作ることができるEditor拡張系アセットの『Ariadne - 3D Dungeon Maker』について、マップの情報を保持している仕組みについて紹介しています。データの持ち方は頭を使いますが開発者的には楽しい部分ですね。
3DダンジョンRPGのダンジョン部分を作ることができるEditor拡張系アセットの『Ariadne - 3D Dungeon Maker』を1.5.0にアップデートしたのでその変更点を紹介しています。
Dictionaryの中身についてforeachを使おうとして「あれ? 型の指定どうするの?」と詰まった個人的な経験から、Dictionaryについてまとめてみました。キーと値のペアであるKeyValuePairというまんまなクラスがあるのでこれを使うべし。
UnityでC#を使い始めて一番最初にぶつかった壁がジェネリックだった記憶があります。きちんと理解すると心強い味方になりますし、プログラミングの負担が減るのでぜひマスターしたい機能です。特にジェネリックリストは一度使い始めると手放せなくなりますからね。
個人的にはListを使うことが多いのですが、Listと配列の違いを意識してどちらを使うのか決めるのが大切です。ポイントは「要素数を後から変えるか」「パフォーマンスを重視するか」ですね。複数の値をまとめて扱いたいケースは多いので、是非ともマスターしたいところ。
C#で使っている型名のintやfloatは実は本名じゃなくてエイリアス(別名)なんです。これを知っていること自体は「ふーん」で終わるのですが、C#が使っているフレームワークである.NET Frameworkにも目を向けてみることでより情報を得やすくなるかもしれません。
C#でコードを書いた結果、重い処理になっているなーと気になったらProfiler(プロファイラー)を使ってみましょう。CPUの処理時間だったり、メモリの使用量だったりをグラフ化して表示してくれます。パフォーマンス調整もしやすくなるのでぜひ。
IDEやコードエディタに搭載されているデバッガーの機能を使ってステップ実行していくことでゲームのシステムの中身が把握しやすくなります。この記事ではブレークポイントを設定してその時点での変数の中身を確認する方法を紹介しています。
適切にログを出力するようにしておくと開発者の助けになります。動いているゲームの中身は、そのままの形だと人間が把握するのは至難の技。そこで人間にも分かりやすいログの形で処理内容を出力することで、システムの中で何が起きているのかを知ることができます。
Boltでは処理の流れを作っていくフローと、状態を管理するステートがあります。キャラクターやゲームの進行フェーズに合わせてステートを切り替えていくと管理しやすいので、Boltを使うならステートを扱えるようにすると便利です。
UnityではBoltというビジュアルスクリプティングツールを無料で使うことができます。ゲーム開発にビジュアルスクリプティングを導入するメリットとデメリットを頭に入れてから使ってみると、ツールの力を引き出してより効率的なゲーム開発を行うことができます。
マテリアルでピクセルスナップを設定しておくことで、スプライトの端に表示されやすい謎の線が消えたり、スプライト自体の表示が微妙にズレたりすることを防ぐことができます。ゲーム自体がレトロな雰囲気の8ビットゲームである場合は、「2D Pixel Perfect」のパッケージの導入も検討すると開発が進めやすくなるかもしれません。
Unityのコルーチンでは1フレームだけ処理を待ったり、指定した秒数だけ処理を待ったりすることができます。フレームで処理を待つ場合は、60FPSと30FPSで待ち時間が倍になるので、この辺りにも注意が必要です。ユーザーさんが機器に依存しないゲーム体験を得るためには、秒数指定が便利かもしれません。
ブロック崩しのように大量のオブジェクトを配置する必要のあるゲームでは、手動でオブジェクトを配置していくのは大変です。スクリプトとPrefabを使えばボタンひとつでオブジェクトを配置してくれるようになってかなり便利。なので、このサンプルを試してみてくださいな。
マルチプラットフォーム向けにビルドできるUnityですが、だからと言って何も考えず全てのプラットフォーム向けに最適化された状態になるわけではないので、しっかりと調整するようにするとイケてるゲームデベロッパーになれます。
Prefabをインスタンス化するサンプルです。割と遊び感覚で作ってるサンプルなので、気楽に試してみてください。インスタンス化の処理に加えて、親オブジェクトの設定やマテリアルの設定などについてもコードに入れてあります。
作成したGameObject(ゲームオブジェクト)を削除したい場面は大きく分けて2つあり、ひとつは開発中にヒエラルキーウィンドウで不要なオブジェクトを削除したい時、もうひとつはゲームの実行中に不要なオブジェクトを削除したい時です。この2通りについて解説しています。
初心者の頃の自分からすると、慣れていないツールを英語に囲まれて操作していくというのはちょっと辛いものがありました。ゲームエンジンを使う目的は楽してゲームを作ることですから、日本語化を行って使いやすくすることも大切です。