原カバンは鞄のお店ではありません。

Unityを使ったゲーム制作のあれこれを綴っていきます。

【アセット紹介】SRDebuggerのOptionを使ってデバッグメニューを作る

エゴサーチ

Steamストアページ開設の情報がネットメディアに掲載されていて驚いたエゴサ不足の皆さんこんにちは。Xで一度ポストしたのみでその後はプレスリリースもせず、エゴサもせず、のほほんとしていたのですが、意外なことに2つのメディアに情報が掲載されていました。どちらも当該のお知らせをポストしてから直ぐの掲載となっており、今頃になって気づくとか不徳の致すところです。エゴサって大事。

www.4gamer.net

gamewith.jp

どちらもゲーム内容を丁寧に取り上げてもらえて大変ありがたい限りです。
4Gamer様 、GameWith様、本当にありがとうございました。

 

美麗なグラフィックと斬新な演出、そして古臭い戦闘

いわゆる「須田ゲー」と呼ばれるゲームはこれまで体験してこなかったのですが、主人公キャラのデザインに惹かれて最新の「須田ゲー」を購入しました。

初見で普通のヒーローアクションPRGだと思ってプレイすると面食らいます。
アメコミ風で『ガンダム』や『バックトゥザフューチャー』をオマージュしたようなムービーに、変身ヒーローのようなキメポーズのカットシーンが挟まり、途中でゲームオーバーになると主人公が白骨化するグロイ映像が流れてステータスアップのルーレットが始まったり、

武器取得強化やアイテム獲得などが行える宇宙船は何故かスーファミのようなドット絵の2Dとなっていて、戦闘の手助けとなる召喚NPCは土に植えて収穫するゾンビだったりと、とにかく洪水のように斬新な演出が流れてきて、驚くと同時に非常に楽しい。「須田ゲー」に熱狂的なファンがいるのも納得です。

ただ、肝心の戦闘パートは敵の種類は少なく、ゾンビっぽい雑魚キャラとエリート的なクリーチャー型の敵が何種類か登場する程度。
そのどちらも主人公に直線的に向かってくるだけで、しかも微妙に硬い、駆け引きとか爽快感とかはあまりなく、ひたすら向かってくる敵を攻撃するのみ、各ステージの最後にはボスも登場しますが、ヒット&アウェイを繰り替えしてチマチマとHPを削っていくことが主となるのでPS3時代のアクションゲームをやっているような感覚になります。

ここら辺は昨今流行りの「ソウル」系戦闘に対するアンチテーゼなのかもしれませんが、私的には少し退屈なものに感じられました。
UEらしい美麗でリアルなグラフィックと素晴らしいアートワーク、斬新な演出は巷のゲームと比べても突出して目を引くものですが、戦闘を含むゲーム部分はそういったビジュアル、音楽と釣り合っていないと言うのが率直な感想でしょうか。

 

SRDebugger

ここからは前回の続きです。

www.karvan1230.com

SRDebuggerの画面を開くと「Option」の項目がありますが、初期段階では何も表示されていません。

ここにはユーザ側でデバッグに必要なプロパティを実装することで画面に表示され、ゲームプレイ中に操作することが可能となります。

このプロパティはSRDebuggerのSROptionsクラスのpartialクラスに定義します。
partialクラスじゃなくSROptionsクラス自体を変更しても良いのですが、後々の拡張性を考えるとpartialクラスとして作成した方が良いと思います。

partialクラスなのでクラス名はSROptionsですが、ファイル名はSRDebugger.General、SRDebugger.MyOptionなどSROptionsとは異なる名前にする必要があります。
今回はSRDebugger.MyOptionのファイルを作り、以下のプロパティを定義しました。

public partial class SROptions
{
  private float _myValue = 0.0f;
  private int _myIndex = 0;
  private bool _myFLG = true;

  [Category("My Option")]
  public float MyValue
  {
    get { return _myValue; }
    set { _myValue = value; }
  }
  
  [Category("My Option")]
  public int MyIndex
  {
    get { return _myIndex; }
    set { _myIndex = value; }
  }

  [Category("My Option")]
  public bool MyFLG
  {
    get { return _myFLG; }
    set { _myFLG = value; }
  }
}

プロパティ定義の上にCategoryの設定を行うと、そのプロパティがカテゴリ別に画面に表示されるようになります。

 

SROptionsプロパティの参照

SROptionsプロパティはアセンブリを分割してない場合はどのスクリプトからも参照できます。アセンブリを分割している場合は、SROptionsにAssembry DefinitionによりAPI化を行い、参照したいアセンブリ側に参照定義を追加します。

実装したプロパティはSROptions.Currentを使ってアクセスします。usingの設定は不要です。

int index = SROptions.Current.MyIndex;
float value = SROptions.Current.MyValue;

今回はMyIndexを参照して、その値により動作が変わることを確認します。

各Index毎の動きをソースを修正せずに確認することが出来ました。

 

◇プライバシーポリシー

●個人情報の利用目的

当ブログでは、メールでのお問い合わせ、メールマガジンへの登録などの際に、名前(ハンドルネーム)、メールアドレス等の個人情報をご登録いただく場合がございます。

これらの個人情報は質問に対する回答や必要な情報を電子メールなどをでご連絡する場合に利用させていただくものであり、個人情報をご提供いただく際の目的以外では利用いたしません。

●個人情報の第三者への開示

当サイトでは、個人情報は適切に管理し、以下に該当する場合を除いて第三者に開示することはありません。

・本人のご了解がある場合
・法令等への協力のため、開示が必要となる場合

個人情報の開示、訂正、追加、削除、利用停止
ご本人からの個人データの開示、訂正、追加、削除、利用停止のご希望の場合には、ご本人であることを確認させていただいた上、速やかに対応させていただきます。

アクセス解析ツールについて

当サイトでは、Googleによるアクセス解析ツール「Googleアナリティクス」を利用しています。

このGoogleアナリティクスはトラフィックデータの収集のためにCookieを使用しています。このトラフィックデータは匿名で収集されており、個人を特定するものではありません。
この機能はCookieを無効にすることで収集を拒否することが出来ますので、お使いのブラウザの設定をご確認ください。

●免責事項

当サイトからリンクやバナーなどによって他のサイトに移動された場合、移動先サイトで提供される情報、サービス等について一切の責任を負いません。

当サイトのコンテンツ・情報につきまして、可能な限り正確な情報を掲載するよう努めておりますが、誤情報が入り込んだり、情報が古くなっていることもございます。

当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。

●プライバシーポリシーの変更について

当サイトは、個人情報に関して適用される日本の法令を遵守するとともに、本ポリシーの内容を適宜見直しその改善に努めます。

修正された最新のプライバシーポリシーは常に本ページにて開示されます。