📓

clusterイージースクリプト 関数一覧

2024/07/21に公開

まだ「clusterイージースクリプト」のインストールが済んでいない人は先に済ませてくださいね。
こちらの記事からどうぞ。

以下はclusterイージースクリプトの関数一覧です。

「_基本イージー」に含まれる関数

※内部でしか使っていない関数は書いてありません。

何かが起きたときの関数

  • ee.start(): アイテムができたときに呼ばれます。
  • ee.main(): 毎フレーム(毎回)呼ばれます。いわゆるメインループです。移動などの多くの処理はここに書かれます。
  • ee.receive(): 何かのメッセージが送られてきたときに呼ばれます。
  • ee.playerLost(): このアイテムの「Owner」だったプレイヤーが切断してしまったときに呼ばれます。別途On Receive Ownership Item Triggerコンポーネントをアイテムにつけ、Involuntaryのときだけ反応するように設定する必要があります。

移動・位置・回転の関数

  • getPos(): 現在の位置を取得します。XYZがセットの値です。
  • getRotate(): 現在の回転を取得します。XYZがセットのオイラー角の値です。
  • setPos(x, y, z): アイテムの位置を一気に指定します。ワープと考えるとよいです。
  • setRot(x, y, z): アイテムの回転を一気に指定します。
  • warpFirstPos(): 初期位置と回転にアイテムをワープさせます。
  • move(x, y, z): アイテムを移動させます。1秒ごとに、指定した値だけ動きます。
  • rotate(x, y, z): アイテムを回転させます。1秒ごとに、指定した値だけ回ります。
  • moveForward(speed, upSpeed, sideSpeed): 前方に移動します。upSpeedを指定すれば上下、sideSpeedを指定すれば「このアイテムの向きから見て左右」にも移動します。
  • sinMoveX(speed, amplitude): 波のようにX方向へ位置を移動します。動きはループします。
  • sinMoveY(speed, amplitude): 波のようにY方向へ位置を移動します。動きはループします。
  • sinMoveZ(speed, amplitude): 波のようにZ方向へ位置を移動します。動きはループします。
  • getForward(obj): 指定したオブジェクトの前方方向を取得します。
  • calcForward(rot): 指定した回転から前方方向を計算します。

探す関数・追いかける関数

  • findPlayer(maxLength, perTick): 指定された範囲内で最も近いプレイヤーを見つけます。やや重い処理なので、perTickを指定することで「0.1秒に1回だけ」など回数を抑えることができます。自動で結果がtargetPlayerの中に入ります。
  • lookPlayer(player, yOnly): 特定のプレイヤーを向くように回転し、オプションでY軸のみを対象とします。
  • aimForwardPlayer(speed, nearLimit, moveType): ターゲットのプレイヤーに向けて前方に移動します。nearLimitを指定するとその値より近づきません。moveTypeを1にすると三次元(上下も)移動します。
  • targetPlayer: aimForwardPlayerなどの関数で狙われるターゲットのプレイヤーです。
  • targetPlayerDist(): 現在のターゲットまでの距離を取得します。

※プレイヤーの情報と比べて、他のアイテムの情報はclusterだとかなり取得に制限があることに気をつけましょう。send関数を使うなどしてかなり回りくどい情報のやりとりが必要になります。

  • findItemFirst(maxLength, perTick): 指定された範囲内で最初のアイテムを見つけます。距離が最も近いとは限りません。回数制限はfindPlayerと同じです。

通信の関数

  • send(obj,message,val): 対象のアイテム(obj)に種類が「messege」で値が「key」のメッセージを送ります。「ベータ機能」がONになっている場合、プレイヤーにメッセージを送ることも可能です。

時間の関数と変数

スクリプトでは「○○秒ごとに~~をしたい」「○○秒Aをして、次に××秒Bをして~」などを使うことが多くあります。

  • setStep(ar): ステップ用の時間を配列で設定します。[1.2]のようにすれば1.2秒ごとに~~したいとき、[1.2, 3.0, 0.5]のようにすれば「1.2秒Aをして、3.0秒Bをして、0.5秒Cをして」のようなとき便利です。
  • stepChange: 今ちょうどステップが変更されたときはONになります。「○○秒ごとに~~したい」のよきは、ee.main内でこれがONかどうかをチェックすればよいです。
  • stepNo: 今どこのステップ番号にいるかです。「1.2秒Aをして、3.0秒Bをして、0.5秒Cをして」のようなときは「stepNoが0ならA、stepNoが1ならB~」のように処理すればいいでしょう。こちらの記事の例を見てみてください。
  • tick: このアイテムができてから何秒経ったかが入っています。「1.5秒たったら破壊」のような場合はこれを使いましょう。
  • currentDelta: 前回ee.mainループが呼ばれてから何秒経ったかです。普通は0.03や0.015などの非常に小さい数が入っています。

気軽に使える変数のようなもの

  • val0: ここに入れた値は、時間が経っても消えることがありません。本来$.stateというものを使わないとデータが途中で消えてしまうのですが、それを書かなくていいぶんラクです。同様にval1、val2、val3まで4つ存在しています。

  • setFlag(no, val, lowLimit, highLimit): no番の「フラグ」の値を指定します。このとき最小値・最大値も設定可能です(しなくてもOK)。

  • getFlag(no): no番のフラグの値を得ます。

  • revFlag(no): no番のフラグの値を逆にします。ONならOFF、OFFならONになると考えてください。

テキストの関数

  • setText(text): テキストを表示します。アイテムの子に「text」という名前で、Text Viewコンポーネントがついたモノが必要です(逆にそれがあれば、わざわざ登録などする必要はありません)。

音の関数

  • setSound(num): 音一覧を登録します。Audio Set List コンポーネントをつけ、そこにsnd0、snd1、snd2のように連番で音のIDを登録しておいてください。
  • playSound(no): 登録済の音を再生します。番号は0スタートです。

乱数の関数

  • rand(val): ランダムな整数の値を得ます。例えばvalを6にすると0~5の整数がランダムで得られます。
  • randf(val): ランダムな小数の値を得ます。例えばvalを2.5にすると0~2.5の小数がランダムで得られます(厳密には2.5よりわずかに小さい値まで)。
  • pickRand(ar): arに入っているものからランダムで1つ取り出します。前回と同じものを選ばないようになっています。ただし、複数の場所でpickRandを使うと同じものが出ることもあります。

CCKコンポーネントとのやりとりの関数

どうしてもスクリプト単独ではできず、従来のCCKコンポーネントと連携が必要な処理もあります(アイテムを「プレハブ」から即座に生成する、ワールドを出た後も残るプレイヤーのレベルや経験値など)。そのときに使います。特にsignalはかなり使うはずです。
signal(key): このアイテムに「key」という名のメッセージ(Signal)を送ります。signalで起動するコンポーネントは多いです。
setVal(key, val): このアイテムに「key」という名でvalという値を設定します。
getVal(key): このアイテムから「key」という名の値を整数で取得します。
getValF(key): このアイテムから「key」という名の値を、小数で取得します。
getValB(key): このアイテムから「key」という名の値を、ONかOFFで取得します。
setPlayerVal(key, val): このアイテムの「Owner」であるプレイヤーに「key」という名でvalという値を設定します。
getPlayerVal(key): このアイテムの「Owner」であるプレイヤーから「key」という名の値を整数で取得します。
getPlayerValF(key): このアイテムの「Owner」であるプレイヤーから「key」という名の値を、小数で取得します。
getPlayerValB(key): このアイテムの「Owner」であるプレイヤーから「key」という名の値を、ONかOFFで取得します。

計算用の関数・その他の関数

  • ease(t, type, type2): 値を0から1までなめらかに変化させます。typeで動き方が変わり、type2を1にすると少しハネたような動きになります。
  • cos(val): cos(コサイン)です。0~360度で指定してください。
  • sin(val): sin(サイン)です。0~360度で指定してください。
  • floor(val): 値を切り捨てます(3.6なら3、5.62なら5など)。
  • log(val): コンソールにvalの値のログを表示します。デバッグ用。
  • destroy(lateTick): アイテムを破壊します。lateTickを指定すると、その秒数たった後に破壊します(その待機時間の間、ee.mainやee.pressなどの処理は無視されます)。

sub管理の関数

sub(いわゆるサブノード)、アイテムの子であるものを表示したり動かしたりします。subの番号は0番から始まることに注意してください。

  • setSub(ar): sub一覧を登録します。["obj","text"]のようにsubの名前を配列で指定してください。
  • getSub(no): subを取得します。
  • showSub(no): subを有効にします。
  • hideSub(no): subを無効にします。
  • getSubPos(no): subの位置を取得します。
  • getSubRot(no): subの回転を取得します。
  • setSubPos(no, x, y, z): subの位置を設定します。
  • setSubPosVec(no, pos): subの位置を3つまとめて設定します。
  • setSubRot(no, x, y, z): subの回転を設定します。
  • setSubQuat(no, rot): subの回転をまとめて設定します(クォターニオン)。
  • setSubAim(no, obj): subの回転を指定したオブジェクトに向けます。
  • moveSub(no, x, y, z): subを移動させます。1秒ごとに、指定した値だけ動きます。
  • moveSubVec(no, vec): subを3つまとめて移動させます。1秒ごとに、指定した値だけ動きます。
  • forwardSub(no, power): subを、その向いている前方に移動します。1秒ごとに、指定した値だけ動きます。

_ボタンイージー、_持ち物イージー、_乗り物イージー共通

これらの関数は、ボタン・持ち物・乗り物のいずれでも使えます。

プレイヤー関係の関数

ボタンの場合は「最後にクリック・タップ」などしたプレイヤーが対象になると考えてください。

  • warpPlayer(x, y, z, ry = null): プレイヤーの位置を指定された位置にワープさせます。オプションでYの回転も設定できます。
  • setPlayerSpeed(speed): プレイヤーの移動速度を設定します。
  • setPlayerJump(jump): プレイヤーのジャンプ速度を設定します。
  • setPlayerGravity(gravity): プレイヤーの重力を設定します。
  • playerRespawn(): プレイヤーをワールドの初期位置にリスポーンさせます。
  • getPlayerName(): プレイヤーの表示名(「vins」など)を取得します。

テキスト関係の関数

  • inputText(meta, title): プレイヤーにテキスト入力を要求します。

何かが起きたときの関数

  • ee.input(text): テキスト入力が終了したとき呼ばれます。入力されなかった場合は空文字列("")がtextに入っています。

_ボタンイージーのみ

  • ee.press(): ボタンをクリック・タップなどしたときに呼ばれます。

_持ち物イージーのみ

  • ee.grab(isOn): アイテムを持ったとき・離したときに呼ばれます。isOnがONなら持ったとき、OFFなら離したときです。
  • ee.use(isOn): アイテムを使ったとき・使うボタンを離したときに呼ばれます。isOnがONなら使ったとき、OFFならボタンを離したときです。

_乗り物イージーのみ

rideRightなど入力をチェックするにはRidableItem、Steer Item Triggerやその設定が必要です。基本的には「乗り物サンプル」を改変していくとラクでしょう。

  • ee.ride(isOn): アイテムに乗ったとき・降りたときに呼ばれます。isOnがONなら乗ったとき、OFFなら降りたときです。

  • rideRight: 右が入力されているとONになります。

  • rideLeft: 左が入力されているとONになります。

  • rideForward: 前が入力されているとONになります。

  • rideBack: 後が入力されているとONになります。

  • rideUp: 上昇(Space、↑ボタン)が入力されているとONになります。

  • rideDown: 下降(Shift、↓ボタン)が入力されているとONになります。

Discussion