UE4で「アクションゲーム」を独学で作る!

OVERVIEW

UE4でアクションゲーム開発しています!

YEAR 2021

[作った経緯]

私が授業で初めてUE4を使った時、ずっとコーディングでゲームを作ってきましたが

ブループリントというとても便利なものに触れて「ゲームエンジンってこんなにすごい

ものなのか!」と感動しました。このゲームエンジンで派手なゲームか気持ちのいい

ゲームを作りたいと考えていたとき、ダークソウルやテイルズオブアライズを遊んで

いて、アクションゲームがとても好きだったので授業や課題とは別でアクションゲーム

を作ることにしました!バージョンは4.27です!

[苦労したこと]

まず困ったことはアニメーションを自分で制御したことがなかったので一から

勉強しました。自分でアニメーションは作れなかったので今回はアセットを使いました!

約2000円ぐらいで結構扱いやすそうなアニメーションが揃っていたので購入しました!https://www.unrealengine.com/marketplace/en-US/product/frank-rpg-2-handed

(今はもう販売されていないそうです...)

ただ、アニメーションも作りたいと考えていたので色々調べているとIKだったり

コントロールリグだったりと色々出てきたので調べて勉強しました。今回は使用しな

かったですが知識としては身についたので今後使える場面があれば使ってみたいです!

アニメーションですが今回はアニメーションBPとAnimationNotifyを使って

アニメーションの実装だったりヒット時の判定や処理を作りました!

中身はざっとこんな感じです!

Attack0~Attack3のところは一つ一つのアニメーションの長さを表していて

下の3つの通知は上からコンボの入力受付コンボの入力締め切り、コンボ入力がされて

いれば次のアニメーションまで飛ばすといった仕組みになっています。

最初はMontageの存在を知らなくてBPでタイマーを1個1個作り、設定していましたが

めんどくさくなってきて調べたら出てきたので様々な記事を読み漁り、うまく使いこなせ

ました!とても便利だったので今後もよく使いますし、アクションゲームを作るならほぼ

必須の機能だと思いました!

[問題に直面した話]

上でアニメーションを買ったと話しましたが1つ大きな問題がありました。

それはThirdPersonCharacterと買ったアニメーションのキャラのボーンが

違ったことです。私はその時ボーンの仕組みを知らなかったので

「買えばどんなものでもアニメーションさせることが

出来るやろ!」


と思っていました...今考えるとボーンが違うのに動くわけがないんですよね...

人型モデルがカエルのアニメーションをそのまま再生出来たら気持ち悪いですよね...

もっと早く気が付くべきだったと思いました。

焦った僕はなんとかボーンを差し替えることが出来ないかと調べていると

あったのですUE4には!ほんとに安心しました。少し手順が難しかったですが

うまくボーンを割り当て、アニメーションを再生させることが出来ました!


ここからは少しUEから離れるのですが、ボーンについての仕組みを知りたかったので

ボーンがどうゆう仕組みで、どうやって動かしているのかを調べて勉強しました。

ちょうどDirectXTkでスキンメッシュアニメーションが使えるようになったので

これは!と思いwikiをみながら実装することが出来ました!

ボーンやIK、コントロールリグなど深く知れてとてもよかったです!

[感動した話]

DirectXTKでアクションゲームを作っていましたが剣の当たり判定は正確ではなく

疑似的な判定で作っていましたがUE4にはソケットという機能があり剣のモデルに

コリジョンなどを設定できます!これを知った時「ゲームエンジンって最高だな!」

と改めて実感しました。またコリジョンはNotifyによってオンオフの切り替えが

出来るのでとても便利で使いやすくて感動しました!

[工夫したところ]

今回は気持ちのいいアクションゲームを目指していたので切った時の気持ちよさ

意識しながら作りました。SEKIROやダークソウルでは致命の一撃(忍殺)などが

個人的にすごく好きで真似してみたいなと思ったので私のゲームでは一定数攻撃(コンボ)

を当てたらスローモーションにして一撃をかます!というシステムにしました。

これによりコンボをして強力な一撃に繋げるか細かく攻撃して安全に戦うかという

プレイヤーに選択肢を与えることが出来るようにしました!実際にテストで友達に遊んで

もらいましたが「スローモーションからの攻撃が気持ちいい!」といってもらうことが

でき、狙い通りだったのでうれしかったです!

[作ってみて]

今回作ってみてまだ全然完成ではないですがアニメーションや当たり判定、

コンボなどが実装できてうれしかったし、ゲーム作りが楽しいと思いました!

アクションゲームは考えることが多く、作るのは大変ですがシステムだったり

パラメータなどを設定するのが楽しいので今後も作りたいと思いました!

今後は勉強しているAIを敵に組み込み、PVEが出来るまで作ってみたいと思いました!

最後まで読んでいただきありがとうございました!