D'Fusion @Home Webで作成したWeb用のコンテンツはJavaScriptとのインターフェースを持っています。

どんなふうに機能するのか試してみました。


作り方

コンテンツは以下で使ったものを流用。

TOTAL IMMERSION のD'Fusionで作ったARコンテンツをWebで公開してみる

Lua -> JavaScript

D'FusionのLuaスクリプトの中で以下のオブジェクトを使います。

local webInterface = getWebInterface()
(SATCHでJavaとのインターフェースに使っていたオブジェクトのcomponentInterfaceと使い方は同じですね)

Lua側のコード

文字列を送る場合

webInterface:execJScript("Send_string", "samplestring")

JavaScript側のコード

function Send_string(){
    var receivedstring = arguments[0];
}


JavaScript -> Lua

JavaScript側のコード

function Sendcommand(){
    ExecuteCommand("com '" + "A" + "'");
}


第2引数以降が存在する場合は、引数をシングルクォーテーションで括り、半角スペースで区切って記述。

Lua側のコード

isCommand, command = webInterface:pullWebCommand()
    if isCommand == true then
        if command["CommandName"] == "com" then
            if command["arg0"] == "A" then
                --
            elseif command["arg0"] == "B" then
                --
            end
        end
    end




TOP

サンプル

以下のようなサンプルサイトを作ってみました。

Webカメラを準備(基本的にはたいてのWebカメラでOK)。

ARコンテンツとWebページのインターフェースを試してみる (Opera・Safariは未対応)

初回アクセス時にプラグインをインストールするようメッセージダイアログが出ます。





常識的なことしか書いてませんので、適当にインストールしてください。

プラグインがあればロードが開始されます。





ロードが完了してカメラ画面になったら、トラッキング画像を別Windowで開きます。


Webカメラをトラッキング画像に向けます。



バラが表示され、informationパネルが更新されます。 ここでは、Lua側でトラッキングが成功したら情報を表示するようにJavaScriptにコマンドが送られています。





デフォルトではバラは1つ表示されます。

右下のパネルはバラの表示タイプです。クリックすれば変わります。

複数のバラを表示するようにクリックすると、Lua側に表示タイプを変えるコマンドが送られます。







TOP