妹でもわかるUnrealEngine4

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

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

用語調査記録「トレース」

妹「トレースってどういう意味?」

「どういう意味で使うかによって違うと思うけど……」

妹「なんでそんなにあいまいなんだよ」

「いや元々は"なぞる"という意味の英語らしいけど、何をなぞるかによって全然違う日本語訳になるわけでして」

妹「じゃあUE4の場合は?」

「どういう意味で使うかによって違……」

妹「それじゃ困るんだよ! じゃあプロジェクト設定にあるやつ。コリジョンのとこにあるから、コリジョンに関係ある話だろうと思うんだけど」

「そのトレースか。それは視線をなぞる系のトレースだね。そのコリジョンの向こう側が見えてるか見えてないか」

妹「見えるか?見えないか? そんなの見ればわかるし、設定してもしょうがないのでは……」

「見えたことがコンピューター、つまりブループリントでわかるかどうか、と言った方がいいか。」

docs.unrealengine.com

unrealengine.hatenablog.com

「敵が近くに居るかどうかってのは自機のLocationと差から距離を調べればわかるんだけど、いくら近いからって見えてないのに襲ってきたらおかしいでしょ。だから見えてるかどうか判定というのが大事」

妹「敵が壁の向こうから襲ってきた記憶がいっぱいあるんですが」

「視線追跡は距離を調べるよりも計算に時間がかかるから、昔のゲームとか、隠れる要素を重要視してないゲームでは省かれることも多い」

妹「トレースはだいたいわかったけど、そのトレースがコリジョンとどう関係するんだ?」

「見えてるか見えてないかの判定にコリジョンを使ってるんだよ。分類も同じ。見えていてかつ先が見えないか、見えていてその先も見えるか、目に見えないものとして扱うか……要するに目から透明なビームを発射した時の当たり判定になる」

妹「ビーム!?」

「ビームですよ。上のページにあるレイキャストってのも、光線を向けるとか、投げるとかって意味だし。ゲーム中に表示されるわけじゃないけど、考え方としてはそうなる」

妹「コリジョンで判定してるとすると、実際の見た目と形が違うのかな」

「違う。途中にある障害物のコリジョンが小さいと、こっちからは見えないけどあっちからは見えてるという事になる。大きいと逆にこっちが有利になる」

妹「そうするとコリジョン大きめの方がいいのかなあ。敵だけ見えてるのはなんかムカツク」

「でも大きいと隠しきれずに見えちゃう場合が。あと当たり判定の方にも差し支えるから、必要なら視線用と接触判定用と別のコリジョンを作った方が良さそう」

妹「なるほど。マリオのテレサがてれるやつとかも、視線で判定してるのかな?」

「あれは視線じゃないね。マリオが向いてる方向と、テレサとマリオの横軸の位置を見てる。壁や土管に隠れてても無視して最短距離で来るでしょ。最近のはわからないけど、少なくともスーパーマリオワールドまでは視線での判定はしてない」

妹「じゃあとりあえずは要らないか。ところでUE4のトレースと聞いてこれがすっと出てこなかったのは、他にもトレースがあるってこと?」

「ある。デバッグトレースとかスタックトレースとか言うやつなんだけど、こっちはプログラムの動きを"なぞる"感じかな。このページの"実行追跡"とかで使われてる」

docs.unrealengine.com

妹「なんで別の単語にしてくれないんだ……」

「どっちもUE4以外でも使われてる単語だから。CGやプログラミングで使われてて馴染みがあるって、変えるとかえって混乱しかねないというか」

妹「困ったもんだ。とりあえずコリジョンとか視線関係で出てくるやつと、それ以外で出てくるやつという感じで見分けるか」

コリジョンへのトレースをデバッグする機能とかあるから気をつけてね」