Wikitude SDK APIリファレンス

バージョン: 8.1.0
表示:

ObjectTrackableクラス

継承元: ARObject
モジュール: AR

ObjectTrackableは、ターゲットコレクション内の特定のターゲットにバインドされた仮想オブジェクトを表します。 ターゲットはカメラのシーンにトラッキングされ、Drawableは可視になるとすぐにターゲットに投影され、シーン内で検出されます。 ObjectTrackableは、特定のターゲットコレクション内の1つのターゲットにリンクされます。

ObjectTrackable

  • トラッカー内の1つのトラッカーと1つのターゲットに関連付けられます。
  • Drawablesを関連付けることができます。これらのDrawableは、カメラビューのObjectTrackableを表します。
  • 関連付けられたトリガーを持つことができます。特定のイベントを発生させ、これらのアクションに反応する関数を実行します。

作成時には、トラッカーへの参照と、トラッカー内のターゲットの名前を渡す必要があります。ターゲット名は、正確な名前でも正規表現でもかまいません。たとえば、「*」は指定されたトラッカーに含まれるすべてのターゲットと一致します。 この場合、onImageRecognizedイベントは認識されたターゲット名をパラメータとして渡します。

ObjectTrackableを有効または無効にすることができます(ARObject.enabledを参照)。 Enabledは、ObjectTrackableがカメラ内のオブジェクトのトラッキングで考慮され、トリガーが適切なイベントで発生することを意味します。 ObjectTrackableが無効になっている場合、トラッキング処理は考慮されず、トリガーも起動しません。 ObjectTrackableをトラッキングするためには、関連付けられたトラッカーも有効にする必要があります。

作成時に、セットアップパラメータを渡してObjectTrackableのプロパティをカスタマイズすることができます。

例:
var World = {
    [...]

    init: function initFn() {
        World.createTracker();
    },

    createTracker: function createTrackerFn() {
        this.targetCollectionResource = new AR.TargetCollectionResource("assets/firetruck_map.wto", {
        });

        this.tracker = new AR.ObjectTracker(this.targetCollectionResource, {
            onError: function(errorMessage) {
                alert(errorMessage);
            }
        });

        this.objectTrackable = new AR.ObjectTrackable(this.tracker, "*", {
            drawables: {
                cam: [...]
            },
            onObjectRecognized: this.objectRecognized,
            onObjectLost: this.objectLost,
            onError: function(errorMessage) {
                alert(errorMessage);
            }
        });
    },

    objectRecognized: function objectRecognizedFn() {
        [...]
    },

    objectLost: function objectLostFn() {
        [...]
    }
}

World.init();

コンストラクター

ObjectTrackable

(
  • tracker
  • targetName
  • options
)

パラメーター:

  • tracker ObjectTracker

    ターゲットが格納されているObjectTracker

  • targetName String

    トラッカー内のターゲット名

  • options Object オプション

    追加のオブジェクトプロパティをカスタマイズするためのパラメーター。

    設定可能なプロパティは以下のとおりです。

    • enabled (defaults to true) Boolean オプション
    • renderingOrder (defaults to 0) Number オプション
    • onClick Function オプション
    • onDragBegan Function オプション
    • onDragChanged Function オプション
    • onDragEnded Function オプション
    • onPanBegan Function オプション
    • onPanChanged Function オプション
    • onPanEnded Function オプション
    • onRotationBegan Function オプション
    • onRotationChanged Function オプション
    • onRotationEnded Function オプション
    • onScaleBegan Function オプション
    • onScaleChanged Function オプション
    • onScaleEnded Function オプション
    • drawables.cam Drawable[] オプション
    • onObjectRecognized Function オプション
    • onObjectLost Function オプション
    • enableExtendedTracking Boolean optional
    • extendedTarget String optional
    • onExtendedTrackingQualityChanged Function optional

メソッド

destroy

()

継承元: ARchitectObject

オブジェクトを破棄します。

drawables.addCamDrawable

(
  • drawable
  • position
)

継承元: ARObject

カメラのARObjectにDrawablesを追加します。

パラメーター:

  • drawable Drawable | Drawable[]

    追加する拡張オブジェクト。単一、または複数の拡張オブジェクトを配列で指定できます。

  • position Number オプション

    拡張オブジェクトを追加する配列内の位置。指定しない場合は、配列の最後に追加されます。整数にする必要があります。

drawables.removeCamDrawable

(
  • drawable|position
)

継承元: ARObject

拡張オブジェクトをARObjectから削除します。

パラメーター:

  • drawable|position Drawable | [Drawable] | Number

    単一、または複数の拡張オブジェクトを配列で指定すると、それらが配列から削除されます。整数を指定すると、指定した位置にある拡張オブジェクトが削除されます。

isVisible

() Boolean

継承元: ARObject

ARObjectの現在の可視/不可視状態を返します。ARObjectのロケーションまたはターゲットの少なくとも1つが、現在認識されている場合、そのARObjectは可視状態にあると定義されます。

戻り値:

Boolean:

ARObjectが現在認識されている場合はtrue。認識されていない場合はfalse。

stopExtendedTracking

()

直ちに拡張トラッキングを停止します。ターゲットオブジェクトがすでにカメラビューから外れている場合は、シーンのトラッキングを停止します。拡張トラッキングを再開することは、関連付けられたターゲットオブジェクトの1つが再び認識された場合にのみ可能です。

プロパティ

destroyed

Boolean

継承元: ARchitectObject

オブジェクトがすでに破棄されているかどうかを示します。

drawables.cam

Drawable[]

継承元: ARObject

カメラビュー内で使用される拡張オブジェクト。

拡張オブジェクトが、配列の添え字順に表示されます。順序が後の拡張オブジェクトは、先に描画された拡張オブジェクトの上に重なります。

注:

配列の内容を[]演算子によって操作しないでください。それらの変更がアプリケーションに反映されるかどうかは保証されません。このプロパティを操作するときは、arobject.drawables.addCamDrawable()とarobject.drawables.removeCamDrawable()を使用するか、arobject.drawables.cam = new Array(...);を使用して直接設定してください。

enabled

Boolean

継承元: ARObject

ARObjectを有効または無効にするブール値のフラグ。

デフォルト値: true

enableExtendedTracking

Boolean

このプロパティがtrueに設定されている場合、このObjectTrackableは拡張トラッキングモードをトリガします。拡張トラッキングモードでは、トラッカーは3Dシーンをトラッキングし、ターゲットがカメラビューから外れてもアクティブ状態を維持します。このプロパティは読み取り専用で、インスタンス生成時にのみ設定できます。

extendedTarget

String

このプロパティを使用して、拡張ターゲットとして扱われるObjectTrackableのターゲットを定義します。ワイルドカードを使用してtargetNameを定義する場合、このプロパティは同じワイルドカード設定( '*'と '?')も受け入れます。このプロパティはいつでも変更できます。進行中の拡張トラッキングが失われたり、stopExtendedTracking関数が呼び出されるとすぐに変更が反映されます。

onExtendedTrackingQualityChanged

Function

この関数が定義されている場合、拡張トラッキングの品質が変更されるたびに呼び出されます。拡張トラッキングの品質は、3つの値で定義されます:

    * -1 拡張トラッキングの品質は悪く、拡張トラッキングはほとんど機能しない可能性があります。
    * 0 拡張トラッキングの品質はそれほど良好ではありませんが、拡張トラッキングが機能する可能性があります。
    * 1 拡張トラッキングの品質は良好であり、拡張トラッキングは十分に機能します。
    このコールバック関数には3つのパラメーターがあることに注意してください。 1つ目のパラメーターはトラッキング中の拡張ターゲットの名前で、2つ目のパラメーターは以前の拡張トラッキングの品質で、最後は現在の拡張トラッキングの品質です。

renderingOrder

Number

継承元: ARObject

異なるARObjectの拡張オブジェクトが重なる場合があります。その場合、renderingOrderによって、そのARObject間の拡張オブジェクトのレンダリング順序が決まります。renderingOrder値の高いARObjectに属する拡張オブジェクトが、renderingOrder値の低いARObjectに属する拡張オブジェクトの前面に描画されます。2つのARObjectに同じrenderingOrderが設定されている場合、それらの拡張オブジェクトは距離に基づいてレンダリングされ、ユーザーに近い方のオブジェクトが遠い方のオブジェクトより前面に描画されます。
たとえば、特定のARObjectの拡張オブジェクトを最前面に移動する場合は、対応するARObjectのrenderingOrder値を非常に大きい値に設定します。

同じARObject内の拡張オブジェクトの描画順序については、Drawable2D.zOrderを参照してください。

整数にする必要があります。

デフォルト値: 0

targetName

String

ターゲットコレクション内の参照先のターゲットの名前。これは、ObjectTrackableがどのターゲットイメージに反応するかを定義します。値は、イメージの実際の名前か、または複数に一致するワイルドカードのいずれかです。サポートしているワイルドカードは*と?で正規表現と同じ方法で使用することができます。このプロパティは読み取り専用で、作成時にのみ設定できます。

tracker

ObjectTracker

このObjectTrackerによって参照されるターゲットを含むObjectTracker。このプロパティは読み取り専用で、作成時にのみ設定できます。

イベント

onClick

継承元: ARObject

ARObjectのDrawableのいずれかがクリックされ、クリックされたDrawablesのonClick()トリガ(他のARObjectによって参照される可能性もあります)がクリックチェインを終了するように設定されている時に実行されます。ARObject.onClick()は、Drawable.onClick()トリガーが実行された後に実行されます。

クリックによって複数のARObjectがヒットした場合、実行の順序は、ARObjectのクリックトリガーが最初に実行された状態で、ARObjectのユーザーまでの距離によって定義されます。

関数の戻り値は、このARObjectに対してonClick()関数が実行された後、キュー内の次のARObjectに対してonClick()を実行し続けるかどうかを決定します。キュー内の最後のARObjectが依然としてクリックキューを継続することを要求した場合、context.onScreenClick()が実行されます。

関数の戻り値は、次に何をするかを決定します。falseの場合、このARObjectでクリックキューを停止しません。したがって、次のARObjectのonClick()関数が実行されます。戻り値が設定されていないか、あるいはこのARObjectに対して関数が定義されていない場合はデフォルト値になります。trueの場合、キューの実行は現在のARObjectで停止し、ARObjectsはonClick()呼び出しを受け取りません。

onDragBegan

継承元: ARObject

ユーザーが1本の指で1つ以上のDrawableをドラッグし始めたときに実行されます。trueを返すことでDrawableはイベントの伝播を終了しません。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。

イベントペイロード:

  • xNormalized Number

    開始タッチ位置と更新タッチ位置[-1,1]との間のX軸上の距離。ドラッグジェスチャへの変更が発生していない場合、onDragBeganは常に0です。

  • yNormalized Number

    開始タッチ位置と更新タッチ位置[-1,1]との間のY軸上の距離。ドラッグジェスチャへの変更が発生していない場合、onDragBeganは常に0です。

onDragChanged

継承元: ARObject

ユーザーが1本の指で少なくとも1つのDrawableをドラッグすると実行されます。trueを返すことでDrawableはイベントの伝播を終了しません。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。

イベントペイロード:

  • xNormalized Number

    開始タッチ位置と更新タッチ位置[-1,1]との間のX軸上の距離。

  • yNormalized Number

    開始タッチ位置と更新タッチ位置[-1,1]との間のY軸上の距離。

onDragEnded

継承元: ARObject

ユーザーが1本の指で1つ以上のDrawableをドラッグを停止したときに実行されます。trueを返すことでDrawableはイベントの伝播を終了しません。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。

イベントペイロード:

  • xNormalized Number

    開始タッチ位置と更新タッチ位置[-1,1]との間のY軸上の距離。onDragChangedで受信した最新の距離と常に同じ

  • yNormalized Number

    開始タッチ位置と更新タッチ位置[-1,1]との間のY軸上の距離。onDragChangedで受信した最新の距離と常に同じ

onObjectLost

ObjectTrackableの可視性が可視から不可視に変更されたときに実行されます。

このトリガーのデフォルト値はnullであり、トリガーが発生したときに何もアクションは実行されません。開発者は、カスタム関数をonObjectLostに割り当てることによって、カスタム機能を追加できます。

イベントペイロード:

  • targetName String

    視野から外れたターゲットの名前を保持します。

onObjectRecognized

ObjectTrackableの可視性が可視から不可視に変更されたときに実行されます。

このトリガーのデフォルト値はnullであり、トリガーが発生したときに何もアクションは実行されません。開発者は、カスタム関数をonObjectRecognizedに割り当てることにより、カスタム機能を追加できます。

イベントペイロード:

  • targetName String

    認識されたターゲットの名前を保持します。targetNameにワイルドカードを組み合わせて使用します。

onPanBegan

継承元: ARObject

ユーザーが2本の指で1つ以上のDrawableをドラッグし始めたときに実行されます。trueを返すことでDrawableはイベントの伝播を終了しません。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。

イベントペイロード:

  • xNormalized Number

    開始タッチ位置と更新タッチ位置[-1,1]との間のX軸上の距離。パンジェスチャへの変更が発生していない場合、onPanBeganは常に0です。第1のタッチと第2のタッチとの間の中間点はスケールと回転のジェスチャーの同時動作のための距離の計算に使用されます。

  • yNormalized Number

    開始タッチ位置と更新タッチ位置[-1,1]との間のY軸上の距離。パンジェスチャへの変更が発生していない場合、onPanBeganは常に0です。第1のタッチと第2のタッチとの間の中間点はスケールと回転のジェスチャーの同時動作のための距離の計算に使用されます。

onPanChanged

継承元: ARObject

ユーザーが2本の指で少なくとも1つのDrawableをドラッグすると実行されます。trueを返すことでDrawableはイベントの伝播を終了しません。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。

イベントペイロード:

  • xNormalized Number

    開始タッチ位置と更新タッチ位置[-1,1]との間のX軸上の距離。第1のタッチと第2のタッチとの間の中間点はスケールと回転のジェスチャーの同時動作のための距離の計算に使用されます。

  • yNormalized Number

    開始タッチ位置と更新タッチ位置[-1,1]との間のY軸上の距離。第1のタッチと第2のタッチとの間の中間点はスケールと回転のジェスチャーの同時動作のための距離の計算に使用されます。

onPanEnded

継承元: ARObject

ユーザーが2本の指で1つ以上のDrawableをドラッグして停止したときに実行されます。trueを返すことでDrawableはイベントの伝播を終了しません。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。

イベントペイロード:

  • xNormalized Number

    開始タッチ位置と更新タッチ位置[-1,1]との間のX軸上の距離。onPanChangedで受信した最新の距離と常に同じです。第1のタッチと第2のタッチとの間の中間点はスケールと回転のジェスチャーの同時動作のための距離の計算に使用されます。

  • yNormalized Number

    開始タッチ位置と更新タッチ位置[-1,1]との間のY軸上の距離。onPanChangedで受信した最新の距離と常に同じです。第1のタッチと第2のタッチとの間の中間点はスケールと回転のジェスチャーの同時動作のための距離の計算に使用されます。

onRotationBegan

継承元: ARObject

ユーザーが2本の指で少なくとも1つのDrawableの回転を開始したときに実行されます。 trueを返すことでDrawableはイベントの伝播を終了しません。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。

イベントペイロード:

  • angle Number

    開始タッチ位置によって定義された線と更新されたタッチ位置[0,360]によって定義される線との間の角度でのCCW角度。回転ジェスチャの変更が発生していない場合、onRotationBeganでは常に0です。

onRotationChanged

継承元: ARObject

ユーザーが2本の指で1つ以上のDrawableを回転させたときに実行されます。trueを返すことでDrawableはイベントの伝播を終了しません。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。

イベントペイロード:

  • angle Number

    開始タッチ位置によって定義される線と更新されたタッチ位置[0,360]によって定義される線との間の角度でのCCW角度。

onRotationEnded

継承元: ARObject

ユーザーが2本の指で少なくとも1つのDrawableの回転を停止したときに実行されます。trueを返すことでDrawableはイベントの伝播を終了しません。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。

イベントペイロード:

  • angle Number

    開始タッチ位置によって定義された線と更新されたタッチ位置[0,360]によって定義される線との間の角度でのCCW角度。onRotationChangedで受け取った最新の角度と常に同じ。

onScaleBegan

継承元: ARObject

ユーザーが2本の指で少なくとも1つのDrawableの拡大縮小を開始したときに実行されます。trueを返すことでDrawableはイベントの伝播を終了しません。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。

イベントペイロード:

  • scale Number

    スケール値は、開始タッチ間の距離にわたる更新されたタッチ間の距離の比[0、inf]を定義します。スケールジェスチャへの変更が発生していない場合、onScaleBeganは常に1です。

onScaleChanged

継承元: ARObject

ユーザーが2本の指で少なくとも1つのDrawableの拡大縮小したときに実行されます。trueを返すことでDrawableはイベントの伝播を終了しません。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。

イベントペイロード:

  • scale Number

    開始タッチと更新されたタッチ間の距離の比を定義した[0、inf]のスケール値。

onScaleEnded

継承元: ARObject

ユーザーが2本の指で少なくとも1つのDrawableの拡大縮小を停止したときに実行されます。trueを返すことでDrawableはイベントの伝播を終了しません。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。

イベントペイロード:

  • scale Number

    開始タッチと更新されたタッチ間の距離の比を定義した[0、inf]のスケール値。onScaleChangedで受信した最新のスケールと常に同じ