【2年生】思わぬ落とし穴
2023年12月8日 | ゲームクリエイター学科
こんにちは。ゲームクリエイター学科ゲームプログラマー専攻2年の長澤です。
現在は卒業制作をしたり、合間にゲームを楽しむ最高の日々を送っております。
さて、この記事では卒業制作中に嵌った(?)落とし穴(?)について書こうかなと思います。
まず卒業制作についてざっくり説明します。
卒業制作には主に3つ程の選択肢があり、僕が参加しているプロジェクトは
「産学共同カリキュラム「ヒット研ゲーム工房」の中で生まれた企画を実際に制作する」
です。
企画の立案から携わり、なんやかんやでプログラマーとして参加しています。
そして実際に制作の段階に入って、プランナーからのタスクをこなす日々を送っていました。
そんなある日、
「ボタンを押し続けている間、プレイヤーにアイテムが吸収されるようにしてくれ」
※要はマ〇オ64でいうところの1upキノコです。
このようなタスクが言い渡されました。
この時僕はすぐ終わりそうなタスクだなと侮っていました。
では実際に実装しながら振り返っていきます。
ちなみに開発はUE5で行います。
まずサードパーソンテンプレートでプロジェクトを作成して、アイテムの処理を行うBP_Itemを作成します。
※とりあえずコンテンツフォルダ内に作成しました
BP_ThirdPersonCharacterを開き、シーン内に配置した全てのアイテムを格納する配列Itemsを作成します。
BP_Itemを開き、吸収するためのフラグIsAbsorbと吸収速度Speedの2つの変数を作成します。
Cubeコンポーネントを追加して拡大率を0.1にします。
BeginPlayでサードパーソンキャラクターが持つItemsに自身を格納していきます。
Tickで吸収フラグが有効の場合にプレイヤーに向かうようにノードを配置します。
※とりあえずSpeedの値を100.0とします。
次に当たり判定も実装していきましょう。
CubeをクリックしてコリジョンプリセットをCustomにして、
カメラを無視し、ポーンをオーバーラップにします。
サードパーソンキャラクターと当たったら消えるようにノードを配置します。
次に吸収用の入力IA_Absorbを作成してIMCに設定します。
※とりあえずマウスの左ボタンに設定しました。
BP_ThirdPersonCharacterを開き、入力処理のノードを配置します。
※今回はアイテムとの距離に関係なく全てのアイテムを吸収するようになっています。
さてここまで出来たら適当にアイテムを2〜3個配置してプレイしてみましょう!
いい感じですね!
さて本題はここからです。
吸収の入力がない時は地面に転がっててほしいなと思い、UE5にある物理シミュレートを使用しようと思いました。
Cubeをクリックして物理の項目のSimulatePhysicsを有効にしてプレイ。
よしよし、しっかり地面に転がっているな。
…って入力を押しても吸収されない!なんで!?
…ということでgoogle先生に頼ることにします。
どうやら子コンポーネントが物理シミュレートを有効にすると親から切り離されて動くためアクターの座標を移動してもCubeが追従してくれないということみたいですね。
試しにアクターの座標は、プレイヤーに向かってきているということを確認しましょう!
TickのSetActorLocationの後にデバッグ用の球を表示するノードを配置します。
プレイして吸収してみると…
アクターの座標はしっかりプレイヤーに向かってきてますね!
原因がわかればこっちのもんよってことで「吸収するときは親に再アタッチする」という処理で解決していきたいと思います。
BP_Itemを開き、関数Attachを作成し、以下のノードを配置します。
BP_ThirdPersonCharacterを開き、入力の最初に1度だけ各BP_Itemから関数Attachを呼び出します。
プレイしてみましょう。
いい感じですね!
これで無事に問題を解決することができました!
皆さんも便利だからといってよくわからずにあれこれ使用していると思わぬ落とし穴があるかもしれませんよ(*^-^*)
。゚.☆≡。゚.☆≡。゚.☆≡。゚.☆≡。゚.☆≡。゚.☆≡。゚.☆≡。゚.☆≡。゚.☆≡。゚.☆≡。゚.☆≡。゚.☆≡。゚.
■ゲーム学科のX(旧Twitter)/Instagramはじめました!
⇩AMG在校生の日常などを発信しています✨ぜひぜひチェック&フォローお願いします!
★X(Twitter)はコチラから!★ ★Instagramはコチラから!★
■入学相談・進路相談受付中!ゲームクリエイター学科LINE@での友達募集中!
↓コチラから✨メッセージの際はフルネームと年齢、職業を教えてくださいね↓
。゚.☆≡。゚.☆≡。゚.☆≡。゚.☆≡。゚.☆≡。゚.☆≡。゚.☆≡。゚.☆≡。゚.☆≡。゚.☆≡。゚.☆≡。゚.☆≡。゚.
来校型オープンキャンパス、オンライン夜間説明会、毎週開催中
★説明会へのご予約はコチラから!★
○来校型個別相談会、オンライン個別相談会、平日毎日受付
「週末の説明会に参加できない」という方へ
・平日開催(月~金)
⇒【オンライン開催】のご予約はコチラから!
⇒【来校型】のご予約はコチラから!