TVML SDK on UNITY チュートリアル May, 2016 (TVML SDK Vesion1.2.2対応) 準備 SDKはUnityのプロジェクトとして提供(フォルダ名:TvmlSDK1.2.2) Unity 5.3.4f1 (32-bit)をインストールする(またはこれ以降のバージョン) Unityに関する注意事項(重要) • • • • • SDKはWindowsのみ。32ビットじゃないと音声合成が動かないので必ず 32ビットのUnityを使うこと(Unityデフォルトでは64ビット) 32ビットインストーラーは、Unity Downloadページの「Older versions of Unity」へ行き、「Unity Editor 32-bit」をダウンロードしてインストールする これだけでは、Web Playerしか使えないので、別途PCビルド用モジュー ルをインストールしないといけない。同じく「Older versions of Unity」 で 「Unity Installer」をダウンロードし、インストーラを起動し、インストールモ ジュール選択画面が出るので、そこで「Windows Build Support」にチェッ クを入れ、後のチェックをすべて外し、インストールする 以上でインストール終了。Unityを起動し、プロジェクトTvmlSDK1.2.2を開 き、「File」~「Build settings」を選ぶ Platformの「PC, Mac & Linux Standalone」をクリックし、左下の「Switch Platform」ボタンを押す。以上で正しく起動する。 まずは動作チェック • ProjectペインのAssets/TVMLSDK/Scenesの中のSceneファイルの "TVMLPlayer"をダブルクリックする • Unityの再生ボタンを押すとTVML Playerが起動する 注: Game再生画面の左上プルダウンで"Standalone(883x535)を選び、再生画面を十分 大きく取っておく。そうしないとTVML Playerの操作ボタン類が隠れて出ない • TVML Playerのファイル選択アイコンを押して、TVMLスクリプト(例: 3people.txt)を選んで、再生ボタンを押す。 注: TVMLサンプルスクリプトは"Assets/TVMLSDK/Resources/TVML Scripts"の中にいく つかある • 下記のように再生が始まり、音声合成の音が出れば成功 • TVML Playerの表示サイズは853x480でアスペクト比16:9で、YouTube と同サイズにしてある。 10/04/11 T2V TVML SDKとアプリ ◆基本動作: TVMLスクリプトのstringを投げて再生する アプリ initialize(); setPlayerViewPortRect(0,0,1,1); playScript(text); TVML SDK XXX.cs tvmlengine bool getStatusPlay(); SDKの使い方 tvmlengine teg = GetComponent<tvmlengine>(); teg.playScript(text); ①SDKのインスタンスをゲットして ②メソッドをコールする T2VSDKのAPI一覧 tvmlengineクラス initialize() : 初期化 playScript(string tvmlscript) : TVMLスクリプト再生 playScriptNoReset(string tvmlscript) : 同上(ただしresetしない) interruptScript(string tvmlscript) : 割り込みスクリプト再生 interruptScriptThenIdling(string tvmlscript) : 同上。ただし終了後アイドリング interruptScriptThenReturnToMain(string tvmlscript) : 割り込みスクリプト後メインへ戻る returnToMainScript() : メインスクリプトへ戻る int getLinenumber() : 現在再生中のTVML行番号を返す bool getStatusPlay() : 現在、再生中か否か int getInterruptDepth() : 割り込みのDepthを返す(最大:127) play() : 再生開始 stop() : 停止。reset()もする。 pause() : ポーズ restart() : 現在play()を同様 switchCamera(string cam) : カメラをスイッチングする setPlayerViewPortRect(float x, float y, float width, float height) : 再生エリア設定 SDKプログラミング初歩 • HierarchyペインにあるオブジェクトをDeleteして空にする • Assets/TVMLSDK/Scripts/Resources/にあるプレハブの"tvml"を Hierarchyペインにドラグアンドドロップする C#ソースファイル作成 Assets/aplicationsの下で右クリックしCreate~C# Scriptでソースファイル を作成する 注: ファイル名とクラス名を同じにすること。そうしないとこの後アタッチするときエラーに なる using UnityEngine; using System.Collections; public class simple : MonoBehaviour { // Use this for initialization void Start () { } // Update is called once per frame void Update () { } } コードを書く: エンジン取得 コンポーネントをゲットして初期化と、描画エリア設定 public class hayashi : MonoBehaviour { tvmlengine teg; void Start () { teg = GetComponent<tvmlengine>(); teg.initialize(); teg.setPlayerViewPortRect(0, 0, 1, 1); } ・・・・・・ コードを書く: TVMLスクリプト再生 「A」のキーを押すと、TVMLテキストファイルをメインスクリプトとし て再生する public class hayashi : MonoBehaviour { tvmlengine teg; public TextAsset txtAsset; void Start () {・・・・・} void Update() { if( Input.GetKey(KeyCode.A)) { teg.playScript(txtAsset.text); } } ソースファイルのアタッチ Hierarchyのtvmlに、ソースコードをドラグアンドドロップ TVMLスクリプトのアタッチ 作成したソースコードのコンポーネント"txtAsset"に、適当なTVMLスクリプト をドラグアンドドロップしてアタッチ 起動 再生ボタンを押して起動した後、「A」キーを押してTVMLスクリプトが再生さ れれば成功 割り込みスクリプト再生 TVMLテキストファイルを割り込みスクリプトとして再生 以下のコードをupdate関数に追加 if( Input.GetKeyDown(KeyCode.N)) { teg.interruptScript ("character:bow(name=A, speed=3, wait=no)\n"); } Aキーで再生した後、Nキーを押してbow(おじぎ)すれば成功 割り込みスクリプト playScript() メインスクリプト intteruptScript() 割り込みスクリプト#1 割り込みスクリプト#2 割り込みスクリプト#3 割り込み 場所を 覚えている 割り込みスクリプトは、 最後の行まで行った後に ・すぐ前のスクリプトへ戻るか ・idlingになるか ・メインスクリプトに戻るか が選べる。 idling idling 終わったらアイドリング 終わった時点の絵 でアイドリング interruptScriptThenIdling() idling ヒント Assets/Scenesの中にTVML Player, interruption, autonewsの シーンファイルが入っているので、それぞれダブルクリックして起 動してみるとよい。それぞれ、 TVML Player、簡単なインタラクテ ィブアプリ、 WebのHTMLから自動的にアニメーション生成。 Assets/applicationsの中に、上述のソースがある。 Assets/TVMLSDK/Resourcesの下に、TVMLで使えるCGモデル などのリソースが入っている。 ムービーも使える。サンプルTVMLスクリプトのmovieplatetestを 再生するとわかる。 セットやプロップなど静止したCGモデルはUnity Editor上で配置し て使っても構わない(必ずしもTVMLスクリプトの中で定義しなくて いい) デフォルトのままだと照明が暗く空気感も悪い。これはやはり Unity Editor上でGI (Global Illumination)などの様々な機能を駆 使して作り込んでしまってもよい(必ずしもTVMLスクリプトの中で light定義しなくていい) キャラクタの新規追加は別途手順が必要(問い合わせてください) 課題 再生・停止・一時停止ボタンを追加してください 行番号を表示してください クイズを仕込む ・ボタンを押すとキャラがカメラ目線になってクイズを出題し、 ユーザー入力待ちになる ・ユーザーがキー入力などで回答 ・正解不正解を告げて、元のメインスクリプトへ戻る TVML言語仕様 TVML言語仕様Version 3.1 http://wjis76df.sakura.ne.jp/t2vlab/spec/tvmlspec31/index.html
© Copyright 2024 ExpyDoc