a3js API Documentation - v1.3.1
    Preparing search index...

    Interface Transformer

    ObjectA3 の位置・回転・拡大率を制御するストラテジーインターフェースです。

    ObjectA3 は常に 1 つの Transformer を持ち、毎フレーム update() が呼ばれます。 TransformerObjectA3 の位置・回転・拡大率の正式な情報を管理しており、 THREE.Object3Dposition / quaternion / scale は表示用として書き込まれます。

    setPosition() などの要求メソッドは、実装によって即座に反映しないことがあります (SmoothTransformer はなめらかに補間し、物理系 Transformer は物理演算を優先します)。 Now 付きのメソッド(setPositionNow() など)は可能な限り即座に反映しなければなりません。

    独自の Transformer を実装することで、DefaultTransformerBillboardTransformerDynamicCharacterTransformer などと同様のカスタム制御が可能です。

    interface Transformer {
        transform: Transform;
        addForce(f: Vec3): void;
        addForceAtPoint(f: Vec3, p: Vec3): void;
        addOneselfToPhysics(world: PhysicsWorld): void;
        addTorque(t: Vec3): void;
        applyImpulse(i: Vec3): void;
        applyImpulseAtPoint(i: Vec3, p: Vec3): void;
        applyTorqueImpulse(ti: Vec3): void;
        getAngularVelocity(v?: Vec3): Vec3;
        getLinearVelocity(v?: Vec3): Vec3;
        init(trans: Transform, objectA3: ObjectA3): void;
        isGrounded(): boolean;
        removeOneselfFromPhysics(world: PhysicsWorld): void;
        resetForce(): void;
        resetTorque(): void;
        setAngularVelocity(angvel: Vec3): void;
        setLinearVelocity(vel: Vec3): void;
        setPosition(loc: Vec3): void;
        setPositionNow(loc: Vec3): void;
        setQuat(quat: Quat): void;
        setQuatNow(quat: Quat): void;
        setScale(scale: Vec3): void;
        setScaleNow(scale: Vec3): void;
        update(dt: number): void;
    }

    Implemented by

    Index

    Properties

    transform: Transform

    このTransformerが管理する位置・回転・拡大率。 update() の後、常に最新の状態が反映されていなければなりません。

    Methods

    • 力を加えます。物理系の Transformer のみ実装が必要です。

      Parameters

      Returns void

    • 力点を指定して力を加えます(力点はワールド座標)。物理系の Transformer のみ実装が必要です。

      Parameters

      • f: Vec3

      • p: Vec3

        力点(ワールド座標)

      Returns void

    • 物理エンジンに剛体やコライダーを登録する処理です。 物理演算が不要な Transformer は何もしない実装で構いません。

      Parameters

      Returns void

    • トルク(回転力)を加えます。物理系の Transformer のみ実装が必要です。

      Parameters

      Returns void

    • インパルス(瞬間的な力)を加えます。物理系の Transformer のみ実装が必要です。

      Parameters

      • i: Vec3

        インパルス

      Returns void

    • 力点を指定してインパルスを加えます(力点はワールド座標)。物理系の Transformer のみ実装が必要です。

      Parameters

      • i: Vec3

        インパルス

      • p: Vec3

        力点(ワールド座標)

      Returns void

    • トルクインパルス(瞬間的なトルク)を加えます。物理系の Transformer のみ実装が必要です。

      Parameters

      • ti: Vec3

        トルクインパルス

      Returns void

    • 角速度を返します(単位:ラジアン/秒)。物理系の Transformer のみ有効な値を返します。

      Parameters

      • Optionalv: Vec3

        書き込み先の Vec3(省略可)

      Returns Vec3

      角速度

    • 線速度を返します。物理系の Transformer のみ有効な値を返します。

      Parameters

      • Optionalv: Vec3

        書き込み先の Vec3(省略可)

      Returns Vec3

      線速度

    • このTransformerの初期化処理です。 ObjectA3 に登録される際に呼び出されます。 初期位置・回転・拡大率は trans から取得してください。

      Parameters

      • trans: Transform

        引き継ぐ位置・回転・拡大率

      • objectA3: ObjectA3

        制御対象の ObjectA3

      Returns void

    • このオブジェクトが地面に接地しているかどうかを返します。 キャラクター系 Transformer 以外では this.transform.loc.y <= 0 で判定して構いません。

      Returns boolean

      接地しているとき true

    • 物理エンジンから剛体やコライダーを登録解除する処理です。 物理演算が不要な Transformer は何もしない実装で構いません。

      Parameters

      Returns void

    • 加えられている力をリセットします。物理系の Transformer のみ実装が必要です。

      Returns void

    • 加えられているトルクをリセットします。物理系の Transformer のみ実装が必要です。

      Returns void

    • 角速度を設定します(単位:ラジアン/秒)。物理系の Transformer のみ実装が必要です。

      Parameters

      • angvel: Vec3

        角速度

      Returns void

    • 線速度を設定します。物理系の Transformer のみ実装が必要です。

      Parameters

      Returns void

    • 目標位置を設定します。次の update() 以降に反映されます。

      Parameters

      • loc: Vec3

        目標位置

      Returns void

    • 目標回転をクォータニオンで設定します。次の update() 以降に反映されます。

      Parameters

      • quat: Quat

        目標回転

      Returns void

    • 回転をクォータニオンで即座に設定します。

      Parameters

      • quat: Quat

        目標回転

      Returns void

    • 目標拡大率を設定します。次の update() 以降に反映されます。

      Parameters

      • scale: Vec3

        目標拡大率

      Returns void

    • 毎フレーム呼び出され、位置・回転・拡大率を更新します。 更新後の状態は必ず this.transform に反映してください。

      Parameters

      • dt: number

        経過時間(秒)

      Returns void