kuront’s blog

主にUnityでのゲーム制作やってます。

【UE4】ゴルフゲーム製作 その2


今日もゴルフゲームの製作をすすめていく。

主に取り組むのは、

 

・ショットのタイミングゲージを作成する

・各ホールのスコアの表を作成する

ゴルフクラブの種類を増やす

 

ショットのタイミングゲージはパワーゲージの下にもう一つProgressBarを追加して、

BP_playerに持たせた変数BarShotTimingでバインドする。BarShotTimingはショットのパワーを確定した後に、タイムラインで値を変化させる。後は各々の状態をbool型の変数で管理する。ここではショットパワー判定時を表すIsCharge、ショットのタイミング判定時のIsAiming,それからパタークラブを選んでるかどうか判断するIsPatterで管理する。

パタークラブを選んでる場合は、タイミング判定を行わないようにしている(常にまっすぐ飛ぶ)。

 

f:id:kuront:20210702174335p:plain

f:id:kuront:20210702174835p:plain

ショットアクション時の処理

 

あとは実際に確定したBarShotTimingの値を使って、まっすぐ飛ぶか、角度を-1.0~+1.0ばらつかせたりの処理分けを行う。

 

f:id:kuront:20210702175623p:plain

ショットのパワーとタイミングに応じてボールを飛ばす。ちなみにこれは通常時の処理で、ラフとバンカー時はそれぞれ別で数値を決めている。



これでショットのタイミングゲージの処理が実装できた。

次はスコア表を作成する。

スコア表はウィジェットブループリントのTileViewの機能を使って実装することにした。

 

f:id:kuront:20210706200117p:plain

 

ウィジェットに2段のグリッド付きの画像を用意し、ホール数とスコアを表示するためのTileViewをそれぞれ用意し、スコアに関してはゲーム中に動的にスコア用で別で用意したウィジェットを表示させる。

 

f:id:kuront:20210706200618p:plain

TileViewにスコア用のTextだけ用意したこのウィジェットを入れる

 

これをホール終わりに表示させればスコア表は完成である。

 

 

 もうひとつ、今用意している通常ショット用のゴルフクラブと、パター用のクラブだけではゲーム的に面白くないので、高いショットを飛ばせる2番クラブを用意した。

f:id:kuront:20210706201757p:plain

2番クラブのショットシーン

これを実装するのはそんなに時間はかからなかった。2番ショット用に飛距離と高さを調整するだけである。

 

今回はここまで。