
エゴサーチ
Steamストアページ開設の情報がネットメディアに掲載されていて驚いたエゴサ不足の皆さんこんにちは。Xで一度ポストしたのみでその後はプレスリリースもせず、エゴサもせず、のほほんとしていたのですが、意外なことに2つのメディアに情報が掲載されていました。どちらも当該のお知らせをポストしてから直ぐの掲載となっており、今頃になって気づくとか不徳の致すところです。エゴサって大事。
どちらもゲーム内容を丁寧に取り上げてもらえて大変ありがたい限りです。
4Gamer様 、GameWith様、本当にありがとうございました。
美麗なグラフィックと斬新な演出、そして古臭い戦闘
いわゆる「須田ゲー」と呼ばれるゲームはこれまで体験してこなかったのですが、主人公キャラのデザインに惹かれて最新の「須田ゲー」を購入しました。

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

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

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

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