ルートコンポーネント以外のBlockコリジョンは正常に作動しない
妹「ちょっとキャラクターコンポーネントにまるいコリジョンを追加しようと思ったんだけど、通れないはずのとこが通れたり、何かおかしいから確認してほしいんだけど」
「あー、それは出来ないやつ。Blockコリジョンはなぜかルートのやつしか反応しないんだよ」
Sweep only works with the Root component? - UE4 AnswerHub
「英語の報告も上がってて、この時に修正リストには載ってるはずだから、一応バグか仕様不足ということだと思うんだけど、まだ修正されたという話は聞いてない」
妹「じゃあこれBlockコリジョンをいっぱい作っても無意味だったの!?」
「厳密に言うと動いた側の、衝突する側のアクターはルートのコリジョンしか認識しないから、衝突された側の反応は起きる。だから向こうから飛んで来た弾とかにはちゃんと当たったりするんだけど」
妹「それでか、なんかたまにぶつかってるような気がするのは。でも足元と胴体とで当たり判定変えないと、カプセル1個じゃどうしても納得のいく動きにならないんだけど」
「これがPawn型とかだったらルートに置いたコリジョンを形を変えれば対処出来るんだけど、Character型というのが問題で」
- 移動時の衝突判定にはルートコンポーネントのコリジョンだけが使われる
- Character型アクターのルートはカプセルコリジョンで別の形に変更できない
- CharacterMovementはCharacter型アクター以外では使えない
「という3つの悪条件が重なってるから、カプセル以外の形のコリジョンが使えないというのが現状。このうちどれが1つでも修正が入れば何とかなるし、要望も出てるんだけどね」
妹「カプセル1つでやろうとすると、崖っぷちに立った時の足元の判定と、頭の部分の判定と、どっちかに合わせるとどっちかが変になってしまうんだけどな。じつにコマッタ……」