読者です 読者をやめる 読者になる 読者になる

妹でもわかるUnrealEngine4

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

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

2つのIntegerを組み合わせて、より大きな整数を作る

UE4.15 ブループリント アルゴリズム

f:id:una_unagi:20170301220447g:plain

「2つのIntegerをくっつけて、より大きな変数を作り出す実験をしてみた。ただし1つの変数が0~9しかないから、数としてはあんまり増えてない。理屈の確認用」

妹「-100から始まって、次が-9-9?」

「これは仮の表示だから、上の桁が0以外の時は下の桁の符号を無視する処理をいれて、-99に見えるように加工する」

妹「でもなんでマイナスの数字なの?」

「プラスだけなら簡単だから。マイナスを含めるとややこしくなるから、その確認をしてた」

変数が1つの普通のやり方
f:id:una_unagi:20170301221135p:plain

変数2つで、数字を増やす時はいいけど減らすとバグるバージョン
f:id:una_unagi:20170301221140p:plain

数字を増やしても減らしてもいけるバージョン
※いけてませんでした。翌日の記事に修正版があります
2つのIntegerを組み合わせて、より大きな整数を作る(改良版) - 妹でもわかるUnrealEngine4

f:id:una_unagi:20170301221145p:plain

「こういう具合にだんだんと複雑になっていった」

妹「選択するがいっぱいある」

「そこはブランチセットでも良かったけど、なるべくノード数を減らしたかったから。あんまりデカくなると画像にするの面倒くさい……」

妹「選択する以外は、足し算と割り算しかしてないのかなあ……」

「そこは足し算だけにも出来る。途中まで一度に2以上の繰り上がりも考慮にいれてたんだけど、それはやっぱり面倒くさいからやめた方がいいという結論。そうすると前半部分は足し算と選択するで書けるようになる」

妹「これはketa変数を増やすと、もっと大きい桁も使えるようになるの?」

「まだ試してないけど多分……。0~9にしてる理由は暗算がしやすくて考えがまとめやすいというだけで、仕組みの都合ではないから」

妹「マイナスの時は、上の桁も下の桁もマイナスにしないといけないの?」

「いけなくはないんだけど、計算上その方が都合が良かった。下の桁が9だとして、それに1足す場合、+9だと10に、-9だと-8になるから、マイナスにしておいた方が計算が自然になりそう。多分他にも色んな方法があると思う」