妹でもわかるUnrealEngine4

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

PlayerStartとAutoPossessPlayerの仕組み

「先日AnswerHubでPlayerStartと違うところにキャラクターが出てきちゃうという質問があって、それ結局なんでかはわからなかったんだけど、PlayerStartに関してはちょっとよくわからない部分があったんで、今日はそのへんの実験について」

妹「PlayerStartのとこからゲームが始まるんだよね?」

「そのはずなんだけど、そうならない場合がわかってるだけでいくつかある」

(1) AutoPossessPlayerにPlayer0を設定したPawnがある場合は、それをそのままプレイヤーキャラにする
(2) PlayerStartがある地点に、ワールドセッティングのDefaultPawnClassをスポーンしてプレイヤーキャラにする
(3) 0,0,0の地点に、ワールドセッティングのDefaultPawnClassをスポーンしてプレイヤーキャラにする

「こういう感じで、(1)からの順番にチェックしていって、それがなければ次の条件という感じで進んでる感じ」

妹「(2)と(3)はわかるけど、AutoPossessPlayerというのはいったい?」

「よくわからないけど、とにかくこれが設定されると、そのポーンとかキャラクターとかが、プレイヤーキャラとして扱われるようになってる。これはTPSテンプレートの初期設定がこういう感じになってて、PlayerStartは無視されてる」

f:id:una_unagi:20170429231023p:plain
f:id:una_unagi:20170429231028p:plain

「ただこのPlayerStartには、NetworkPlayerStartという名前がついてるから、通信対戦とか作る時用なのかもしれない」

妹「そのAutoPossessPlayerに、Player0以外を指定した場合は?」

f:id:una_unagi:20170429231258p:plain

「その場合はPlayerStartの場所から出てくる。Player1とか2とかにした方はそのままその場所に突っ立ってる感じ」

妹「わかるようなわからないような」

「あとPlayer0設定のポーンが複数あったり、PlayerStartが複数置いてある場合というのもあって、その時は何らかの法則でどれか1つが選ばれて、それ以外のやつは無視された」

妹「PlayerStartと、AutoPossessPlayerってどっちを使ういいんだろ?」

「PlayerStartの方は、そのキャラ自体をマップ上に置けないから、位置合わせがめんどくさい。細かく位置調整するの面倒だから、だいたい適当に空中にスポーンして落下するという感じになる」

妹「なるね」

「キャラクターを配置してAutoPossessPlayerを設定する場合は、事前にしっかり着地をさせておくことが出来るのは利点。標準のテンプレートでも使ってるんだから別に不正な方法でもないと思う。ただ公式のドキュメントにあんまりこの設定について書いてないのがちょっと心配なところ」