数カ月前にキャラクターを変えたローカルマルチを作成したのでだいたいの作り方をまとめます。
多分他に正当法がありそうな気がするので自分の色々と弄った結果これじゃないかという小ネタ発表的な・・・
ローカルマルチの実装
仕様:[P]を押すとゴブリンが2Pで出現。もう一度押すとよくわかんない女のキャラが3Pとして出現。
使用したもの:
ThirdPersonテンプレート
MixamoAnimPack(無料)
ローカルマルチ自体は非常に簡単に出来る仕組みになっています。
まずBluePrintを作成しPlayerControllerに設定します。
そして設定します。
PlayerControllerのエディター部分に、ThirdPersonCharacterのブループリントにある操作部分をコピペして貼ります。
Inputを2Pに変える必要があるのでプロジェクトの設定のインプットから2Pのインプットを作成します。
多分コンパイルエラーが起こると思いますが置いておきます。
次に「P」が押されるとローカルマルチが作動するようにします。
Controller idが1のPlayerを作成していることになります。なので、先ほどコピペしたノードらに[PlayerCharacter]ノードを出し繋げる必要があります。
PlayerIndexに1を入れます。
この状態でローカルマルチを作動させると以下のようになります。
ローカルマルチについてはalweiさんのブログがわかりやすいです。
キャラクターが同じになっているのでどうにかしてキャラクターを変えたいと思います。
で、キャラクターのBPをそのまま出す方法など色々と試行錯誤したり調べたりしたんですけど思ったとおりにいかないので、もうアニメーションBPとSkeltalMeshをブチ込めばいいのではと考え実装していきました。
GetPlayerCharacterノードを出し1を入れ、Get Meshを出します。
Get MeshからSet Anim Instance ClassとSet Skeltal Meshノードを出します。
Set Anim Instance ClassのNewClassには出したいキャラクターのアニメーションBPを出します。今回はゴブリンを出したいので
MixamoAnimBP_Goblinを入れます。Set SkeltalMeshにはゴブリンのスケルトンを入れます。
この状態でローカルマルチを作動させると
ゴブリンが2Pとして出現します。
全体のノード構成としては動画では3体出現させているので以下のとおりになります。
GetPlayerCharacterとCreatePlayerには2を入れています。
正直これであってるか非常に微妙なんですが、一応動いてるし・・・
他の方法があれば是非教えて下さい~。
以上。