Odin Inspector
- Odin Inspectorとは
- Odin Inspectorの主な機能
- Odin Inspectorのインストール方法
- Odin Inspectorでできること
- Odin Inspectorのカスタム属性の作成方法
- Odin Inspectorのバリデーションの使用方法
Odin Inspectorとは
Odin Inspectorは、Unity開発者がインスペクターウィンドウをカスタマイズして、より効率的に開発するための強力なツールです。
例えば、デバッグ情報を表示したり、オブジェクトのシリアライズ機能を拡張したりすることができます。
以下は、Odin Inspectorを使用してデバッグ情報を表示する例です。
using UnityEngine; using Sirenix.OdinInspector; public class DebugExample : MonoBehaviour { [ShowInInspector] private int health = 100; [Button("Take Damage")] private void TakeDamage() { health -= 10; Debug.Log("Health is now " + health); } }
Odin Inspectorの主な機能
Odin Inspectorの主な機能は以下の通りです。
- ・デバッグ情報を表示する機能
- ・オブジェクトのシリアライズ機能を拡張する機能
- ・カスタムエディターを作成する機能
- ・データのバリデーションを行う機能
- ・変数のグループ化機能
- ・カスタム属性を作成する機能
以下は、カスタム属性を作成する例です。
using UnityEngine; using Sirenix.OdinInspector; public class CustomAttributeExample : MonoBehaviour { [Title("Custom Attribute Example")] [ColorPalette] public Color color; [Button, PropertyOrder(-1)] private void ResetColor() { color = Color.white; } }
Odin Inspectorのインストール方法
Odin Inspectorのインストール方法は以下の通りです。
- 1.UnityのAsset StoreからOdin Inspectorをダウンロードします。
- 2.ダウンロードしたファイルをインポートします。
- 3.Odin InspectorがUnityのインスペクターウィンドウに表示されることを確認します。
- 4.Odin Inspectorの使用方法
Odin Inspectorを使用するには、以下の手順を行います。
- 1.Odin Inspectorがインストールされていることを確認します。
- 2.Odin Inspectorを使用したいスクリプトに、Sirenix.OdinInspectorの名前空間を追加します。
- 3.Odin Inspectorの属性を変数に付加します。
以下は、Odin Inspectorを使用してオブジェクトをシリアライズする例です。
using UnityEngine; using Sirenix.OdinInspector; public class SerializeExample : SerializedMonoBehaviour { [SerializeField] private int health = 100; [SerializeField] private float speed = 10.0f; }
Odin Inspectorでできること
Odin Inspectorでできることは、以下の通りです。
・インスペクターウィンドウをカスタマイズすることができる ・オブジェクトのシリアライズ機能を拡張する ・カスタムエデ作成することができる ・変数のグループ化ができる ・データのバリデーションを行うことができる ・カスタム属性を作成することができる
Odin Inspectorのカスタム属性の作成方法
Odin Inspectorのカスタム属性を作成するには、以下の手順を行います。
Odin Inspectorがインストールされていることを確認します。 Sirenix.OdinInspector.Editor.AttributeProcessorクラスを継承したクラスを作成します。 クラスに、Odin Inspectorで使用する属性を定義します。 クラスをUnityのアセットフォルダに保存します。 以下は、カスタム属性を作成する例です。
using UnityEngine; using Sirenix.OdinInspector; using Sirenix.OdinInspector.Editor; public class CustomAttributeProcessor : AttributeProcessor { public override bool CanProcessSelfAttributes(InspectorProperty property) { return property.Attributes.Any(attr => attr is MyCustomAttribute); } public override void ProcessSelfAttributes(InspectorProperty property, List<Attribute> attributes) { MyCustomAttribute myAttribute = attributes.FirstOrDefault(attr => attr is MyCustomAttribute) as MyCustomAttribute; if (myAttribute != null) { // カスタム処理を実行する } } } public class MyCustomAttribute : Attribute { public MyCustomAttribute() { } }
Odin Inspectorのバリデーションの使用方法
Odin Inspectorのバリデーションを使用するには、以下の手順を行います。
- 1.Odin Inspectorがインストールされていることを確認します。
- 2.シリアル化可能なクラスに、Sirenix.OdinInspector.Validation.ValidateInputを使用したバリデーションメソッドを定義します。
- 3.バリデーションを行うための属性を変数に付加します。 以下は、バリデーションを行う例です。
using UnityEngine; using Sirenix.OdinInspector; using Sirenix.OdinInspector.Validation; public class ValidationExample : SerializedMonoBehaviour { [ValidateInput("IsValidName", "Name must be at least 3 characters long.")] public string name = "John"; private bool IsValidName(string value) { return value.Length >= 3; } }
講談社クリエイターズラボに結果が出ました。
2020年12月04日、講談社のゲームクリエイターズラボという企画の1次選考に結果がでました。
デジタル、アナログとわず少人数、個人を対象としたインディーゲームのサポート企画です。
1246組の応募があり予備選考(0次選考)で374組残り、1次選考で48組残り、
最終的には5組に決定する感じらしいです。
僕もこの企画に応募していたのですが、結果からお伝えすると、予備選考には通過していましたが、残念ながら1次選考の通過はできませんでした。
ただ今作っているゲームは作りづづけるので、何か変わりがあるかというと特にないですw
1次選考は通りたいなと思っていたのですが、非常に残念です。救いとしては予備選考にのこったことと、応募者全員を交流用のコミュニティーを用意してくださるらしいです。
1人で作っているとモチベーションが下がりがちなので、ほかのクリエイターの方たちと交流できるのは楽しみです。
さて今日も開発がんばります。
↓【643】みっこん (これが僕です。)
ゲームの開発環境について
誰得かわかりませんが、ゲーム開発で主に使用しているソフトをまとめてみました。
各作業で使用しているソフト
3Dモデル作成 : Metasequoia
モーション作成 : Akeytsu
テクスチャー作成 : SubstancePainter, Photshop
UI画像作成 : Photshop
データ作成 : GoogleSpreadsheets
こんな感じで使用してます。
Unity
説明の必要があるかあるかわからないぐらい有名なゲームエンジンです。
特にスマートフォンのゲーム開発の現場で多く使われているように思います。
僕自身も7年ぐらいスマフォのゲームアプリ開発をしていましたが、ほぼUnityでの開発でした。
このゲームエンジンでの開発に慣れていたのが理由でゲームエンジンとして採用しました。
VisualStudio
Unityインストール時に同梱されているのでUnityで開発されている方はこれを使っている方が多いのではないかとおもいます。
Unityでのスクリプト、C#の編集をおこないプログラミングを行っていくのに大変便利です。デバッカーとしてもかなり優秀でUntiy以外でも多くつかわれています。
Metasequoia
3Dポリゴンモデル作成ソフトです。無料で使えますが、FBX形式で保存するにはEXというライセンスを購入する必要です。
使っている理由として、使い慣れていただけという理由です。
僕のゲームで登場する3Dのポリゴンメッシュは今のところこのソフトで作られています。
いいところとしてとても操作が簡単で動作が軽量です。
Akeytsu
3Dのポリゴンメッシュにボーンを入れアニメーションをつけることができるソフトです。
MetasequoiaでモデリングしたものにAkeytsuでリギング、ウェイト付け、アニメーション付きの作業にしようしています。
今作成しているキャラクターのアニメーションは全て、このソフトで作っています。
いろいろなアニメーション作成のソフトを使ってきましたが、かなり直観的でアニメーションがつけやすくお勧めです。
注意としてSubstancePainterで出力したFbxが読み込めなかったので、一度Metasequoiaを経由して読み込んだりしてます。
SubstancePainter
3Dのポリゴンの表面に直接、ドローイングしてテクスチャーを作成するソフトです。
あらかじめ用意されているマテリアルを組み合わせたり、ブラシで汚しを入れたリスだけでそれなりの見た目になるため、非デザイナーの僕にはたすかってます。
テクスチャーを描くというより作る感じです。
将来できにはSubstancePainterで使えるマテリアル作成のできるSubstanceDesignerも使ってみようかと考えています。
お値段そこそこしますが、得られる恩恵はかなりでかいです。
Photoshop
超有名な写真加工ソフトです。
ゲーム業界では使われていないところはないというぐらい有名です。
僕のゲームではUIの作成に使用しています。
UIの画像は3Dで作成してUnityでプリレンダリングしたものをPhotoshopで加工するのにつかっています。
GoogleSpreadsheets
ExcelのGoogle版といった感じのツールです。ブラウザ上で使うツールです。
カードやユニットや事前に用意するゲームデータの作成に使用しています。
実際にゲームに取り込むときはUnity側から、このSpredsheetのデータをダウンロードしてきて、json形式に変換してStreamingAssetsフォルダに保存して、ゲーム起動時に読み込みつかっています。
SourceTree
githubをGUIで扱えるクライアントソフトです。
ファイルのバージョン管理にgithubを使っているため使用しています。
ユーザーによってはforkとかgithubクライアントを使用している方もいるでしょうし、
コマンドを直接たたいているひともいるでしょう。
動作が重いのがちょっと難点です。
講談社クリエイターズラボに提出した企画書
先日11月05日に講談社のクリエイターズラボに提出した企画書を公開します。
誰が得するのかわからないですがのせておきます。
企画職ではなかったで、参考なるかわかりませんが、誰かの参考になれば幸いです。