
「W.T.」ふりーむ!版
休日のゲーム開発ははかどらないのに本業のリモートワーク中のゲーム開発は進捗が進む皆さんこんにちは。先日もそんな感じでふりーむ!に投稿するためのブラッシュアップ作業を行い、大体完了することができました。
後はセーブ機能に関する諸問題を解決するだけなのですが、解決できなかった場合でもセーブ機能なしで投稿すると思います。長くても30~40分程度の作品なので。
なので、3/10を目途にふりーむ!へ投稿しようと思っていますが、ふりーむ!は作品投稿後に審査があるようなので、実際にサイトに並ぶのは来週ぐらいになるでしょうか。
その時はTwitter等で告知しようと思います。
IGC2023落選
出展を応募していたIndie Games Connect 2023ですが、抽選の結果、残念ながら落選したようです。
近々でユーザの方に直接自作ゲームをお披露目する機会がなくなったのは非常に残念ですが、落ち込んでもいられないので、次はオンラインイベントのIndie Live Expo 2023の出展を応募しようと思います。
こちらは番組中に15秒のスポットを流してもらう形になります。長時間イベント中の15秒なのであまり目立たないかもしれませんが、少しでもアピールする機会を頂けるのは大変ありがたい事だと思います。
番組は5/20,21らしいのでそれまでにはSteamにアーリーアクセス版がリリース出来ているよう頑張ります。
「ついてこれる奴だけついてこいッ!」なゲーム
「化勁」「不屈」「氣勢」「絶脈」このワードだけを聞いてそれぞれがアクションゲームの中でどんな役割を示しているのか想像できる方はいるでしょうか?古代中国三国志が舞台のゲームとはいえ、"パルスのファルシのルシがパージでコクーン"並みにユーザ側に理解努力を求めるゲームそれが「Wo Long Fallen Dynasty」だと言えます。

「NINJA GAIDEN」「仁王」シリーズを開発したTeam NINJAのゲームらしく、軽快で爽快感の高いハイスピードな高難易度アクションが楽しめます。各レビューサイトで散々言われているでしょうが、SEKIROの剣戟アクションに強く影響を受けており、本作ではSEKIROの「弾き」に似た回避アクション「化勁」を駆使することがゲーム攻略のカギになります。
こうした高難易度な「死にゲー」と呼ばれるジャンルは、ユーザ側がトライ&エラーを繰り返し強敵に対する攻略法を試行錯誤したり、ゲーム操作を上達させて達成感を楽しむゲームだと思いますが、「Wo Long Fallen Dynasty」の場合、"攻略法を試行錯誤する"という部分をバッサリ削って、"ゲーム操作を上達させる事"だけにフォーカスされたゲームバランスとなっています。
この為『"化勁"というアクションを上手く使いこなす』という事だけが難敵を突破する唯一の攻略法で、ハスクラ要素や魔法のような「仙術」、同行NPCもただの「色付け」としての存在にとどまり、ユーザが試行錯誤する幅が極端に狭いゲームとなっています。
その代わり"化勁"を上手く使えるようになると、それを起点に"氣勢"というゲージに注意を払えるようになり、"絶脈"や"武技"といった必殺技を駆使して強ボスでも華麗な戦いを演じられるようになって、以後のゲームプレイが非常に楽しくなります。
これは開発者側が「ついてこれる奴だけついてこいッ!」と宣言して「その代わりついてきたやつは十分に楽しませてやる!」という意気込みで作り上げられたゲームだと言ってよいでしょう。
"化勁により氣勢を溜め絶脈を発動、攻略には士気と不屈を上げて・・・"を楽しむ覚悟のある方は購入をお勧めします。
RGBとHSV
色を数値で表す場合、主に光の三原色RGBを使って表現することが多いと思いますが、ゲーム画面のデザインを考える場合は、色相(Hue)、彩度(Saturation)、明度(Value)で表される値を使った方が便利です。
これは同じ色合いを並べて統一感のある画面でも輝度、明度を変えると画面に奥行をだしたり、季節感を表現することが簡単になり、よりおしゃれな画面を作るとができます。ここら辺の下りについては、以前このブログでも記事にしています。
UnityのエディタではカラーピッカーのRBGの指定をHSVに変えると指定した色のHSV値を確認して変更することができます。

ゲーム制作時にMaterialを作成するときはこのカラーピッカーを使ってHSV値を変えて色を指定することができますが、ゲーム実行中にMaterialの色を変更したい場合、Materialに設定するColorクラスにはRBGしか扱えないため、彩度や明度を動的にスライドして変えたい場合はちょっとした工夫が必要になります。
RGBとHSVの変換
RGBとHSVとの値の変換は「各要素を足して3で割る」といった単純な処理ではないのですが、幸いにUnityEngine.Colorにはそれ用の変換メソッドが用意されています。
docs.unity3d.com上のリファレンスを読めばわかりますがHSVToRGBは戻り値がColorクラスとなっている為、戻り値をそのままMaterialのColorとして設定可能です。逆にRGBToHSVは戻り値はなく、H,S,Vの値をそれぞれ引数として渡す必要があります。
また、通常HSVの値は
- H(色相):0~360
- S(彩度):0~100
- V(明度):0~100
上記のような範囲で指定しますが、HSVToRGBで指定する値、RGBToHSVで戻ってくる値は0~1の為、値を表示したり、画面から入力して指定する場合には考慮が必要です。
スライダを使って動的に変える
試しに画面上にHSVそれぞれの値を示すスライダを設置して、それを変更することでマテリアルの色を変更するようにします。
折角なら同じマテリアルを使用するオブジェクトすべての色を変更したいので、SharedMaterialの色を変更するようにします。
因みにSharedMaterialのColorを変更した場合、デバッグモードが終了しても変更した値がそのまま残るので注意が必要です。
public Slider H, S, V; void Update () { GetComponent<MeshRenderer>().sharedMaterial.color = UnityEngine.Color.HSVToRGB (H.value, S.value, V.value); }
最初にH(色相)を変えてみます。

次にS(彩度)

そしてV(明度)

HSVそれぞれのスライダーを調整することでオブジェクトの色合いに変化を付けることができました。