プレイヤーを外部から操作するためのハンドルです。 プレイヤーのアバターを変更してもPlayerHandleは不変です。 ユーザーは入室ごとに別のプレイヤーとして取り扱われます。 このため、再入室したユーザーに対しては再度PlayerHandleを取得しなおす必要があります。

イベントでは、ゴーストやグループビューイングの参加者はスクリプトから取得できません。 詳細はドキュメントを参照してください。

Hierarchy

  • PlayerHandle

Properties

id: string

空間内のプレイヤーを一意に表すIDの文字列表現です。 idが等しいPlayerHandleは同一のプレイヤーを指し示します。 この値は同じユーザーでも入室ごとに異なります。

idfc: string

クリエイターがユーザーを一意に認識するために利用できる文字列です。 この文字列は32文字で、使われる文字は 0123456789abcdef です。 この文字列はそのアイテム・ワールドをアップロードしたアカウントとユーザーのアカウントとの組によって決定されます。ユーザーの使用するデバイスやスペースによっては変化しません。 プレイヤーが存在しないとき、nullを返します。プレイヤーの存在はexistsで確認できます。

この文字列はコンテンツ体験を向上する目的で利用できます。当社が不適切と判断した場合、予告なく利用を制限させていただく場合もあります。

userDisplayName: string

プレイヤーの表示名です。 ユーザーは自分の表示名を変更することができ、異なるユーザーが同じ表示名を使うことができます。 プレイヤーが存在しないとき、nullを返します。プレイヤーの存在はexistsで確認できます。

userId: string

プレイヤーのユーザーIDです。 ユーザーは自分のユーザーIDを変更することができますが、 異なるユーザーが同じユーザーIDを同時にもつことはありません。 プレイヤーが存在しないとき、nullを返します。プレイヤーの存在はexistsで確認できます。

Methods

  • Beta

    プレイヤーに速度を加えます。 プレイヤーの最終的な移動速度は、加えられた速度とプレイヤー入力の両方から決定されます。 プレイヤーが地面に接している間、加えられた速度は摩擦と似たような原理で減速し続けます。

    頻度の制限:

    ひとつのアイテムは、最大で10回/秒まで他のハンドルに対して操作することができます。 瞬間的にこの制限を超えることはできますが、平均回数はこの制限を下回るようにしてください。 制限を超えている場合、ClusterScriptError (rateLimitExceeded)が発生し操作は失敗します。

    距離の制限:

    このメソッドは、このスクリプトを実行しているアイテムから 30メートル以内のプレイヤーに対してのみ実行できます。 制限を超えている場合、ClusterScriptError (distanceLimitExceeded)が発生し操作は失敗します。

    Parameters

    • velocity: Vector3

      加えられる速度 (グローバル座標)

    Returns void

  • プレイヤーが入室中ならtrueを返し、退室済みならfalseを返します。 プレイヤーが通信の不具合などで一時的に非表示になっている場合もtrueを返します。

    Returns boolean

  • Beta

    プレイヤーのヒューマノイドボーンの位置を取得します。 値はグローバル座標です。 アバターのロードが完了していない場合や、アバターにボーンが存在しない場合はnullが返されます。

    距離の制限:

    このメソッドは、このスクリプトを実行しているアイテムから 30メートル以内のプレイヤーに対してのみ実行できます。 制限を超えている場合、ClusterScriptError (distanceLimitExceeded)が発生し操作は失敗します。

    Parameters

    Returns null | Vector3

  • Beta

    プレイヤーのヒューマノイドボーンの回転を取得します。 値はグローバル座標です。 アバターのロードが完了していない場合や、アバターにボーンが存在しない場合はnullが返されます。

    距離の制限:

    このメソッドは、このスクリプトを実行しているアイテムから 30メートル以内のプレイヤーに対してのみ実行できます。 制限を超えている場合、ClusterScriptError (distanceLimitExceeded)が発生し操作は失敗します。

    Parameters

    Returns null | Quaternion

  • プレイヤーの位置(グローバル座標)を取得します。取得に失敗したときはnullを返します。

    距離の制限:

    このメソッドは、このスクリプトを実行しているアイテムから 30メートル以内のプレイヤーに対してのみ実行できます。 制限を超えている場合、ClusterScriptError (distanceLimitExceeded)が発生し操作は失敗します。

    Returns null | Vector3

  • プレイヤーの向き(グローバル座標)を取得します。取得に失敗したときはnullを返します。

    距離の制限:

    このメソッドは、このスクリプトを実行しているアイテムから 30メートル以内のプレイヤーに対してのみ実行できます。 制限を超えている場合、ClusterScriptError (distanceLimitExceeded)が発生し操作は失敗します。

    Returns null | Quaternion

  • プレイヤーに文字列の入力を要求します。

    入力要求を受けたプレイヤーには文字入力用のUIが表示されます。 プレイヤーが入力した文字列はClusterScript.onTextInputに設定したコールバックで受け取ることができます。 プレイヤーが入力できる文字列は、サイズが1000byte以下かつ文字数が250以下(ただしASCIIは1文字当たり0.5文字で換算します)に制限されます。 プレイヤーが入力要求に応答できない場合、送られた要求は自動的に拒否されます。 例えば、入力要求を受け取って文字列を入力している最中に新たに入力要求を受け取った場合はこれに該当します。 また、プレイヤーは入力要求を意図的に拒否することが可能です。 これらの入力要求の成否はTextInputStatusで表されます。

    Example

    $.onInteract(player => {
    player.requestTextInput("ask_name", "Hi, what is your name?");
    });

    頻度の制限:

    ひとつのアイテムは、最大で10回/秒まで他のハンドルに対して操作することができます。 瞬間的にこの制限を超えることはできますが、平均回数はこの制限を下回るようにしてください。 制限を超えている場合、ClusterScriptError (rateLimitExceeded)が発生し操作は失敗します。

    距離の制限:

    このメソッドは、このスクリプトを実行しているアイテムから 30メートル以内のプレイヤーに対してのみ実行できます。 制限を超えている場合、ClusterScriptError (distanceLimitExceeded)が発生し操作は失敗します。

    Parameters

    • meta: string

      100 byte以下の文字列です。複数のrequestTextInput呼び出しを識別するために利用できます。空文字や、同じ文字列を複数回指定しても問題ありません。

    • title: string

      入力要求を受けたプレイヤーの画面に表示される文字列です。200 byte以下である必要があります。

    Returns void

  • プレイヤーに設定された移動速度、ジャンプ速度、重力をリセットします。

    頻度の制限:

    ひとつのアイテムは、最大で10回/秒まで他のハンドルに対して操作することができます。 瞬間的にこの制限を超えることはできますが、平均回数はこの制限を下回るようにしてください。 制限を超えている場合、ClusterScriptError (rateLimitExceeded)が発生し操作は失敗します。

    距離の制限:

    このメソッドは、このスクリプトを実行しているアイテムから 30メートル以内のプレイヤーに対してのみ実行できます。 制限を超えている場合、ClusterScriptError (distanceLimitExceeded)が発生し操作は失敗します。

    Returns void

  • プレイヤーをリスポーンさせます。

    頻度の制限:

    ひとつのアイテムは、最大で10回/秒まで他のハンドルに対して操作することができます。 瞬間的にこの制限を超えることはできますが、平均回数はこの制限を下回るようにしてください。 制限を超えている場合、ClusterScriptError (rateLimitExceeded)が発生し操作は失敗します。

    距離の制限:

    このメソッドは、このスクリプトを実行しているアイテムから 30メートル以内のプレイヤーに対してのみ実行できます。 制限を超えている場合、ClusterScriptError (distanceLimitExceeded)が発生し操作は失敗します。

    Returns void

  • プレイヤーにかかる重力加速度(単位:m/s^2)を変更します。初期値は-9.81です。

    頻度の制限:

    ひとつのアイテムは、最大で10回/秒まで他のハンドルに対して操作することができます。 瞬間的にこの制限を超えることはできますが、平均回数はこの制限を下回るようにしてください。 制限を超えている場合、ClusterScriptError (rateLimitExceeded)が発生し操作は失敗します。

    距離の制限:

    このメソッドは、このスクリプトを実行しているアイテムから 30メートル以内のプレイヤーに対してのみ実行できます。 制限を超えている場合、ClusterScriptError (distanceLimitExceeded)が発生し操作は失敗します。

    Parameters

    • gravity: number

      重力加速度

    Returns void

  • Beta

    プレイヤーのアバターモデルの姿勢を、指定したHumanoidPoseで上書きします。 姿勢の上書き方法についてはoptionで指定することができます。optionで指定できるプロパティについては SetHumanoidPoseOption を参照してください。

    引数のoptionは省略することができます。省略した場合にはデフォルトの設定値が用いられます。

    HumanoidPoseのrootPosition, rootRotation, muscleのうち、指定されていない要素については上書きされません。 また、指定されていない要素についてはoption.timeoutSeconds、および option.timeoutTransitionSeconds は挙動に影響を与えず、上書きされない状態が継続します。 姿勢の上書きは、次にsetHumanoidPoseが呼び出される、もしくはoptionで指定したtimeoutで姿勢が解除されるまで継続します。

    引数にnullまたは空のHumanoidPoseを渡すことで、setHumanoidPoseによるポーズの上書きを全て解除することができます。 引数にnullまたは空のHumanoidPoseをoptionと一緒に渡した場合、option.transitionSeconds かけて解除された状態に遷移します。

    setHumanoidPoseによるポーズの上書きは、エモートやRidableItemによる姿勢の変更よりも優先されます。

    VRではプレイヤーが掴んでいるアイテムは指定されたポーズに追従しますが、1人称のカメラやUI操作などは影響を受けません。

    Example

    // MyAnimationというIdのHumanoidAnimationを取得する。
    const animation = $.humanoidAnimation("MyAnimation");
    // ポーズを上書きする。
    playerHandle.setHumanoidPose(animation.getSample(0));
    // 上書きを解除する。
    playerHandle.setHumanoidPose(null);
    const animation = $.humanoidAnimation("MyAnimation");
    const interval = 0.1;
    const animationLength = animation.getLength();

    // Interactした人をアニメーションの対象にする
    $.onInteract(player => {
    if ($.state.player) {
    // すでに対象がいるときは解除
    $.state.player.setHumanoidPose(null);
    }
    $.state.animationTime = 0;
    $.state.waitingTime = 0;
    $.state.player = player;
    });

    $.onUpdate(deltaTime => {
    let player = $.state.player;
    if (!player || !player.exists()) return;

    let animationTime = $.state.animationTime + deltaTime;
    if (animationTime > animationLength) {
    animationTime = animationTime % animationLength;
    }
    let waitingTime = $.state.waitingTime + deltaTime;
    if (waitingTime >= interval) {
    let pose = animation.getSample(animationTime);
    // 前回送信時からの時間分だけかけて姿勢を遷移させる
    player.setHumanoidPose(pose, {transitionSeconds: waitingTime});
    waitingTime = 0;
    }
    $.state.animationTime = animationTime;
    $.state.waitingTime = waitingTime;
    });

    頻度の制限:

    ひとつのアイテムは、最大で10回/秒まで他のハンドルに対して操作することができます。 瞬間的にこの制限を超えることはできますが、平均回数はこの制限を下回るようにしてください。 制限を超えている場合、ClusterScriptError (rateLimitExceeded)が発生し操作は失敗します。

    距離の制限:

    このメソッドは、このスクリプトを実行しているアイテムから 30メートル以内のプレイヤーに対してのみ実行できます。 制限を超えている場合、ClusterScriptError (distanceLimitExceeded)が発生し操作は失敗します。

    Parameters

    Returns void

  • プレイヤーのジャンプ速度の倍率を変更します。初期値は1です。

    頻度の制限:

    ひとつのアイテムは、最大で10回/秒まで他のハンドルに対して操作することができます。 瞬間的にこの制限を超えることはできますが、平均回数はこの制限を下回るようにしてください。 制限を超えている場合、ClusterScriptError (rateLimitExceeded)が発生し操作は失敗します。

    距離の制限:

    このメソッドは、このスクリプトを実行しているアイテムから 30メートル以内のプレイヤーに対してのみ実行できます。 制限を超えている場合、ClusterScriptError (distanceLimitExceeded)が発生し操作は失敗します。

    Parameters

    • jumpSpeedRate: number

      ジャンプ速度の倍率

    Returns void

  • プレイヤーの移動速度の倍率を変更します。初期値は1です。

    頻度の制限:

    ひとつのアイテムは、最大で10回/秒まで他のハンドルに対して操作することができます。 瞬間的にこの制限を超えることはできますが、平均回数はこの制限を下回るようにしてください。 制限を超えている場合、ClusterScriptError (rateLimitExceeded)が発生し操作は失敗します。

    距離の制限:

    このメソッドは、このスクリプトを実行しているアイテムから 30メートル以内のプレイヤーに対してのみ実行できます。 制限を超えている場合、ClusterScriptError (distanceLimitExceeded)が発生し操作は失敗します。

    Parameters

    • moveSpeedRate: number

      移動速度の倍率

    Returns void

  • プレイヤーの位置を変更します。

    頻度の制限:

    ひとつのアイテムは、最大で10回/秒まで他のハンドルに対して操作することができます。 瞬間的にこの制限を超えることはできますが、平均回数はこの制限を下回るようにしてください。 制限を超えている場合、ClusterScriptError (rateLimitExceeded)が発生し操作は失敗します。

    距離の制限:

    このメソッドは、このスクリプトを実行しているアイテムから 30メートル以内のプレイヤーに対してのみ実行できます。 制限を超えている場合、ClusterScriptError (distanceLimitExceeded)が発生し操作は失敗します。

    Parameters

    • position: Vector3

      足元の中心位置の移動先 (グローバル座標)

    Returns void

  • Beta

    プレイヤーにポストプロセスエフェクトを設定します。

    このメソッドを呼び出すたびに、以前設定されていたPostProcessEffectsは新しいPostProcessEffectsで上書きされます。

    nullを設定するとすべてのエフェクトがクリアされます。

    頻度の制限:

    ひとつのアイテムは、最大で10回/秒まで他のハンドルに対して操作することができます。 瞬間的にこの制限を超えることはできますが、平均回数はこの制限を下回るようにしてください。 制限を超えている場合、ClusterScriptError (rateLimitExceeded)が発生し操作は失敗します。

    距離の制限:

    このメソッドは、このスクリプトを実行しているアイテムから 30メートル以内のプレイヤーに対してのみ実行できます。 制限を超えている場合、ClusterScriptError (distanceLimitExceeded)が発生し操作は失敗します。

    Example

    // Interactするととても眩しくなるアイテム
    $.onInteract((player) => {
    const effects = new PostProcessEffects();
    effects.bloom.active = true;
    effects.bloom.threshold.setValue(0.5);
    effects.bloom.intensity.setValue(10.0);
    player.setPostProcessEffects(effects);
    });

    Parameters

    Returns void

  • プレイヤーの向きを変更します。 体の向きは鉛直のままで、y軸回転以外は動きません

    頻度の制限:

    ひとつのアイテムは、最大で10回/秒まで他のハンドルに対して操作することができます。 瞬間的にこの制限を超えることはできますが、平均回数はこの制限を下回るようにしてください。 制限を超えている場合、ClusterScriptError (rateLimitExceeded)が発生し操作は失敗します。

    距離の制限:

    このメソッドは、このスクリプトを実行しているアイテムから 30メートル以内のプレイヤーに対してのみ実行できます。 制限を超えている場合、ClusterScriptError (distanceLimitExceeded)が発生し操作は失敗します。

    Parameters

    • rotation: Quaternion

      プレイヤーの向き (グローバル座標)

    Returns void

Generated using TypeDoc