0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

UE4で『PONG』もどきを作った時に詰まったところメモ

Posted at

はじめに

タイトルにはPONGを作ったとか書いてるけど、記事の内容自体は詰まったところなので、特に制作過程をどうこう書いてるわけではないことをご了承いただきたい

詰まったところ・気になったところ

プレイヤーの自動スポーンをやめたい

GameModeのDefault Pawnに設定したPawnが実行時に自動で生成されるのが気持ち悪かったので、対処法を調べてみた
参考URL: UE4 Default PawnとSpectator Pawnについて
Pawnを継承したオブジェクトのAuto Possess Playerというタブの値をPlayer 0に設定すればいいらしい
こうすることで、ID0のPlayer Controllerが所有するPawnとなり、自動でDefault Pawnが生成されなくなる
image.png

衝突を検知してくれなかった

原因は、なんとなくAddActorWorldOffsetを使用していたのが原因
しっかりと物理挙動に則って移動させようね!という話だった(多分)
なので、今回はphysicsのvelocityを随時更新することによって解決
↑の処理をTickイベントでおこなわなかったために、おかしな共同をしていたのもメモ
Tick関数がどう処理されているかUnrealC++を追ってみよう!

インプットの設定

プロジェクト設定 > インプット > Binding
ここで独自のインプットイベントを定義できるので覚えておくべし
image.png

インプットの設定でやらかしたこと

色々試している途中で複数のPawnのAuto Posses Playerを同じ値に設定してしまっていた(Player 0とか)
すると、最後にコンパイルしたブループリントが設定の対象になるようで、意図しない挙動をすることがあった

ローカルマルチプレイを実現したい

PONGは1画面を2人が共有して操作するゲームなので、とりあえずプレイヤーを2人分作成して別々の操作をできるようにしたい

2人分のプレイヤーを用意する

ブループリントでCreate Playerを呼ぶと勝手にプレイヤーが生成されて、ローカルマルチが実現する。すごい
image.png
ちなみに今回はゲームの仕様上使わないと思うけど、一応知見として覚えておいて損はないかなと思う

1画面を2人で共有する

CreatePlayerを実行すると勝手に画面が分割されるのを止めさせたい
プロジェクト設定のUse SplitScreenにチェックが入っていると自動で画面が分割されるらしい
参考URL: マルチプレイで画面分割をしないと、1P側カメラが有効になる

落とし穴

その1

レベル内に設置されているAuto Possess Playerを2つとも同じPlayer 0に設定すると、当然ながらどちらか片方のみが入力をうけつけるようになる。あくまでPlayerControllerと所有するPawnの関係は1対1ということなんだと思う

その2

参考URLにも書いてあったことなのだけど、今回PONGを作成するにあたって、キーボード1つで2人分の操作をする予定だったが、↑の方法だと1P側がキーボード入力受付を専有してしまい、2P側にインプットイベントが送信されなくなるという落とし穴がある
なので、1P側で入力を受付、2P側のPawnに対して移動量の値を設定してあげる的なことをしなくてはならない
UE4の闇感あるなと思った

変数について

privateと目のマークの違い

private 目のマーク
image.png image.png

ブループリント変数 | Unreal Engine ドキュメント
・private
この変数をプライベートにします (派生ブループリントによる修正不可)。
・目のマーク
変数を [Editable (編集可能)] に設定すると、変数が存在するブループリントの外部から変数を修正することができます。

privateは継承うんぬんした時に派生先では見れるか否か、目のマークはエディタ上で値を操作できるようにするかの設定

レベル間の遷移をしてみた

image.png
これだけ
関数内では使用できないので注意が必要

音の再生

SE

image.png
これだけ
対応してる形式が、なんとwavオンリー(?)多分

BGM

  1. BGMにしたいコンテンツを右クリックしてキューに追加を選択
    image.png
  2. こんな感じのキューが新たに作成されるのでレベル内に配置
    image.png
  3. おわり

...

多分自分以外が見たら、いまいちよくわからない内容になってるんじゃないかなーとは思ってるのでそのうち内容整理とかもしたいとか思ったり思わなかったり

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?