ゲーム作ってる人

ゲームプログラマーです。個人でゲーム制作してます。

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. 1.UnityのAsset StoreからOdin Inspectorをダウンロードします。
  2. 2.ダウンロードしたファイルをインポートします。
  3. 3.Odin InspectorがUnityのインスペクターウィンドウに表示されることを確認します。
  4. 4.Odin Inspectorの使用方法

Odin Inspectorを使用するには、以下の手順を行います。

  1. 1.Odin Inspectorがインストールされていることを確認します。
  2. 2.Odin Inspectorを使用したいスクリプトに、Sirenix.OdinInspectorの名前空間を追加します。
  3. 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. 1.Odin Inspectorがインストールされていることを確認します。
  2. 2.シリアル化可能なクラスに、Sirenix.OdinInspector.Validation.ValidateInputを使用したバリデーションメソッドを定義します。
  3. 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】みっこん (これが僕です。)

f:id:mikkon14:20201205023509p:plain


ゲームの開発環境について

誰得かわかりませんが、ゲーム開発で主に使用しているソフトをまとめてみました。

各作業で使用しているソフト

ゲームエンジン : Unity

IDE : VisualStudio

3Dモデル作成 : Metasequoia

モーション作成 : Akeytsu

テクスチャー作成 : SubstancePainter, Photshop

UI画像作成 : Photshop

バージョン管理 : github, SorceTree

データ作成 : GoogleSpreadsheets

こんな感じで使用してます。

Unity

説明の必要があるかあるかわからないぐらい有名なゲームエンジンです。

特にスマートフォンのゲーム開発の現場で多く使われているように思います。

僕自身も7年ぐらいスマフォのゲームアプリ開発をしていましたが、ほぼUnityでの開発でした。

このゲームエンジンでの開発に慣れていたのが理由でゲームエンジンとして採用しました。
f:id:mikkon14:20201126024013p:plain

VisualStudio

 Windowsでは最強のIDEではないかと思います。

Unityインストール時に同梱されているのでUnityで開発されている方はこれを使っている方が多いのではないかとおもいます。

UnityでのスクリプトC#の編集をおこないプログラミングを行っていくのに大変便利です。デバッカーとしてもかなり優秀でUntiy以外でも多くつかわれています。

f:id:mikkon14:20201126023436p:plain

Metasequoia

3Dポリゴンモデル作成ソフトです。無料で使えますが、FBX形式で保存するにはEXというライセンスを購入する必要です。

使っている理由として、使い慣れていただけという理由です。

僕のゲームで登場する3Dのポリゴンメッシュは今のところこのソフトで作られています。

いいところとしてとても操作が簡単で動作が軽量です。

f:id:mikkon14:20201126024121p:plain

Akeytsu

 3Dのポリゴンメッシュにボーンを入れアニメーションをつけることができるソフトです。

MetasequoiaモデリングしたものにAkeytsuでリギング、ウェイト付け、アニメーション付きの作業にしようしています。

今作成しているキャラクターのアニメーションは全て、このソフトで作っています。

いろいろなアニメーション作成のソフトを使ってきましたが、かなり直観的でアニメーションがつけやすくお勧めです。

注意としてSubstancePainterで出力したFbxが読み込めなかったので、一度Metasequoiaを経由して読み込んだりしてます。

 

f:id:mikkon14:20201126024231p:plain

SubstancePainter

 3Dのポリゴンの表面に直接、ドローイングしてテクスチャーを作成するソフトです。

あらかじめ用意されているマテリアルを組み合わせたり、ブラシで汚しを入れたリスだけでそれなりの見た目になるため、非デザイナーの僕にはたすかってます。

テクスチャーを描くというより作る感じです。

将来できにはSubstancePainterで使えるマテリアル作成のできるSubstanceDesignerも使ってみようかと考えています。

お値段そこそこしますが、得られる恩恵はかなりでかいです。

f:id:mikkon14:20201126024959p:plain

Photoshop

 超有名な写真加工ソフトです。

ゲーム業界では使われていないところはないというぐらい有名です。

僕のゲームではUIの作成に使用しています。

UIの画像は3Dで作成してUnityでプリレンダリングしたものをPhotoshopで加工するのにつかっています。

f:id:mikkon14:20201126025805p:plain

GoogleSpreadsheets

 ExcelGoogle版といった感じのツールです。ブラウザ上で使うツールです。

カードやユニットや事前に用意するゲームデータの作成に使用しています。

実際にゲームに取り込むときはUnity側から、このSpredsheetのデータをダウンロードしてきて、json形式に変換してStreamingAssetsフォルダに保存して、ゲーム起動時に読み込みつかっています。

f:id:mikkon14:20201126025343p:plain

SourceTree

 githubをGUIで扱えるクライアントソフトです。

ファイルのバージョン管理にgithubを使っているため使用しています。

ユーザーによってはforkとかgithubクライアントを使用している方もいるでしょうし、

コマンドを直接たたいているひともいるでしょう。

動作が重いのがちょっと難点です。

f:id:mikkon14:20201126030315p:plain








 

 

 

 

 

 

 

 

講談社クリエイターズラボに提出した企画書

先日11月05日に講談社のクリエイターズラボに提出した企画書を公開します。

誰が得するのかわからないですがのせておきます。

企画職ではなかったで、参考なるかわかりませんが、誰かの参考になれば幸いです。

 

f:id:mikkon14:20201122020559p:plain

f:id:mikkon14:20201122020608p:plain

f:id:mikkon14:20201122020619p:plain

f:id:mikkon14:20201122020631p:plain

f:id:mikkon14:20201122020641p:plain

f:id:mikkon14:20201122020652p:plain

f:id:mikkon14:20201122020545p:plain