みなさんこんにちは。
NakaRyoです。
前回の記事では、ウィジェットブループリントを使って
BET数を画面に表示する方法について解説しました。
今回はその応用編として、CPUがランダムでBET数を選択し、
その結果を画面に表示する処理を実装していきます。
事前準備
本章に移る前に事前準備を行います。
準備リスト
・ウィジェットブループリント(本章で使用するWBPは過去記事にて記載)
前回の記事をまだご覧になっていない方は、以下のURLから確認してみてください。
PLAYER側のBET数選択ノード設定
CPUの実装に移る前に、新たにBET数を確定するSELECTボタンの実装及び
PLAYER側のBETを選択後に再度選択できないようにする処理を追加します。
BET数を確定するSELECTボタンの実装
①デザインタブを選択し階層画面で任意のボタンを複製します。
ボタン名をButton_SELECTに変更します。

②階層ボタンを選択した状態で、右上のIs Variableにチェックを入れます。

③詳細のOn clickedを選択後、グラフ画面に移行し、以下ノード設定を行います。

ノード構成手順
新規変数を作成します。
変数名:IsBetConfirmed
変数型:Boolean

On clickedの実行ピンとSet IsBetConfirmedのノードを繋ぎます。
IsBetConfirmedにチェックを入れます。

Get SelectedBetをノード上に配置し、To text(Integer)とノード接続をおこないます。

グラフ上の空いているスペースを右クリックでFormat Textを選択し、
Format Text欄にPLAYER BET:{Bet}を入力します。
Betピンが自動的に作成されたのを確認後、BetピンとTo text(Integer)のReturn Valueピンとノード接続します。

Format TextのResultピンからワイヤー展開し、Set Text(Text)とノード接続を行います。
※検索する際に、状況に合わせた表示のチェックを外すとヒットしやすいです。
Set text(text)のTargetピンとText Block67(BET SELECTの表示テキスト)をノード接続
Set IsBetConfirmedの実行ピンとSet text(text)の結果ピンをノード接続

PLAYER側のBET選択後 再度選択不可にする
ノード構成手順
OnClicked(Button_Select)
の Set_Text
からワイヤーを展開し、Sequence
ノードに接続します。

Sequence
付近に Get Button BET5 / BET10 / BET15 / BET20
を設置します。

Get BET5_Button
からワイヤーを展開し、Set Is Enabled (変数)
を選択します。
※「ウィジェット型のSet Is Enabled」ではなく、変数・動作のSet Is Enabled
を選択してください。

Sequence
の実行ピンと Set Is Enabled
の結果ピンを接続します。
同様の処理を BET10 / BET15 / BET20
にも行います。
※注意:Set Is Enabled
のチェックは外してください。

CPU側のランダム選択実装
続いて、CPUがランダムでBET数を選択する処理を実装します。
①デザイナータブを開き、キャンバスパネル
の配下に Text(名前:CPU SELECT) を配置します。

②グラフタブに移動し、関数の「+ボタン」から新規関数を作成します。
関数名:RandomCPUBet()

③RandomCPUBet()
をダブルクリックしてグラフを開き、以下ノードを設定します。
ノード構成
RandomCPUBet
の実行ピン → Switch on Int
に接続

Switch on Int
の Selection ピン → Random Integer in Range
に接続
Random Integer in Range
の Min=1 / Max=4 を設定

Switch on Int
に 0/1/2/3/4 の実行ピンを追加
Set CPUSelectedBet
を4つ用意(BET5 / BET10 / BET15 / BET20)し、配置
Switch on Int
の実行ピン(1~4)をそれぞれの Set CPUSelectedBet
に接続

CPU選択結果をUIへ反映
新規変数を以下の通りに作成します。
・変数名:CPUSelectedBet
・変数型:Integer

新規関数を作成し、関数名を FinalizeCPUBet
に設定します。

ノード構成
Get CPUSelectedBet
→ ToText(Integer)
に接続

Format Text
を追加し、Text欄に「CPU BET:{Bet}」を入力
※Betピンが自動的に発生することを確認します。

ToText(Integer)
の Return Value を Format Text
の Bet ピンに接続

Set Text (Text)
を配置し、Format Textの結果ピン
を Set TextのInText
に接続

Set Text (Text).Target
を Get TextBlock_4
に接続
FinalizeCPUBet
の実行ピンと Set Text
の結果ピンを接続

RandomCPUBet()
のグラフに戻り、FinalizeCPUBet
をドラッグ&ドロップ。
各 Set CPUSelectedBet
の実行ピンを FinalizeCPUBet
の結果ピンに接続。

最後に、イベントグラフに戻り、
Set Enabledの実行ピンから、Random CPUBet()を呼び出し、結果ピンとノード接続します。
(BET5~BE20のSet Enabledとノードを繋ぐ。)
以下の通りになっていれば成功です。

最後にコンパイルと保存します。
実装確認
実装が完了したら、実際に動作を確認します。
- SELECTボタンを押す前
CPUのBET数は未表示の状態です。

- SELECTボタンを押した後
CPUのBET数が画面に表示されます。

SELECTボタン押下後は PLAYER側のBETボタンが灰色に変わり、押せなくなる ことも確認できます。
まとめ
今回は、Unreal EngineにおいてCPUがランダムでBET数を選択し、画面に表示する処理を実装しました。
PLAYER側のBET選択制御とCPU側のランダム処理を組み合わせることで、より実践的な対戦機能を構築できます。
前回記事の続きとして取り組むと、UIとブループリントの理解がさらに深まるので、ぜひ挑戦してみてください。