妹でもわかるUnrealEngine4

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

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

妹、ゲーム中のコリジョン設定変更に成功する

妹「ついにコリジョンの変更に成功したぞ! 最初はぶつかるけど、キーを押すとぶつからなくなる。もう一回押すと戻る」

f:id:una_unagi:20150702204404g:plain

「おお、上手くいったんだ」

妹「長年の研究の結果上手く行ったのだ」

f:id:una_unagi:20150702221459p:plain

妹「こういう感じで、壁メッシュのコリジョンの、青い人形に対する当たり方を変えられた。だから自分だけすり抜けて、クリボー的なやつは抜けない」

「なるほど。これが出来るってことは、コリジョンのプリセットとかは編集中だけの話で、実行した後はそれぞれ別の判定データになってるのかなあ」

妹「どゆこと?」

「出来れば個別のメッシュじゃなくて、コリジョンのプリセットの方を変えたいと思ってたんだよ。BlockALLとかの。だって必要な壁全部にすり抜けられる設定を組み込むとか、めんどくさいでしょ。だけど個別に判定基準が変えられるということは、プリセット自体を書き換えられないというか」

妹「プリセットがどうのこうのというブループリントは見かけなかった気がする」

「ってことはもう、プリセットは開始時点での判定が同じってだけで、それ以上のグループ的な扱いではないってことになる。参照ではなくコピー的というか。となると何か別の方法を考えないと」

妹「別の方法?」

「例えばすり抜けの設定を書いた基本のブループリントを作って、壁はそれを継承したブループリントとして作るとか。そうすれば壁自体は沢山あっても、1箇所だけ書けば全部で対応できる。何かしら区別出来るパラメータを用意して、全部のActorの中から該当するのだけ書き換えるようにしてもいい」

妹「むずかしい事を考えずに全部に書いてもいいのでは? 何回も書くといっても、ブループリントコピーするだけなんだし」

「そうなんだけどね。特に小規模なゲームだとその方が早いこともあるし。ただ人間の作業を信用してないというか、コピー作業にミスが出るかもしれないし、変更する時にコピーしなおさなきゃいけなくなるというのも嫌。なるべく同じ処理は1箇所だけに書いて、修正も1箇所だけ変えれば済むようにしときたい」

妹「かえってめんどくさそうな気がする」

「最初から完璧主義でやると、作業自体が進まなくなることもあるからね。初心者のうちから気にしなくていいかもしれない。とりあえず動くようにして、それから整理するという方法もある」

妹「うーん、別にコピーしなくてもすでに十分ゴチャゴチャしてるから、整理しないといけない気はするんだよなコレ。サンプルのつぎはぎしてて、要らないのとか混ざってるし」

「どこを整理したいのか言ってもらえば見ますけど」

妹「それがよくわからない程度にゴチャゴチャしている」