【cluster】Logicでの「計算」一覧

公開:2020/12/04
更新:2020/12/05
2 min読了の目安(約2300字TECH技術記事

Cluster Creator Kit Advent Calendar 2020の5日目の記事(のオマケ)です。


Logicでは足し算とか数字を比べるとか色々なことができます。
……が、cluster公式のソコの説明がわかりにくいんで、もうちょいゆるい感じで一覧にしました。


基本的にこんな感じですね

上の例の場合、

  • Kitayoというメッセージを受信
  • Soukaというメッセージを自分に送る(無条件で)
  • HPという変数を+10する
  • MPを8にする
  • もしHPが25以上なら、Genkiというメッセージを自分に送る

……ということになります。


では見ていきましょう。

そのまま

種類 やること
= そのまま

ただのイコール。
書いた値がそのまま変数にセットされます(この記事の最初に出た画像でいうと、MPの部分)

なお、上の画像のSoukaのようにConstant BoolのONの値を入れておくと、Signalメッセージが送れて便利です。コレはかなり使います。

計算

2つの値を指定して、計算します。
HPとかMPとか得点とかを計算して、それを変数に入れるのに使うことが多いでしょう。
上の画像ではHPを+10する部分です。

種類 やること
Add 足し算。A+B
Subtract 引き算。A-B
Multiply かけ算。A×B
Divide わり算。A÷B(整数ならあまりは無視)
Modulo あまり計算。A÷Bの、あまりの数

比べる

2つの値を指定して、比べます。
HPが0以下か? とか得点が10を越えたか? とかチェックして、OKのときだけSignalのメッセージを何か送る……って感じが多いでしょう。
上の画像ではHPが25以上なら~の部分です。

種類 やること
Equals A=BならOK
GreaterThan A>BならOK
GreaterThanOrEqual A≧BならOK
LessThan A<BならOK
LessThanOrEqual A≦BならOK
NotEquals A≠BならOK(つまりA=Bならダメ!)


こっからは少し難しいかも?

値が大きすぎないか、少なすぎないか

何かの値が大きすぎ(少なすぎ)ないかチェックします。
一番多いのは、HPやMPがマイナスにならないようにする、最大HPや最大MPを越えないようにする……とかいうパターンでしょう。
MinMaxの使い方は間違いやすいので、「パターン編」の前半に出てくる「HPが0以下にならないようにする」処理をチェックしてみてください。

種類 やること
Min AとBの小さいほう
Max AとBの大きいほう
Clamp Aが、B以上C以下の間の数字になるようにする(Bのほうが小さい数字ってことに注意!)

値を操作

何かの値を操作します。ちょっとむずかしいです。
ただ、AndOrはいつかお世話になるかもしれません。
レベルの高いゲームを作るようになったら取り入れてみましょう。

あとNotは、「○○がONなら××というメッセージを出したい。OFFなら△△というメッセージを出したい……」なんてときに使える感じです。テンプレートワールド「プログレッション」でもそんな感じで使われています。

種類 やること
And AとB、両方ONならOK(True)
Or AとB、どっちかがONならOK(True)
Minus プラスマイナスを入れ替える
Not BoolのON/OFFを入れ替える

むずかしいやつ

種類 やること
Condition AがONなら、Bの値を返します。OFFなら、Cの値を返します。

AにBoolの値を入れておいて、ONかOFFで値を変化させます。
例えば回復魔法を使ったとき、LV10以下なら30回復。LV11以上なら50回復……なんて分け方をしたいときとか使えます。
便利ではあるものの、初心者にはむずかしい。。。