【cluster】Logicでの「計算」一覧
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を越えないようにする……とかいうパターンでしょう。
Min
とMax
の使い方は間違いやすいので、「パターン編」の前半に出てくる「HPが0以下にならないようにする」処理をチェックしてみてください。
種類 | やること |
---|---|
Min | AとBの小さいほう |
Max | AとBの大きいほう |
Clamp | Aが、B以上C以下の間の数字になるようにする(Bのほうが小さい数字ってことに注意!) |
値を操作
何かの値を操作します。ちょっとむずかしいです。
ただ、And
とOr
はいつかお世話になるかもしれません。
レベルの高いゲームを作るようになったら取り入れてみましょう。
あと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回復……なんて分け方をしたいときとか使えます。 | |
便利ではあるものの、初心者にはむずかしい。。。 |
Discussion