妹でもわかるUnrealEngine4

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

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

妹、ABSをアベシと呼んでいた

妹「兄の書いたブループリントを見てると色々知らない使い方があるな。構造体のピンって分解できたんだなあ、とか」

「あれね。いちいちBreakしてMakeしてとかめんどくさくなって、何か楽出来る方法はないのかと探してて、ピンのとこ右クリックしたら出来た」

妹「あとアベシ」

「アベシ?」

妹「あ、しまった。つい口に出してしまった。Absolute、ABSってやつ」

f:id:una_unagi:20150704234052p:plain

妹「絶対値の説明とか見てたら難しいこと書いてあるんだけど、要はマイナスの記号を消すってことなのね」

「数学的な定義としては色々書いてあるけど、パソコンで扱う時はそれでいいよ。だいたいどの言語にもABSという名前の関数というのが用意してある」

妹「これは距離を調べる時に使うのか?」

「それが一番多い。例えばX軸で位置関係を調べるとき、片方が100で、もう片方が1だと、どっちから引くかで+99なのか-99なのか変わる。だからABSを付けるか、必ず多い方から引くプログラムにするかしないといけない。斜めも含める場合はもうちょい複雑な、2点間の公式を使うからABSは不要だけど」

妹「じゃあ必ずマイナスにしたい時は?」

「まずABS使って、0からその結果を引くか、-1を掛ける。0から引く方がたぶん計算は速い。ABSを使わずにそれをやると符号が逆になる。プラスだったらマイナスだけど、マイナスだったらプラスに変わる」

妹「いったんプラスにしてから逆にするから、必ずマイナスになるのか」

「そういうこと。もちろんBranchノード使って、0以上だったらとかで分岐させてもいいんだけど、それやるとexecピンも必要だから、どうしても複雑なブループリントになる。どっちの数字が大きいかで動作を変える場合はしょうがないけど、単純にマイナスを外すだけなら要らない」

妹「なんとなく要らなそうと思ってたけど、意外と役に立つんだな。アベシ」