メインコンテンツへスキップ
  1. 記事/

CheatManagerを使って開発専用のショートカットキーを管理する

UnrealEngine UE5.4 Blueprint
目次

CheatManager を使って、開発専用のショートカットキーを追加します

ゲーム開発をしていると、デバッグ用にちょっとしたショートカット入力が欲しい、ということがあります
一応 Debug Key のノードはありますが、これで全部実装すると、 どのキーを何に使ったか思い出せない となるときも…

DebugKeyノード

そこで、EnhancedInput に対応したデバッグ入力を実装してみましょう

  • メリット
    • InputAction として名前をつけられる
    • Chord 入力、Hold 入力など特殊な入力に対応している
    • (ReferenceViewer からどこで使用しているか調べられる)
  • デメリット
    • 作成するアセット数、手順が多い

CheatManager
#

PlayerController に紐づいたクラスで、いわゆるチートコマンドを実装する目的で使用されるクラスです
Shipping ビルド時には無効化される、という特性を持っています

基本的にはコンソールコマンドを実装するためのものですが、これを使えば
デバッグビルド時だけ任意の Component を Player にアタッチする という動作が可能になります

CheatManager は、新規 BP 作成時に CheatManager を選択します

CheatManager作成

作成した CheatManager を使用するには、PlayerController の Cheat Class にクラスを設定します

CheatManagerの設定

Cheat 入力用の Component
#

CheatManager は PlayerController にくっついているものの、入力情報を受けることはできないので、EnhancedInput の入力ノードを定義してもイベントが実行されません

なので、Cheat 入力用の ActorComponent を作成し、そこに入力イベントを定義することにします

ActorComponent の BeginPlay で、EnhancedInput の InputMappingContext を登録し、入力イベントを登録しておきます
(EnhancedInput の使い方は今回省略します)

CheatInputComponentの実装

CheatManager から Player に Component をアタッチ
#

CheatManager のInitCheatManager イベントで、作った Component を PlayerController に追加します

alt text

Pawn に Attach してもいいですが、Pawn に強く依存しないのであれば、PlayerController に Attach するほうが楽かと思います

関連記事

TypePromotionについての考察
UnrealEngine UE5.1 TypePromotion C++ Blueprint
BPでn次元配列を扱う
UnrealEngine Blueprint UE5.2
OverlayMaterialの脇道あれこれ
UnrealEngine UE5.1 Materials