コンセプトムービー作ります

現在制作中のSufferingShot!のルールを判りやすく出来るアイデアが浮かびました。

そこで、2月にコンセプトムービーを公開します!
少し変わったSufferingShot!をお楽しみください。

デバッグ用データに関するメモ

デバッグ用データの取り扱いで、こうすれば良かったと思った事をメモしておきます。
今回は明確な処理や進捗報告ではないため日記して残します。

デバッグ用データを制作中のゲームでよく使うのですが、プレイヤーや敵のステータス設定の実装は簡単に実装できるのですが、ステージ進行の状況やクリア率などをデバッグデータで処理するときは、本実装のコードで処理を共有するよりデバッグ用のスクリプトを作成した方がよいと判ってきました。

途中からの変更を行いやすく、デバッグ用スクリプトから本実装スクリプトの変更を行いやすい仕組みを、本格的に開発が進む前に今後考えていこうと思います。

制作用PCパワーアップ前編

現在、ゲーム制作からイラスト制作、動画制作など、制作作業を行っているパソコンを自作してから4年ほど経ち、少し不具合から性能不足を実感しました。

そこで、メモリとCPUファンを交換してもう少し長く使えるようにしています。
主な変更点は、メモリ量が16GB→64GBにアップします。

パーツ交換の結果はブログ更新を行い、パーツ交換の様子は動画公開出来ればなと思います。

今回は、普通の日記更新を行って見ました。
進捗の更新が難しい時はこういった記事も上がっていきます。

様々な移動パターン1

UnityのMathfスクリプトを使用して敵の円運動移動を作って見たところ、そもそも制作中のゲーム全体の移動パターンを増やせそうだと気付きメモを残しておきます。

ブログ更新は移動パターンが増えるたびに増えていく予定です。

using unity;

float speed = 5;
float circle = 5.5f;

void FixedUpdate()
{
  float xPos = Mathf.Cos(Time.time * speed) * circle;
  float yPos = Mathf.Sin(Time.time * speed) * circle;

  Rigidbody.velocity = new Vector3(xPos, yPos, -speed);
}

上記コードを使用すると円運動を行いながら、プレイヤーに向かってくる敵の挙動が出来ます。
Rigidbody.velocityの「-speed」を「speed」に変えるとプレイヤーからのショットやスキル攻撃の移動パターンを増やせそうです。

簡易的な波移動

タイトル通りのとても簡易的な波移動のプログラムをメモしておきます。
あまりにも簡易的な為、細かい移動と組合せたい場合はしっかりと数学で使う処理を入れるのが良いです。

using UnityEngine;

float speed = 5.5f;
bool courseX = true;

void FixedUpdate()
{
    if (Core.EnemyObj.transform.position.x <=-4)
    {
     courseX = true;
    }
    else if (4 <= Core.EnemyObj.transform.position.x)     
    {
         courseX = false;
     }

     if (courseX)
     { 
        this.Rigidbody.velocity = 
             new Vector3(speed,Rigidbody.velocity.y,-speed);
     }
     else
     { 
       this.Rigidbody.velocity = 
             new Vector3(-speed,Rigidbody.velocity.y,-speed);
     }

}

Unityで動かす前提の為、記事で公開しているコードと実装は多少変わりますが、基本的な動きの違いはありません。

上記コードのままだと、敵の初期配置とスピードで波の間隔が変わります。
簡易的に波移動をさせたい時のコードなどで、実際に制作するときは、クォータニオンやオイラー角を使用してください。

移動パターンの初期化

敵の移動パターン処理で敵が倒される、もしくは特定距離まで移動後消えてから再配置される時にステータスを初期化します。
その時、移動パターンの数値が消される直前のままな事に気付きました。

修正前
int MoveID; ←このパターン値を直接参照させて変更していた。

修正後
int MoveID;
int ChangeId; ←直接扱う変数を追加
ChangeID = MoveID; ←初期化

このまま、初期値を変更してしまう事態に気づくのが遅れてしまうと修正でとても手間がかかるところでした。

基本的なコードの書き方を定期的に忘れないようにメモとして残しておきます。

移動パターンを別視点から

敵エネミーの移動パターンを少しわかりやすくする為ゲーム内では見えない視点から撮りました。

真横からの撮影

敵が上下に移動する様子が判りやすくなったと思います。
初期のステージでは敵は上下左右移動しますが敵からの攻撃は真っ直ぐに飛ぶようにしています。

今後も、ゲームプレイでは見られない撮影をアップできればと思います。

敵エネミー移動パターン追加2

ステージ1エネミー

新たにWorldステージ1の敵エネミーの移動処理の変更とパターン追加を行いました。

移動処理については下記の記事をご覧ください。
https://prehistoriccenozoic.com/blog/game-create-progress/enemy-movepatarnsetting2

今回の修正で、チュートリアルステージとWorldステージ1では、敵の基本移動パターンに慣れて貰う構成にしています。
本シューティングゲームの基本システムの視点変更を活用できるような動きを序盤に慣れて貰う事も考えています。

簡単なゲーム説明

敵が上下移動する場合は、背後視点が有利で、敵が左右移動する場合は上空視点が操作しやすくしています。

視点移動がどうステージ進行有利になるのかを体験できる仕組みになっていると思います。

敵エネミーの移動パターン追加

現在の移動パターン

チュートリアルステージの敵移動パターンを見直し修正を行いました。
これまでの制作ゲーム内の敵移動パターンが少なすぎると考え、移動処理を敵本体のクラス内のメソッドで扱える様にしています。
本当のクラスや実装を考えると、もっと分割すべきだとは判っていますが、個人で作る場合、スクリプトの種類が増えると把握する事が難しく危険性と見易さを考慮して、移動パターン用のメソッド内で所為を簡潔する事にしました。

新しいクラスを作る時でも影響範囲を最小限に留め、再修正も出来るようにしています。

もっと詳しい内容は、後日動画とブログで補完予定です。

新作動画もお楽しみに!

動画はこちらから↓
YouTube
https://youtu.be/KaNKg7zJFgo

ニコニコ動画
https://www.nicovideo.jp/watch/sm38134287