ブログの活性化させる事について

更新頻度の上昇に向けて

今月からブログの定期更新を意図的に行って見ました。
2週間試して、水曜日の定期更新とその日以外の記事更新だけですが、もう少し頻度上げても大丈夫なのでは思い、更新頻度を気持ち上昇させます。

主なブログ内容

  • ゲーム制作の進捗報告
  • 投稿動画の補完記事
  • 制作学習目的のメモ記事
  • new:制作以外の記事

新たに、制作に関係のない記事もこちらのブログに追加します。
制作に関係の無い記事カテゴリは別けるので、後からでも見やすくなるかと思います。

頻度の向上を目指して頑張ろうと思います。

UnityでのDelegateメモ

今回は、UnityのC#で使うDelegateとActionとFuncについて自己流解説を行います。
なぜ、いきなりDelegateの話を始めたのかは下記動画をご覧ください。

YouTube
https://youtu.be/KaNKg7zJFgo

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

進捗報告動画で、敵の移動処理変更を行った時、DelegateとActionについての説明を省き、ここで説明するようにしました。

Delegate(デリゲート)とは

デリゲートの意味を調べると、メソッドを変数のように扱う機能と書かれることが多いです。
デリゲートの使いどころを、自分の制作に当てはめると以下のコードのようになります。

テストスクリプト1
テストスクリプト2

上記の書き方で何がいいのかを、ゲーム制作の進捗動画内容にあわせると、

・移動処理のパターンを敵の種類ごとに作れる
・修正や不具合の発見が行いやすく、影響範囲が小さくできる

個人で制作する上で、見やすくなって移動処理を作りやすくなるメリットになります。

ActionとFunc

ActionとFunc機能は、デリゲートの宣言を簡略化できるものと説明される事が多いです。
下記のサンプルコードをご覧ください

基本となる移動処理

移動スクリプト

エネミーの場合

エネミー移動処理

プレイヤーの場合

プレイヤー移動処理

大まかには、Actionは戻り値が無く、Funcは戻り値があるという違いがあります。
制作のコードではActionを良く利用しています。

終わりに

今回は動画内容の補完としてブログでコード解説を書いてみました。
自分で解説出来る範囲での記述ですので、間違いなどがあれば教えていただければ幸いです。
今後も、動画の補完解説を行っていければと思います。

2021年のPHTR-CNZ

新年あけましておめでとうございます。

昨年は体調崩すことが多く、新作ゲーム発表とデジゲー博参加が出来なくなりました。
今年は、まず体調管理を気を付けながらの制作進行を行っていきます。

進行は遅めですが確実に制作を進められる環境を作っていこうと思っています。

制作進行が遅れる代わりに、進捗の報告は随時行っていくのを目標にして、制作が進んでいる事を伝えていく年にしたいです。

具体的には、去年に比べ動画投稿による進捗報告増えていきます。
ブログ更新も動画投稿の報告が増えますが、まず制作が動いている事の発信を増やします。

どうぞ今年もよろしくお願いします。

デジゲー博2020受かりました

タイトル通り
2020年11月29日開催のゲーム即売会イベント「デジゲー博2020」に参加します

 

配置は
AKIBA_SQUARE 2階 B-14 サークル:PHTR-CNZ
です。

完成したSTG「SufferingShot!」を持ち込む予定です。
本イベントでゲーム完成予定ですので、よろしくお願い致します。

イベントHP:http://digigame-expo.org/

[覚書]ターゲットに向かって移動するオブジェクト

久しぶりの更新です。
個人的に重要なゲームのキャラクター挙動のコードを書きます。

今回記述するUnityコードは、敵キャラクターがプレイヤーの方向を向き続け、迫ってくる動きをします。
それがこちらです。

public class HogeTarget: MonoBehaviour
{
public GameObject TargetObj;
private float maxData = 45;
private float minData;
private void Start()
{
minData = 360 -maxData;
}
private void Update()
{
this.gameObject.transform.LookAt(TargetObj.transform);
Vector3 angle= this.gameObject.transform.localEulerAngles;
if ( angle.x < maxData && 180 > angle.x)
{
angle.x = maxData ;
}
if (angle.x < minData && 180 < angle.x)
{
angle.x = minData ;
}
transform.localEulerAngles = angle;
transform.position += transform.rotation * new Vector3(0, 0, 1.0f)*Time.deltaTime;
}
}

上記の記述で重要な箇所が、[transform.LookAt]でプレイヤーの方向に向き、後のコードで敵キャラクターの向きに制限を加えています。
また、方向転換するオブジェクトの子オブジェクトに顔や腕をセットすることで、ある程度自然な挙動にすることができます。

次のコードは上記コードの

transform.position += transform.rotation * new Vector3(0, 0, 1.0f)*Time.deltaTime;

下に
transform.position += new Vector3(0, 0, 1.0f) * Time.deltaTime;

を記述することで、オブジェクトがプレイヤーに向きながら、Z軸方向に進んでいくようになります。

この挙動を入れることで、画面外に敵を移動させたい時に便利になります。

制作ゲーム第10作「SufferingShot!」HP完成

新作STG「SufferingShot!」専用ホームページ完成しました。

専用ホームページへ飛びます
https://prehistoriccenozoic.com/game/projec10/project10.html

長くなってしまいましたが、情報が更新され次第、随時サイト更新しています。

また次回参加イベントは、

2020年1月19日(日)
こみっく☆トレジャー35
インテックス大阪4号館
ケ14-b

上記イベントにてSufferingShot!体験版DLカード頒布します。

2020年の始まり

新年あけましておめでとうございます。

2019年はゲーム開発の滞りにより体験版を公開する日々が続きました。
去年を反省し2020年は、

完成品をイベントで頒布する!

上記を目標に行動していきます。
制作頻度と公開スピードを上げるために、情報公開頻度も上げていこうと思います。

……こういった文章を書いてからですが、

2020年1月19日こみっくトレジャー35にサークル参加しますが、ここでの頒布は体験版です。
コミケから開発期間が少ないのでそこだけは目を瞑ってもらえたらと思います。

気を取り直して、配置は

インテックス大阪 4号館ケ14-b

新作STG「SufferingShot!体験版DLカード」を頒布します。
新年の抱負といきなりのズレはありますが、今年も改めてよろしくお願いします。

[覚書]Unityで使用するactionとevent具体例

只今誠意制作中のゲームで、仕様に躓いて知識を覚えるまで時間を要した箇所のメモを残します。
event機能を忘れないため、少し具体的なコードを載せた覚書メモになります。
まだ理解の途中ですが、自分が忘れないようにする為に記述します。

※この記事では、Unity上でのdelegateやeventについては詳しく書きません。

使用例
「プレイヤー」オブジェクトの点数が変化するたびに、「テキスト」オブジェクトがデバッグlogコメントを出す。

2つのオブジェクト間のデータ更新を、上記の仕様をUnityの点数変化の参照に対して「update」メソッドを使わずに、コードを書こうと構築したものが下記になります。

「HogeEventPoint」、「HogePointUp」をアタッチしたオブジェクトと「HogeLog」をアタッチしたオブジェクトを用意します。
最後に「HogeEventPoint.cs」をシリアライズフィールドされている「HogeEventPoint」、「HogeLog」に参照させたら完成です。

始めに、ZorXキー押すとポイントを入力されてログが出力されます。
次に、最初に押されたキー以外を押すと、ポイントが変わりログが出力されます。
以前のキーと同じキーを押した場合、ポイントも変わらずログも出力されません。

今回記述したコードは、ゲーム内で採用されたモノの最小構成になります。
別オブジェクトの値が変化したら、変化した値を取得して動作したい時に便利です。


プレイヤーオブジェクトの取得点数が変わった変化を受け取り、UIオブジェクトのテキストを変更する。

こういった具体的な動作の足掛かりになればと思い記事を書きました。

タイトルにある、「action」、「event」、そして元になっている「delegate」については、今後自分が学んだ範囲で記事を書いていこうと思っています。

コミックマーケット96当選しました

2019/08/09~12に開催される、コミックマーケット96に参加します。
参加日は4日目の8/12

南地区“ム”ブロック-14b
PHTR-CNZにて、新作育成STGを頒布予定です。

よろしくお願いします。