UE5.3を使用したゲーム制作備忘録を掲載中!

掲載数300記事以上!日々奮闘中!
同じ悩みを持つ人の、解決の糸口になれば幸いです。
今月は記事のリライトをメインで進めています。

詳細はこちら
広告あり

Unreal Engine コツコツ自習_徐々に敵を増やす【2Dゲーム】

UEコツコツ自習シリーズ
スポンサーリンク

簡単な2Dゲームを作ろう

2Dゲーム制作の練習シリーズです。

アンリアルエンジンで2Dゲーム制作方法をまとめていきます。

説明を省略したり、細かな数値設定などの説明をしない場合もありますので、ご参考程度で確認ください。

※作業環境:UEバージョン5.3.2 Windows11 VSCode

徐々に敵を増やす

敵の数が一定だと難易度が簡単なので、時間経過と共に敵の出現数を増加させていきます。

スポナーのコードを編集する

「EnemySpawner」のコードを編集していきます。

EnemySpawner.h

「public:」内にプロパティを追加します。

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	float SpawnDistance = 400.0f;

// 追加↓
	UPROPERTY(VisibleAnywhere, BlueprintReadWrite)
	int TotalEnemyCount = 0;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	int DifficultySpawnInterval = 10;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	float SpawnTimeMinimumLimit = 0.5f;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	float DecreaseSpawnTimerByEveryInterval = 0.05f;
// ここまで↑

EnemySpawner.cpp

「AEnemySpawner::SpawnEnemy(){}」内にコードを追加します。

    FVector EnemyLocation = GetActorLocation() + FVector(RandomPosition.X, 0.0f, RandomPosition.Y);
	AEnemy *Enemy = GetWorld()->SpawnActor<AEnemy>(EnemyActorToSpawn, EnemyLocation, FRotator::ZeroRotator);

// 追加↓
	TotalEnemyCount += 1; // カウントを1増やす
	if ((TotalEnemyCount % DifficultySpawnInterval) == 0) // カウントが10ずつ増えるごとに
	{
		if (SpawnTime > SpawnTimeMinimumLimit) // 生成時間が限界短縮時間より大きければ
		{
			SpawnTime -= DecreaseSpawnTimerByEveryInterval; // 生成時間を短縮する
			if (SpawnTime < SpawnTimeMinimumLimit) // 生成時間が限界短縮時間より小さくなった場合
			{
				SpawnTime = SpawnTimeMinimumLimit; // 限界短縮時間にする
			}

			StopSpawning(); // 敵生成を一度止めて
			StartSpawning(); // 更新した生成時間で敵生成開始
		}
	}
// ここまで↑

}

保存して、コンパイルします。

ブループリントを編集する

「BP_EnemySpawner」を開きます。

「Details」の「Enemy Spawner」の項目を確認します。

対応するコード

	UPROPERTY(VisibleAnywhere, BlueprintReadWrite)
	int TotalEnemyCount = 0;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	int DifficultySpawnInterval = 10;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	float SpawnTimeMinimumLimit = 0.5f;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	float DecreaseSpawnTimerByEveryInterval = 0.05f;
  • 「Total Enemy Count」は、変更できません。
    敵が今まで出現した回数をカウントしています。
  • 「Difficulty Spawn Interval」は、敵が何体おきに出現したタイミングで、時間短縮を実行するかを指定します。
  • 「Spawn Time Minimum Limit」は、敵が出現する時間間隔の限界短縮時間を指定します。
  • 「Decrease Spawn Timer By Every Interval」は、時間を短縮するときの、減算させる時間を指定します。

今回は、下の写真のように変更します。

保存して、テストプレイします。

時間が経過するごとに、敵の出現スピードが上がっていればOKです。

敵の増加実装完了

今回はここまでです。

次回は「スコア機能を実装する」です。

前後記事

他の記事を探す

他の記事も気になる方は、以下の記事の目次を確認ください。

タイトルとURLをコピーしました