簡単な2Dゲームを作ろう
2Dゲーム制作の練習シリーズです。
アンリアルエンジンで2Dゲーム制作方法をまとめていきます。
説明を省略したり、細かな数値設定などの説明をしない場合もありますので、ご参考程度で確認ください。
※作業環境:UEバージョン5.3.2 Windows11 VSCode
効果音をつける
敵に魔法が当たったり、プレイヤーが魔法を発射したりするときに、効果音が鳴るようにしていきます。
サウンドファイルを準備する
効果音(WAVファイル)を準備して、インポートします。
発射音とプレイヤー敗北音をつける
魔法を発射した時と、プレイヤーが敵と接触した時に、効果音が鳴るようコードを編集していきます。
PlayerCharacter.h
インクルードを追加します。
#include "Engine/TimerHandle.h"
// 追加↓
#include "Sound/SoundBase.h"
// ここまで↑
#include "Magic.h"
「public:」内にプロパティを追加します。
UPROPERTY(EditAnywhere, BlueprintReadOnly)
UPaperFlipbook* RunFlipbook;
// 追加↓
UPROPERTY(EditAnywhere, BlueprintReadOnly)
USoundBase* MagicShootSound;
UPROPERTY(EditAnywhere, BlueprintReadOnly)
USoundBase* DieSound;
// ここまで↑
PlayerCharacter.cpp
インクルードを追加します。
#include "Kismet/KismetMathLibrary.h"
// 追加↓
#include "Kismet/GameplayStatics.h"
// ここまで↑
#include "Enemy.h"
「APlayerCharacter::Shoot(){}」内にコードを追加します。
GetWorldTimerManager().SetTimer(ShootCooldownTimer, this, &APlayerCharacter::OnShootCooldownTimerTimeout, 1.0f, false, ShootCooldownDurationInSecond);
// 追加↓
UGameplayStatics::PlaySound2D(GetWorld(), MagicShootSound); // 発射音を再生する
// ここまで↑
}
「APlayerCharacter::OverlapBegine(){}」内にコードを追加します。
if (IsAlive)
{
IsAlive = false;
CanMove = false;
CanShoot = false;
// 追加↓
UGameplayStatics::PlaySound2D(GetWorld(), DieSound); // 敗北効果音を再生する
// ここまで↑
PlayerDiedDelegate.Broadcast();
}
敵が消滅するときに音を鳴らす
敵が魔法に当たって消えるときに、効果音を鳴らすようコードを編集していきます。
Enemy.h
インクルードを追加します。
#include "PaperFlipbookComponent.h"
// 追加↓
#include "Sound/SoundBase.h"
// ここまで↑
#include "PlayerCharacter.h"
「public:」内にプロパティを追加します。
UPROPERTY(VisibleAnywhere, BlueprintReadWrite)
APlayerCharacter* Player;
// 追加↓
UPROPERTY(EditAnywhere, BlueprintReadOnly)
USoundBase* DieSound;
// ここまで↑
Enemy.cpp
「AEnemy::Die(){}」内にコードを追加します。
EnemyFlipbook->SetFlipbook(DeadFlipbookAsset);
EnemyFlipbook->SetTranslucentSortPriority(1);
EnemyDiedDelegate.Broadcast();
// 追加↓
UGameplayStatics::PlaySound2D(GetWorld(), DieSound); // 消滅音を再生する
// ここまで↑
}
保存して、リフレッシュ&コンパイルします。
ブループリントに効果音を割り当てる
ブループリントで効果音を割り当てていきます。
「BP_PlayerCharacter」を開きます。
「Details」の「Player Character」項目を確認します。
対応するコード
UPROPERTY(EditAnywhere, BlueprintReadOnly)
USoundBase* MagicShootSound;
UPROPERTY(EditAnywhere, BlueprintReadOnly)
USoundBase* DieSound;
「Magic Shoot Sound」と「Die Sound」にサウンドファイルを割り当てます。
次に、「BP_Enemy」を開きます。
「Details」の「Enemy」の項目を確認します。
対応するコード
UPROPERTY(EditAnywhere, BlueprintReadOnly)
USoundBase* DieSound;
「Die Sound」に効果音を割り当てます。
効果音の実装完了
保存して、テストプレイします。
敵を倒したとき、魔法を発射したとき、プレイヤーが敵に接触したときに、効果音が鳴っていればOKです。
2Dゲーム制作練習終了
ここまで読んでいただき、ありがとうございます!
今回の記事で、このシリーズは完結となります。
最低限の機能しか付けていませんが、2Dゲーム制作の第一歩は進めたかなと思います。
当サイトでは、Unreal Engineを使ったゲーム開発における疑問点や、問題解決などを投稿しています。
すこしでも悩み解決の糸口になれば幸いです。
これからも、より良いゲーム開発の日々をお過ごしください!
前後記事
前回の記事
・プレイヤーの敗北を実装する
一覧記事
・まとめ記事
他の記事を探す
他の記事も気になる方は、以下の記事の目次を確認ください。