妹でもわかるUnrealEngine4

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

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

Math Expressionは、数学式じゃなく、C++で書かれている

妹「前回のやつだけど、MathExpressionノードがちゃんと出てないね……」

imoue.hatenablog.com

「言われてみればたしかに。やっぱり他の方法で載せた方がいいんだろうか」

妹「でもブループリント多いと大変だよね……それはともかくとして、そのMath Expressionなんだけど、あれも大変だったんだよ」

「絶対値を入れる方法を聞かれたから教えたような」

妹「そうなんだけど、ドキュメントに書いて通りにやってたら、なんかおかしなことになって」

api.unrealengine.com

sin( や rand( のようにアルファベット名の次に開き括弧がくると、それは関数ノードに変わります。

妹「って書いてあったからね、 abs( って書いたみたけど、駄目だったんだよ。rand( も駄目だった」

「開きカッコがくると関数になる??? ……あー、そういうことか。カッコは閉じないと駄目だね」

妹「やっぱり……これだと端っこがドコだかわからないような気が、うすうすはしてたんだけど、でも開きカッコがっていうけど、閉じカッコとは書いてなかったから、余計な物は書かないほうがいいのかと。閉じカッコも入れてみたらなんか動いたんだけど」

「カッコが来ると変数名じゃなくて関数名として認識されるけど、結局カッコが足りないのは足りないから、足りないってエラーがでたというか」

妹「数学というのはむずかしい」

「これは数学じゃなくて、ほぼC++なんだけどね。C++の計算に関係することだけ書けるというか」

妹「そうなの? これ数学式じゃなかったっけ?」

「だって数学だったら掛け算のとこに*とは書かないでしょ」

妹「たしかに……」

「数学だと絶対値にする時も、縦棒で囲むとかで、関数あつかいはしてない。平方根のルート記号も、パソコンだと表現しにくいから、sqrt()とかって関数にするし、数学とはだいぶ書き方が違う。C++だけじゃなくて、プログラミング言語では全般的にそういう風に書くんだけど。書ける文字の都合とかあるから」

f:id:una_unagi:20180415220409p:plain

「一番後ろにあるコレも、C++では使えるけど、Math Expressionでは使えないという意味」

妹「そうすると……Math Expressionで使えなくて、C++でも使えないやつは、最初からこのページに書いてなかったりする?」

「その場合は書いてないと思う。同じC++でも、使うライブラリ……アセット的な物によって、関数の名前が少し違ってたりはするけど、そういう場合用に、よく使われる別の名前でも動くようになってるから。powとpowerはどっちでもいいとか」

妹「それは何のパワーに使うやつなの?」

「これはべき乗。数字の右上にくっついてる小さい字もパソコンだと難しいんで、そういう関数を使う事が多い。言語によっては関数じゃなく別の記号でやることもあるけど」

妹「そうなのか、うーん、よくわかんないけど、数学の記号よりはいいかもしれない」