【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