スポンサー リンク
スポンサー リンク
SATCHでアニメーション表示のシナリオを都度作成するのは面倒なので、雛形を作ってみました。

Liteから初めて、フルバージョンのSATCHでテクスチャーの定義を1からするとかLuaにコードを追加するとなると、画像の枚数が多いと鬼のように面倒です。

雛形なら読み込んで、必要に応じて変更・追加・削除するだけなので楽.....かもしれません。

この雛形にはまだトラッキングのデータはないので、画像を準備してトラッキングデータの作成は1から行います。

その他、2Dデータの作り方

SATCH ARでアニメーション表示をやってみる(その1)

動画データを使ってSATCHのアニメーション表示用2Dデータを作成

MMDを使ってSATCHのアニメーション表示用2Dデータを作成

TOP

使い方

256x256用雛形はこれ

512x512用雛形はこれ

圧縮ファイルの中身はこんな感じ。





SATCH Studio 起動前

    フォルダー内のproject.dfsを開いて、C:\sampleと書かれたパスを正規のパスに変更。

    フォルダー内のproject.dpdを開いてcom.kddi.satch.xxxとなっているアプリケーション
    IDを変更。
    SATCH Viewerを使うなら、com.kddi.ar.satch.satchviewerです。




SATCH Studio を起動



トラッキング準備

    画像(jpg)を準備。画像の縦・横サイズをcm単位で確認。

    Tools -> Computer Visionを選ぶ。

    Mode -> Lite
    User level -> Advanced

    TargetのCreateボタンをクリック。

    Plane Sizeを上の縦・横サイズでセット。

    Imageで画像を読み込んで、Generate Classfieresをクリック。

    Tracking Managerでチェックしてokなら、Save As..で保存。
    保存先はtrackerフォルダーです。

透過画像の準備

    画像名は、to_x.pngという書式。

    フリーのリネイムアプリを使えば便利です。

    サイズは256x256のpng形式です。

    最初の画像(to_1.jpg)はフォルダー内のmedia/textureに置きます。

    全画像を、フォルダー内のTextureフォルダーに置きます。

    雛形では100枚のテクスチャが使えるようになっています。

    必要に応じて追加・削除します。

    変更の場合

       to_x.png形式の名前で上書き。

    追加の場合

       Add -> 2D Elements -> Textureで登録

       Nameはtexture_で後ろに数字を入れて連番にします。

       Lua(main)内では、配列にセットします。

       もし追加の数が多くて面倒だなあ、という場合はpdpファイルを開いて
       直接記述するという手もあります。
       間違うとプロジェクトが開かなくなるという危険性もあるので、バック
       アップをとってからやりましょう。

    削除の場合

      Solution ExplorerのNameパネルの中の画像名を右クリックしてExclude。

      Outlinerのtexture名を右クリックしてDelete。

音声の使用

    現在サンプルのサウンドを1個使えるようになっています。

    サウンドの形式はogg。

    変更の場合

      フォルダー内のreadtgo.oggと交換。

      Hieraruchy managerでreadygoというサウンド名を右クリックしてExclude。

      Add -> Effects -> Soundで新しいサウンド登録。

      Lua(main)内でsoundのオブジェクト名を変更。

    追加の場合

      Add -> Effects -> Soundで新しいサウンド登録。

      Lua(main)内でsoundを定義。

    削除の場合

      Hieraruchy managerでreadygoというサウンド名右クリックしてExclude。

      Solution explorer内でoggのサウンド名で検索して対象コードをを右クリックしてExclude。

      Lua(main)内でsoundを検索して対象コードを削除

アニメーションの準備

    mainのLuaを開く。

    サウンドは以下のような形で定義されています。

    local sound = Sound(scene:getObjectByName("readygo"));

    Textureは以下のような形で定義されています。

    max_indexは画像数-1の値です。

    local t_array = {}
    local max_index = 99
    local temp_index = 1
    for i = 0,max_index do
      texture_name = "texture_" .. temp_index
      t_array[i] = Texture(scene:getObjectByName(texture_name))
      temp_index = temp_index + 1
    end

   

    動きを制御する変数。

    local temp_num = 1
    local index = 0

    実際の動きのコードの部分はsetTextureToPlaneで検索してみてください。

    repeatループ内で更新されるごとに以下のようなタイミングでテクスチャ変更やサウンドが発行されています。

    以下のコードでは、102ループ後に更新開始。1回ループが更新するたびに書き換えを実行。

    画像の枚数は、indexの値で調整。

   
temp_num = temp_num + 1
            
            --sound start
            if temp_num == 50 then
                sound:play()
            end
            
            --animation start
            if temp_num >= 102 and index <=99 then
                
                setTextureToPlane(targets[luaIndex]['plane2d'], t_array[index])
                    
                index = index + 1
                
            end


    以下のコードでは、102ループ後に更新開始。2回ループが更新するたびに書き換えを実行。

    偶数回目のループで実行するようになってます。

    これで、よりゆっくりした動きになります。

   
--animation start
            if temp_num >= 102 and index <=max_index then
                jouyo = temp_num % 2
                if jouyo == 0 then
                    setTextureToPlane(targets[luaIndex]['plane2d'], t_array[index])
                    
                    index = index + 1
                end
            end


最後にシナリオをエクスポートする際には、すべてのデータがincludeされていることを確認しておいてください。

TOP

初音ミク・モデルを使って、512x512でシナリオを作ってみる

サンプル(pmd)
サンプル(vmd)

サンプル(vmd)は商用利用以外なら使用可のデータです。

VMDViewを起動し座標軸表示を消し、pmdとvmdを読み込みます。背景をブルーに設定。



各フレームをbmp画像として出力します。

ここまでの作業はMMDを使ってSATCHのアニメーション表示用2Dデータを作成 を参照してください。

サンプルの場合、出力した画像は116枚ありますが、最初の16枚は静止状態で同じ画像なので削除します。



画像名はX_F30_[0_115]_000016.bmpからX_F30_[0_115]_000115.bmpまでの連番になっていますが、これをto_1.bmpからの連番に振りなおします。

フリーのリネームソフト(例:Flexible Renamer)などを使えば楽です。



次にimageMgickで背景透過画像に変換します。

DOS窓を開いて、画像保存フォルダーに移動して以下の2つのコマンドを実行。

mogrify -format png *.bmp

mogrify -transparent blue *.png




トラッキング用の画像を準備します。

変化があって色数の多いものなら、何でもいいです。

ファイル名の拡張子は小文字のjpgにします。




音声を準備します。

音声はフリーの素材を使います。

こちらのサイトが便利です。

ダウンロードしたファイルはwave形式なのでoggに変換します。

フリーの変換ソフト(例:えこでこツール)などを使えば楽です。

waveファイルをこの赤い領域にドラッグ・ドロップすればOKです。






Scenario_sample512.zipでシナリオを作って見ます。

解凍したら、フォルダー名を適当に改名して、まずproject.dfsとproject.dpdを書き換えます。やり方は上記を参照。

次にデータを入れ替えます。

media/textureフォルダーのto_1.pngを入れ替え。

Textureフォルダーの全データを入れ替え。

herewego.oggの音声ファイルを入れ替え。

SATCH Studioを起動してシナリオを読み込みます。

この状態の場合、必要なのはComputer Visionでトラッキングデータを作るのと音声登録のやり直しのみです。やり方は上記を参照。

mainのLuaを開いて、soundのオブジェクト名を変更。

このままでは、サウンドのタイミングが未修正ですので、

--sound startのところで、LOG(temp_num)でログ出力してサウンドを出すtemp_num数でsound:play()を発行するようにします。

以上の作業でエクスポートすればシナリオが作成できます。



TOP

サンプル

2Dデータの作り方はここを参照。

SATCH VIEWERで動作します。

サイズは256x256でやってみました。

pmdはサンプルの咲音メイコ・モデルをカイトに変更したものです。

モーションデータ(vmd)は同じものを使いました。データ構造が同じなのでサウンドを変更しただけで、慣れれば20分ほどでシナリオを作成できます。



SATCH VIEWERのQRリーダーを起動したら以下のコードを読みます。




VIEWER画面になったら以下のトラッキング画像にカメラを向けます。
トラッキング用の画像(クリックで拡大)








スポンサー リンク


トップページ| サイトマップ|