TVML 言語仕様バージョン3.1
Unity版T2V SDK Ver1.2.2およびTVML Player Ver1.2.2でサポートされる仕様

TVML言語規則概略

■言語のバージョンナンバーをスクリプトの最初に以下で指定する。省略可

//! TVML Version 3.1

■テキストのエンコーディングタイプはUTF-8。

■改行で区切られた一行がひとつのイベントに対応する。1行分のイベントを実行し、そのイベントが終了したら次の行に記述されたイベン トを実行する。

■イベント書式は以下

イベントタイプ: コマンド名( arg1 = data1, arg2 = data2 , arg3 =data3, ...... )

・イベントタイプは次の11種類ある

character, camera, set, prop, light, movie, super, sound, drawing, video, cgenv

・コマンドの引数内のargは順不同
・コマンド引数において、dataを省略または引数そのものを省略するとデフォルトの値が採用される

■イベントには、イベントが始まって終わるまでの動作に時間がかかる行為イベント(例:座る)と、状態を変えるだけで経過時間がゼロな 状態イベント(例:スーパーオフ)の2種類ある。ふたつの行為イベントを同時に実行させたい時は、行為イベントのコマンド引数にwait=noをつけ加え て行為イベントのイベント終了待ちをしないようにする。例えばBobとMaryを同時におじぎさせ、おじぎが終わってからスーパーしたいときは次のように なる

character: bow( name=Bob, wait=no )
character: bow( name=Mary )
super: on( text = "MARY & BOB" )

したがって、引数中にwaitを持つものは行為イベント、waitを持たないものは状態イベントである。

■イベントには、以下のウェイトコマンドを持つものがある。ウェイトコマンドはコマンドの動作が終わるまで待ち、終わったらリターンす る。ウェイトコマンドは主にコマンドにおいてwait=noに設定した時に、そのコマンド動作が終わるのをチェックするために用いる。ウェイトコマンドの 書式は以下。

イベントタイプ: wait_コマンド名( arg1 = data1, arg2 = data2 , arg3= data3, ...... )

・コマンドの引数内のargは順不同
・コマンド引数において、dataを省略または引数そのものを省略するとデフォルトの値が採用される

■イベント以外の制御としてダイレクトコマンドがある。書式は以下。

コマンド名( arg1 = data1, arg2 = data2 , arg3 = data3,...... )

・コマンドの引数内のargは順不同
・コマンド引数において、dataを省略または引数そのものを省略するとデフォルトの値が採用される

■ブランク、タブは無視される。ただし文字列を表すダブルクォーテーションで囲まれたブロックは対象外

■//以降は行末までコメントとみなされる

■/* と */ で囲まれた部分はコメントとみなされる

パラメータ の扱いについて

1.パラメータ書式の種別

(1) "arg=data"    :指定

dataで指定した値がパラメータargに入る
例:speed = 2.5(パラメータspeedに値2.5が入る)

(2) "arg=*"     :デフォルト指定

パラメータargにデフォルト値が入る。*は予約語
例:speed = *(パラメータspeedにデフォルト値が入る。、この場合は1.0が入る)

(3) ""         :省略

基本的に省略されたパラメータのデフォルトの値が入るので(2)と同様だが、一部のコマン ドで振る舞いが異なる場合もある(例:camera:move)。個別のコマンドリファレンス記述を参照。

2.パラメータの種類

(1)省略不可能パラメータ

省略することができないパラメータ。従ってデフォルト値は持たない。書式上は指定のみで、 省略およびデフォルト指定がされた時はエラーを出し、その行を無視( スキップ)する。

   例:name (名前は必ず指定する)

(2)省略可能パラメータ

省略することができるパラメータ。書式上では、指定、デフォルト指定、省略すべてが可であ る。


コマンドリファレンス

コマンドリファレンスにおけるパラメータの扱いについて

1 CG キャラクターコマンド

character:openmodel( model, filename )
CGキャラクタのモデリングデータをオープンする

パラメータ

model: モデル名。オープンするモデルに対して名前をつける
filename: オープンするモデリングデータファイル名をダブルクォーテションで囲んで指定する

character:casting( name, model )
モデルを指定してキャラクタを作成する

パラメータ

name: キャラクタ名。スクリプトで使うキャラクタに対して名前をつける
model: モデル名(openmodelで定義したもの)

解 説

セットアップ時に用いるコマンドです。途中でモデルの変更をすることには使えません。

character:setvoice( name, voicetype, adjlevel, adjlpf )
キャラクタの声質を指定する

パラメータ

name: キャラクタ名
voicetype: 音声合成ソフトの声質名を指定する。声質名については後述。ダブルクオーテーションで囲んで指定する
adjlevel: 口パク用の音圧レベルに対する感度を指定。defaultはシステムが指定する値
adjlpf: 口パク用の音声信号にかけるローパスフィルタの係数を指定する。0.0から1.0までの値で、0.0に近づくほどフィルタのかかりが悪く、1.0に近づく ほど深くかかる。LPFが深くかかると口パクが滑らかになり「もったり」する感じになる。defaultはシステムが指定する値

追加パラメータ

speed: しゃべりの速さ default:1.0
pitch: しゃべりのピッチ(声の高さ) default:1.0
intonation: しゃべりのイントネーション default:1.0
volume: しゃべりの音量 default: 1.0
param0: 特定の音声合成ソフトに対する声質パラメータ(現在はOpenJTalkのみ有効) default: 1.0
paramtype = normal, raw : 上述のspeed, pitch, intonation, volume, param0の値のタイプ。normalの時は1.0をデフォルトとして正規化される。rawを指定するとそれぞれの音声合成ソフトに対し値をそのままの 数値で引き渡す

解 説

・現在のT2V onUNITYで使用できる声質名は以下の通り
  日本語:
   VoiceSommelier:Voice06 : 日立製"ボイスソムリエ"、落ち着いた大人の女性
   VoiceSommelier:Voice07 : 日立製"ボイスソムリエ"、女性、ふつう
   VoiceSommelier:Voice08 : 日立製"ボイスソムリエ"、若い女性
   VoiceSommelier:Voice09 : 日立製"ボイスソムリエ"、男性、朗読調
   VoiceSommelier:Voice10 : 日立製"ボイスソムリエ"、若い男性
   N2:M01 : KDDI研究所製"N2 TTS"、男性
   N2:F01 : KDDI研究所製"N2 TTS"、女性
   OpenJTalk:Voice01 : フリーソフト"Open JTalk"、男性
 英語:
   FLite:Voice01 : フリーソフト"Flite (festival-lite)"、女性

・声質は混在して使うことができる
・setvoiceで設定したspeed, pitch, intonationなどのパラメータはスクリプト全体に渡って有効なので、ここでキャラの声を作っておき、talkコマンドでしゃべらせるとよい


character:visible( name, switch )
キャラクタの表示・非表示

パラメータ

name: キャラクタ名
switch = on, off キャラクタの表示と非表示をスイッチする

character:position( name, x, y, z, rx, ry, rz, scale, posture )
キャラクタを配置する

パラメータ

x, y, z: セット上でのxyz絶対座標値(m)を指定 default: x=0.0, y=0.0, z=0.0
rx, ry, rz: キャラクタの向き(度)を指定。default: rx=0.0, ry=0.0, rz=0.0
scale: キャラクタのスケールを指定。default: scale=1.0
posture = standing(立ち), sitting(座り): 配置したときの姿勢を指定

解 説

y座標の指定で、キャラクタを浮かせることができます。その後のwalkなどの高さ基準になります。

character:talk( name, text, lipsync, caption, speed, pitch, intonation, volume, param0, paramtype, wait )
キャラクタをしゃべらせる

パラメータ

name: キャラクタ名
text: セリフの文字列をダブルクォーテーションで指定
lipsync: キャラクタ毎に定まるデフォルトの口パクの大きさに対する倍数を指定する。1.0でデフォルト、0.0で口パクしなくなる default: 1.0
caption : スーパーするセリフの文字列を指定。指定しないときはtextの文字列がスーパーされる default:""
speed: 音声合成の読む速さ default:1.0
pitch: 音声合成の声の高さ default:1.0
intonation: 音声合成のイントネーションの強さ default:1.0
volume: 音声合成の音量 default: 1.0
param0: 特定の音声合成ソフトに対する声質パラメータ(現在はOpenJTalkのみ有効) default: 1.0
paramtype = normal, raw : 上述のspeed, pitch, intonation, volume, param0の値のタイプ。normalの時は1.0をデフォルトとして正規化される。rawを指定するとそれぞれの音声合成ソフトに対し値をそのままの 数値で引き渡す
wait = yes, no

ウェイトコマンド

character: wait_talk(name)

解 説

ここで指定されるspeed, pitch, intonation, volume, param0はcharacter:setvoiceコマンドで指定した値を上書きし、優先される

character:talkfile( name, filename, lipsync, caption, wait )
音声データファイルでキャラクタをしゃべらせる

パラメータ

name: キャラクタ名
filename: 音声データファイル名をダブルクォーテーションで囲って指定する
lipsync:キャラクタ毎に定まるデフォルトの口パクの大きさに対する倍数を指定する。1.0でデフォルト、0.0で口パクしなくなる  default: 1.0
caption: スーパーするセリフの文字列を指定 default: ""
wait = yes, no

ウェイトコマンド

character: wait_talkfile(name)

解 説

Unityではサウンドファイルはogg, wav, mp3が使える

character:gesture( name, switch, type, speed, degree )
しゃべりのジェスチャー

パラメータ

name: キャラクタ名
switch = on, off: ジェスチャーをするかしないか指定する
type = stress(体前倒し)、arm(腕振り)、swing(横ゆれ)、pitch(縦ゆれ)、twist(身体ねじり)、tiltleft(左傾き)、 tiltright(右傾き): default: stress+arm
   以上のキーワードを「+」で連結して複合指定できる。例:character: gesture(name=A, type=swing+arm) 
speed: ジェスチャーの動きの速度のデフォルトに対する速度比 default: 1.0
degree: ジェスチャーの強度のデフォルトに対する強度比 default: 1.0

character:walk( name, x, z, step, speed, stride, raise, wait )
歩く

パラメータ

name: キャラクタ名
x, z: 目的地のxz座標(m)を指定 default: x=0.0, z=10.0
step: 現在向いている方向に歩く歩数を指定する。負の数を指定すると後ずさりする。x, zより優先されるのでx, zを使うときは使用しないこと default: 0
speed: 歩きの速さ。デフォルトに対する速度比 default: 1.0
stride: 歩幅(m) default: キャラクタ毎に定める値
raise: 足の振り上げ高さ(m) default: キャラクタ毎に定める値
wait = yes, no

追加パラメータ

updown: 歩くときの体の上下(m) default:0.0
bodyswing: 上体を振る(度) default:0.0
headswing: 頭を振る(度) default:0.0
armswing: 手を振る(度) default: 0.0
waistlevel: 地面に対する腰の高さ(m) default: キャラクタ毎に定める値

ウェイトコマンド

character: wait_walk(name)

character:step( name, x, y, z, speed, raise, wait )
一歩で目的座標に移動

パラメータ

name: キャラクタ名
x, z: 目的地のxz座標値(m)  default: x=0.0, z=0.0
speed: 移動スピード。デフォルトに対する速度比 default: 1.0
raise: 足の振り上げ高さ(m)  default: キャラクタ毎に定める値
wait = yes, no

追加パラメータ

type = normal(普通), cross(踏み出す足が逆足): 踏み出しのタイプ
bodyswing: 上体を振る(度) default:0.0
headswing: 頭を振る(度) default:0.0
armswing: 手を振る(度) default: 0.0
waistlevel: 腰の高さ(m)  default:キャラクタ毎に定める値

ウェイトコマンド

character: wait_step(name)

character:stop( name, wait )
歩いているキャラクタを止める

パラメータ

name: キャラクタ名
wait = yes, no

ウェイトコマンド

character: wait_stop(name)

character:sit( name, speed, wait )
座る

パラメータ

name: キャラクタ名
speed: 座る速さ。デフォルトに対する速度比 default: 1.0
wait = yes, no

追加パラメータ

hiplevel: 座るときのおしりの高さ(m) default: キャラクタ毎に定められている値
hipposition: 座るときの前方向の位置(m) default: キャラクタ毎に定められている値

ウェイトコマンド

character: wait_sit(name)

character:stand( name, speed, wait )
座っているキャラクタを立ち上がらせる

パラメータ

name: キャラクタ名
speed: 立ち上がる速さ。デフォルトに対する速度比 default: 1.0
wait = yes, no

ウェイトコマンド

character: wait_stand(name)

character:turn( name, d, speed, wait )
キャラクタの向きを変える

パラメータ

name: キャラクタ名
d: 向きの絶対角度を指定する(度) default: 0.0
speed: 向きを変える速さ。デフォルトに対する速度比 default: 1.0
mode = absolute(絶 対角度)、relative(相対角度): 角度dの絶対/相対指定
wait = yes, no

ウェイトコマンド

character: wait_turn(name)

character:bow( name, speed, level, type, wait )
おじぎをする

パラメータ

name: キャラクタ名
speed: おじぎの速さ。デフォルトに対する速度比 default: 1.0
level: おじぎの深さ。頭が下がりきった位置での角度(度)。負にするとのけぞる default: 30度
type = normal(普通)、casual(頭だけ)
wait = yes, no

ウェイトコマンド

character: wait_bow(name)

character:look( name, target, speed, type, track, wait )
指定した対象を見る

パラメータ

name: キャラクタ名
target = name(他のキャラクタ、小道具の名前)、camera(カメラ)、 lookforward(正面)
speed: 見る動作の速さ。デフォルトに対する速度比 default: 1.0   
type = normal(上体+頭)、 faceonly(頭のみ)
track = on, off: onにすると対象物を追いかける
wait = yes, no

ウェイトコマンド

character: wait_look(name)

character:gaze( name, rx, ry, rz, speed, type, wait )
指定した方向を見る

パラメータ

name: キャラクタ名
rx, ry, rz: 見る方向を絶対角度で指定する(度) default: rx = ry = rz = 0.0
speed: 見る速さ。デフォルトに対する速度比 default: 1.0
type = normal(上体+頭)、 faceonly(頭のみ)
wait = yes, no

ウェイトコマンド

character: wait_gaze(name)

character:jump( name, x, y, z, d, height, speed, mode, wait )
指定位置までジャンプする

パラメータ

name: キャラクタ名
x, y, z: 目的地のxyz座標 (m) default: 0.0
d: 目的地でのキャラクタの向き(度) default: 0.0
height: ジャンプの高さ(m) default: 1.0
speed: ジャンプのスピード。デフォルトに対する速度比 default: 1.0
mode = absolute(絶 対座標へ移動), relative(相対移動):目的地のx, y, zが、absoluteの時は絶対座標、relativeの時は現在位置からの移動量になる。向きdも同様。
wait = yes, no

ウェイトコマンド

character: wait_jump( name )

character:action(name, action, speed, wrapmode, layer, wait)
キャラクタアニメーションを再生する

パラメータ

name: キャラクタ名
action: キャラクタにつけられたアニメーションの名前を直接指定する (必要ならダブルクォーテーションで囲んで指定)
speed: 動作の速度。デフォルトに対する速度比 default: 1.0
wrapmode = once, loop: onceのとき一回だけ、loopのときは繰り返し動作する
layer: アニメーションを動かすレイヤーを数で指定する default: 0
wait = yes, no

解 説

・Unityのアセット上で、キャラクタにアタッチされたアニメーションを名前でコールして再生する
・speedは動作するがあまり完全な形では速度は変わらない
・wrapmode=loopはアイドリングの動作をさせるときによく使う(呼吸や、揺れや、まばたきのアニメーション)
・layerを変えてアニメーションを同時にコールすると動作が合成される。ただし、これはUnity任せなので細かい動作合成制御はTVMLからはでき ない(重みを変えるなどは無理)

ウェイトコマンド

character: wait_action(name)

character:shake( name, switch, degree )
ふるえる

パラメータ

name: キャラクタ名
switch = on, off  
degree: ふるえの程度。デフォルトの倍数 default: 1.0

character:openmouth( name, switch, degree, speed, wait)
口を開ける

パラメータ

name: キャラクタ名
switch = on, off
degree: 口開けの大きさ。デフォルトに対する倍数 default: 1.0
speed: 口を開ける速さ。デフォルトに対する速度比 default: 1.0
wait = yes, no

ウェイトコマンド

character: wait_openmouth(name)

character:expression( name, type, degree, speed, wait )
顔の表情を変える

パラメータ

name: キャラクタ名
type = neutral, happy, fear, angry, sad, surprise, disgust
degree: 表情の強さ。デフォルトに対する倍数。0.0のとき表情強度がゼロ、1.0で最大。 default: 1.0
speed: 表情への移行スピード default: 1.0  単位sをつけると動作にかかる時間(秒)を指定
wait = yes, no

ウェイトコマンド

character: wait_expression( name )

解 説

・このコマンドは、表情をサポートするキャラクタにのみ有効。表情をサポートしていないキャラクタでは無視される。
・typeに指定する表情予約語はサポートされているもののみ動作する


character:pose( name, pose, speed, type,wait )
ポーズの実行

パラメータ

name: キャラクタ名
pose: defineposeで定義した実行したいポーズ名を指定。ポーズをやめる、いわゆる「なおれ」をしたい場合はpose =default とする。したがってposeの名前において default は予約語
speed: デフォルトに対する速度、および動作にかかる時間(秒)を指定する default: 1.0   単位sをつけると動作にかかる時間(秒)を指定(type=uniform, gravityのみ)
type = servo(通常), uniform(等速), gravity(重力)

解 説

・typeのservoは「速いスタート・スローストップ」、uniformは等速、gravityは落下運動のシミュレートで「ス ロースタート・急ストップ」
・speedについては、type=servoのときはデフォルト速度に対する比のみ、type=uniform, gravityのときは動作時間のみしかサポートしていないので注意

ウェイトコマンド

character: wait_pose(name)

character:definepose( name, pose, joint, rx, ry, rz, mx, my, mz, relative )
ポーズの定義

パラメータ

name: キャラクタ名
pose: ポーズに名前をつける
joint: 関節の指定。関節名は以下の通り。指定しないjointは動かさない

Root(腰の基点位置)
LeftThigh(左太もも)
LeftShin(左すね)
LeftFoot(左足)
RightThigh(右太もも)
RightShin(右すね)
RightFoot(右足)
Hip(お尻) 
Chest(胸)
LeftUpperArm(左上腕)
LeftLowerArm(左前腕)
LeftHand(左手)
RightUpperArm(右上腕)
RightLowerArm(右前腕)
RightHand(右手)
Neck(首)
Head(頭)
Jaw(下あご)
RestOfAll(直接指定されていないjointについて一括して値をセットする)

rx, ry, rz: 関節の角度指定(度)  省略したパラメータは動かさない
mx, my, mz: 各身体部品を動かす距離(m)  省略したパラメータは動かさない。現在はjoint=Rootのみ有効
relative = on, off : onのときは現在の姿勢からの相対値で動く。offのときは絶対値として動く。

解 説

・rx, ry, rz, mx, my, mzに *を指定すると、当コマンドdefineposeを発行した時点に実際にキャラクタが行っている姿勢の値をパラメータに記憶する。これとjoint= RestOfAll を使うとキャラクタの姿勢を記憶することができる。
例:
character: definepose(name=Bob, posename=snap, joint=RestOfAll, rx=*,ry=*, rz=*, mx=*, my=*, mz=*)
で記憶し、
character: pose(name=Bob, posename=snap)
で呼び出す。
・指定されないjointがある場合、そのjointに対しては何もしない


character:sequencepose( name, sequencepose, speed, wait )
連続ポーズの実行

パラメータ

name: キャラクタ名
sequencepose: definesequenceposeで定義した実行したい連続ポーズ名を指定
speed: デフォルトに対する速度 default: 1.0

ウェイトコマンド

character: wait_sequencepose(name)

character:definesequencepose( sequencepose, pose, speed, type)
連続ポーズの定義

パラメータ

sequencepose: 連続ポーズに名前をつける
pose: defineposeで定義したポーズ名を指定。ポーズを辞める、いわゆる「なおれ」をしたい場合はpose = defaultとする
speed: デフォルトに対する速度、および動作にかかる時間(秒)を指定する default: 1.0   単位sをつけると動作にかかる時間(秒)を指定(type=uniform, gravityのみ)
type = servo(通常), uniform(等速), gravity(重力)

解 説

スクリプト中でdefinesequenceposeをコールした順に各poseを記憶し、sequenceposeコマンドで連続的に再生します。
speedについては、type=servoのときはデフォルト速度に対する比のみ、type=uniform, gravityのときは動作時間のみしかサポートしていないので注意


character:openmocap( motion, filename )
モーションキャプチャーデータファイルをオープンする

パラメータ

motion: モーションキャプチャーデータに名前をつける
filename: モーションキャプチャーデータファイル名をダブルクオーテーションで囲んで指定する

解 説

モーションキャプチャーデータとしてはBVHフォーマットをサポートするが、特別なボーン構造および回転順記述のみのサポートであり、一般的BVHには対 応していないので注意

character:mocap( namemotion, preresettime, resettime, stopmode, from, to, ydiff, jointignored, wait )
モーションキャプチャーデータの実行

パラメータ

name: キャラクタ名
motion: openmocapでつけたモーションキャプチャーデータ名を指定する
preresettime: 現在のポーズからモーションキャプチャーデータの最初のポーズへの移行の時間(秒) default: 1.0
resettime: モーションキャプチャーデータの最後のポーズからデフォルトポーズへ戻る移行の時間(秒) default: 1.0
stopmode = reset(最後にデフォルトポーズに戻る)、remain(モーションキャプチャー データの最後のポーズのまま止まる)
from: 再生開始フレームの指定 defualt=-1(先頭フレームから再生)
to: 再生終了フレームの指定 defualt=-1(最終フレームで停止)
ydiff = on, off: モーションキャプチャーデータのy軸の値について、開始フレームからの差分のみを適用するかどうかのフラグ。on:差分のみ適用、off:絶対位置を適 用。デフォルトはoff
jointignored: モーションキャプチャーデータで動かしたくないjoint名を指定する。joint名は'+'で連結して複数記述できる。(例:jointignored =LeftUpperArm+LeftLowerArm)

Root(腰の基点位置)
LeftThigh(左太もも)
LeftShin(左すね)
LeftFoot(左足)
RightThigh(右太もも)
RightShin(右すね)
RightFoot(右足)
Chest(胸)
LeftUpperArm(左上腕)
LeftLowerArm(左前腕)
LeftHand(左手)
RightUpperArm(右上腕)
RightLowerArm(右前腕)
RightHand(右手)
Neck(首)
Head(頭)
LowerBody(下半身のすべてのjointの一括指定)

wait = yes, no

ウェイトコマンド

character: wait_mocap(name)


character:move( name, x, y, z, rx, ry, rz, speed, wait )
キャラクタを移動する

パラメータ

x, y, z:移動するターゲットのxyz絶対座標値(m)を指定 default: x=0.0, y=0.0, z=0.0
rx, ry, rz:移動したいキャラクタの向き(度)を指定。default: rx=0.0, ry=0.0, rz=0.0
speed: 移動に要する時間を指定(秒) default: 1.0
wait = yes, no

ウェイトコマンド

character: wait_move(name)

2 カメラコマンド

camera:switch( name )
指定カメラにスイッチングする

パラメータ

name: assignで定義したカメラ名を指定する default: Acam

解 説

・再生と共にAcamという名前のカメラがデフォルトとしてすでに存在しており、初期状態ではAcamが選択されている。
・Acamは、 x=0.0, y=1.0, z=2.0, rx=0.0, ry=180.0, rz=0.0, vangle=50.0 で設置されている

camera:position( name, x, y, z, rx, ry, rz, vangle )
カメラを指定位置に設定する

パラメータ

name: カメラ名を指定 default: Acam
x, y, z: カメラのxyz座標値を指定(m) default: x=0.0, y=1.0, z=2.0
rx, ry, rz: rxはチルト(縦振り)、ryはパン(横振り)、rzはロール(光軸回り回転)である。角度を指定(度) default: rx=0.0, ry=180.0, rz=0.0
vangle: レンズの垂直画角を指定(度) default: vangle=50.0

camera:move( name, x, y, z, rx, ry, rz, vangle, speed,type, transition, wait )
カメラを指定位置に動かす

パラメータ

name: カメラ名を指定 default: Acam
x, y, z: カメラのxyz座標値を指定(m) default: x=0.0, y=1.0, z=2.0 (ただし、パラメータが省略されたときは、その位置に対しては何もしない)
rx, ry, rz: rxはチルト(縦振り)、ryはパン(横振り)、rzはロール(光軸回り回転)である。角度を指定(度) default:rx=0.0, ry=180.0, rz=0.0 (ただし、パラメータが省略されたときは、その軸に対しては何もしない)
vangle: レンズの垂直画角を指定(度) default: vangle=50.0 (ただし、パラメータが省略されたときは、そのvangleに対しては何もしない)
speed: カメラ移動の速さを指定。デフォルトに対する速度比 default: 1.0 時間指定のときはspeed=2.5sのように"s"(秒)をつける
type = servo(サーボ), uniform(等速) , humanlike(手動的): カメラ移動のタイプを指定
transition = immediate(瞬時), continuous(連続的): 移動方法を指定
wait = yes, no

解 説

・transition=immediateのときは瞬時に移動するので、効果としてはカメラスイッチングと同様になります。  
・transition=continuousのときのstyleのservoは、急発進で目的地に近づくにつれ遅くなりスローストップ。uniform は等速移動。humanlikeは、スロースタート->等速->スローストップで、人間によるカメラ移動を模したものです。 ただし、 humanlikeは、角度変化と位置変化と画角変化のコンビネーションが完全ではないため、これらを並列して動かす場合には、動きが不自然になることが あります。そのときはservoまたはuniformを使用してください。
・speedについては、type=servoのときはデフォルト速度に対する比のみ、type=uniform, gravityのときは動作時間のみしかサポートしていないので注意

ウェイトコマンド

camera: wait_move(name)

camera:closeup( name, target, speed, dolly, track, type, transition, wait )
対象物をクローズアップ

パラメータ

name: カメラ名を指定 default: Acam
target = name :クローズアップしたい対象の名前を指定(キャラクタおよび小道具)
speed: カメラ移動の速さを指定。デフォルトに対する速度比 default: 1.0 時間指定のときはspeed=2.5sのように"s"(秒)をつける
dolly = on, off: onのときカメラ位置を移動。offの場合は角度と画角のみを変更
track = on, off: onのとき被写体の動きにパンチルトで追従する。不感帯が設けてあり少しの動きでは追従しない
type = servo, uniform, humanlike: カメラ移動のタイプを指定
transition = immediate, continuous: 移動方法を指定
wait = yes, no

追加パラメータ

adjrx, adjry, adjrz, adjx, adjy, adjz, adjvangle: 指定した値を各要素に加算 default: 0.0
adjpan, adjtilt, adjzoom: パン、チルト、ズームを調整する default: adjpan=0.0, adjtilt=0.0, adjzoom=1.0

解 説

・dollyをonにすると、対象物の真正面へカメラを移動し、角度と画角を自動調整してクローズアップします。dollyをoffに すると、カメラの位置はそのままで角度と画角を自動調整してクローズアップします。
・クローズアップのアングルを修正したいとき、従来はadjx, ady,...adjvangleを使っていましたが、今後はadjpan, adjtilt, adjzoomを使うことを推薦します。機能は以下の通りです。
adjzoom: デフォルトは1.0で、被写体のサイズの倍数を指定する。(例: adjzoom=2.0にすると、2倍の大きさに写る)
adjpan: 画面の幅が1.0に相当。0.5のとき中央被写体が右のふちに写る(プラスが左振り方向)
adjtilt: 画面の高さが1.0に相当。0.5のとき中央被写体が上のふちに写る(プラスが下振り方向)
以上、被写体の大きさに連動して機能するので、汎用性が高い。
・speedについては、type=servoのときはデフォルト速度に対する比のみ、type=uniform, gravityのときは動作時間のみしかサポートしていないので注意

ウェイトコマンド

camera: wait_closeup(name)

camera:twoshot( name, target1target2, speed, dolly, track, type, transition, wait )
2つの対象物をツーショットにする

パラメータ

name: カメラ名を指定 default: Acam
target1 = name, target2 = name : ツーショットにしたい二つの対象物の名前を指定(キャラクタおよび小道具)
speed: カメラ移動の速さを指定。デフォルトに対する速度比 default: 1.0 時間指定のときはspeed=2.5sのように"s"(秒)をつける
dolly = on, off: onのときカメラ位置を移動。offの場合は角度と画角のみを変更
track = on, off: onのとき被写体の動きにパンチルトで追従する。ズームの調整はしていないので注意。不感帯が設けてあり少しの動きでは追従しない
type = servo, uniform, humanlike: カメラ移動のタイプを指定
transition = immediate, continuous: 移動方法を指定
wait = yes, no

追加パラメータ

adjrx, adjry, adjrz, adjx, adjy, adjz, adjvangle: 指定した値を各要素に加算 default: 0.0
adjpan, adjtilt, adjzoom: パン、チルト、ズームを調整する default: adjpan=0.0, adjtilt=0.0, adjzoom=1.0

解 説

・dollyパラメータ、および、adjpan, adjtilt, adjzoomについての注意はcloseupと同様です。
・speedについては、type=servoのときはデフォルト速度に対する比のみ、type=uniform, gravityのときは動作時間のみしかサポートしていないので注意

ウェイトコマンド

camera: wait_twoshot(name)

camera:catch( name, target, dolly, speed, track,wait )
対象物をフォローする

パラメータ

name: カメラ名を指定 default: Acam
target = name :フォローしたい対象物の名前を指定(キャラクタおよび小道具)
dolly = on, off: offの場合はパン、チルトのみで対象をフォローする。 onのときはドリーフォロー(カメラ位置を移動してフォロー)する
speed: カメラ移動の速さを指定。デフォルトに対する速度比 default: 1.0
track = on, off: onにすると対象物が動いてもフォローし続ける
wait = yes, no

追加パラメータ

adjrx, adjry, adjrz, adjx, adjy, adjz,adjvangle: 指定した値を各要素に加算 default: 0.0

ウェイトコマンド

camera: wait_catch(name)

camera:revolve( name, target, x, y, z, ry, speed, wait )
対象物を中心に回転する

パラメータ

name: カメラ名を指定 default: Acam
target = name :回転させたい中心の対象物の名前を指定(キャラクタおよび小道具)
x, y, z: 回転中心のxyz座標値を指定(m) targetパラメータを省略したときだけ有効。 default: x=0.0, y=0.0, z=0.0
ry: 回転させる角度を指定(度) マイナスの数を指定すれば逆回転する。 default: ry=380.0
speed: カメラ回転の速さを指定。デフォルトに対する速度比 default: 1.0
wait = yes, no

ウェイトコマンド

camera: wait_revolve(name)

解 説

・ターゲット上空から見て半時計回りに回転する。
・カメラ方向についてはryが回転するのみでrx、rzは動かない。
・今のところ、中心座標のyの値は使っていない。


camera:stop( name )
動いているカメラを止める

パラメータ

name: カメラ名を指定 default: Acam 

3 CGスタジオセットコマンド

set:openmodel( name, filename )
セットのモデリングデータをオープンする

パラメータ

name: セットに名前をつける
filename: モデリングデータファイル名を指定

set:change( name )
セットをチェンジする

パラメータ

name: セット名を指定。 name=NULLとすることで、セットを何も表示しないようにできる。


set:position( name, x, y, z )
セットの位置を指定する

パラメータ

name: セット名
x, y, z,: セットのxyz座標値(m) default: x=y=z=0.0

set:action(name, action, speed, wait)
セットのアニメーションを再生する

パラメータ

name: セット名
action: セットにつけられたアニメーションの名前を直接指定する (必要ならダブルクォーテーションで囲んで指定)
speed: 動作の速度。デフォルトに対する速度比 default: 1.0
wait = yes, no

解 説

・Unityのアセット上で、セットのモデルにアタッチされたアニメーションを名前でコールして再生する
・speedは動作するがあまり完全な形では速度は変わらない

ウェイトコマンド

set: wait_action(name)

4 CG小道具コマンド


prop:openmodel( name, filename )
小道具のモデリングデータをオープンする

パラメータ

name: 小道具に名前をつける
filename: モデリングデータファイル名を指定

prop:position( name, x, y, z, rx, ry, rz, scale )
小道具を配置する

パラメータ

name: 小道具名
x, y, z,: 小道具のxyz座標値(m) default: x=y=z=0.0
rx, ry, rz: 小道具のそれぞれx軸、y軸、z軸回りの回転方向(度) default: rx=ry=rz=0.0
scale: 小道具のスケール default: = 1.0

prop:visible( name, switch )
小道具の表示・非表示

パラメータ

name: 小道具名
switch = on, off  

prop:openimageplate( name, filename, hsize, vsize, aspect)
イメージプレートを作成する

パラメータ

name: 小道具名
filename: 画像ファイル名
hsize, vsize: プレートの横幅と高さを指定する(m) default: hsize=vsize=1.0
aspect = fit, free, trim, fix

解 説

・静止画をCGセット内に一枚の板として表示するために使います。画像とプレートのアスペクト比が異なるときは、画像が変形します。
・aspectは、free(縦横比を変えてプレーンに画像をフィットさせる),fix(原画像のピクセルで表示し、はみ出したら中心に対してクリップす る), fit(アスペクト比を変えずに拡大縮小してプレーンに合わせる),trim(アスペクト比を変えずに、プレーンにフィットさせるがはみ出た部分をクリッ プする)
・fix、fitにおいて、プレーンに空き部分ができた時は、その部分は透明になります

prop:openmovieplate( name, moviename, hsize, vsize )
ムービープレートを作成する

パラメータ

name: 小道具名
moviename: movie: open()でオープンされたムービー名
hsize, vsize: プレートの横幅と高さを指定する(m) default: hsize=vsize=1.0

解 説

動画をCGセット内に一枚の板として表示するために使います。movie:open()を使ったプリオープンムービーのみのサポートです。movieの再 生・停止などのコントロールはmovieコマンドを使って行います。

prop: attach(nametarget, joint, switch, x, y, z, rx, ry, rz, scale )
propを指定キャラクタの指定jointにくっつける、または別のpropにくっ つける

パラメータ

name: 小道具名
target: アタッチしたいキャラクタの名前、またはprop名を指定する
joint: キャラクタのjoint名を指定し、そこにアタッチする。joint名はcharacter:definepose()を参照。propにくっつけた場合 このパラメータは無視される
switch= on, off
x, y, z, rx, ry, rz, scale: アタッチされた小道具の位置と姿勢とスケールを調整する

解 説

キャラクタにアタッチすると、jointの位置にpropの原点が一致した形になり、この原点を基準としてx, y, z, rx, ry, rz,scaleを使って調整します。
別のpropにアタッチすると、2つのpropの原点が一致した形になり、この原点を基準としてx, y, z, rx, ry, rz,scaleを使って調整します。

prop: move( name, x, y, z,rx, ry, rz, scale, tspeed, rspeed, sspeed, wait )
小道具の移動

パラメータ

x, y, z: 移動先の絶対座標指定(m) default: 現在の座標値
rx, ry, rz: 移動先の姿勢の角度指定(度) default: 現在の姿勢角
scale: スケール(拡大・縮小)の指定 default: 現在のスケール値
tspeed: x, y, zで指定される移動位置までのスピードの指定。sをつけると絶対時間(秒)になる。 default:1.0
rspeed: rx, ry, rzで指定される回転角度までのスピードの指定。sをつけると絶対時間(秒)になる。 default: 1.0 rspeed=-1を指定すると、無限回転を行う。その際の回転速度(度/秒)はrx,ry, rzで指定する
sspeed: sx, sy, szで指定される拡大・縮小値までのスピードの指定。sをつけると絶対時間(秒)になる。 default: 1.0
wait = yes, no

解 説

x, y, z, rx, ry, rz, scaleにおいて省略された値については動かさない。

ウェイトコマンド

prop: wait_move( name)


prop:action(name, action, wait)
小道具のアニメーションを再生する

パラメータ

name: 小道具名
action: 小道具につけられたアニメーションの名前を直接指定する (必要ならダブルクォーテーションで囲んで指定)
wait = yes, no

解 説

・Unityのアセット上で、小道具のモデルにアタッチされたアニメーションを名前でコールして再生する

ウェイトコマンド

prop: wait_action(name)

5 CG照明コマンド

light:flat( name, r, g, b, vx, vy, vz )
平行光を一つ点ける

パラメータ

name: 照明の名前 
r, g, b: 平行光 の色(0.0~1.0) default: r=1.0, g=1.0, b=1.0 
vx, vy, vz: 平行光の方向ベクトル default: vx=0.0, vy= -1.0, vz=0.0 

light:point( name, r, g,b, x, y, z, constant, linear, quadratic )
点光源を一つ点ける

パラメータ

name: 照明の名前 
r, g, b: 点光源の色 (0.0~1.0) default: r=1.0, g=1.0, b=1.0 
x, y, z: 点光源の位置座標(m) default: x=0.0, y=0.0, z=0.0
constant: 減衰率 k default: 1.0
linear: 減衰率 k1 default: 0.0
quadratic: 減衰率 k2 default: 0.0

解 説

点光源とスポットライトについては、物体が遠方に行くほど光量が落ちる減衰光が利用できます。パラメータ constant,linear, quadratic によって、光の減衰率に関する3つの係数を指定でき、このとき減衰率は以下の式に従います。
        1
--------------------
k + d * k1 + d * d * k2
   ここで、d=光源と物体の距離、k(=constant)、k1(=linear)、k2(=quadratic)
通常の実世界での光源減衰式は 1/(d*d)になるのですが、CG表示で用いている近似計算においては、これで計算すると暗くなりすぎるので、3つの係数で光源減衰率が指定できるよう になっています。TVMLにおけるディフォルト状態では、 k=1、 k1=0、 k2=0なので、無限遠まで減衰しない光源になります。実世界に近いのは前述のとおり k=0、 k1=0、 k2=1 ですが、これで暗いときは、kと k1 を加減してください。詳しくは OpenGL のドキュメントを参照してください。


light:spot( name, r, g, b, x, y, z, vx, vy, vz, cutoff,constant, linear, quadratic )
スポットライトを一つ点ける

パラメータ

name: 照明の名前 
r, g, b: スポットライトの色(0.0~1.0) default: r=1.0, g=1.0,b=1.0 
x, y, z: スポットライトの位置座標(m) default: x=0.0, y=0.0, z=0.0
vx, vy, vz: スポットライトの方向ベクトル default: vx=0.0, vy= -1.0, vz=0.0
cutoff: スポットライトの円錐半値角(度) default: 45.0
constant: 減衰率 k default: 1.0
linear: 減衰率 k1 default: 0.0
quadratic: 減衰率 k2 default: 0.0  

解 説

パラメータ constant,linear, quadratic については点光源と同一です。
スポットライトは、物体の頂点に対してシェーディングされるため、荒いポリゴンのモデルに対しては、あまり効果が期待できません。


light:ambient( name, r, g, b )
環境光を指定する

パラメータ

name: 照明の名前 
r, g, b: 環境光の色(0.0~1.0) default: r=1.0, g=1.0, b=1.0

解 説

T2V SDK Ver1.2(TVML Player Ver1.2)よりサポート完了。 T2V SDK Ver1.2(TVML Player Ver1.2)よりサポート完了。

light:switch( name, switch )
照明をオンオフする

パラメータ

name: 照明の名前
switch = on, off

6 ムービーコマンド

movie:open( name, filename )
ムービーファイルをプリオープンする

パラメータ

name: ムービーに名前をつける
filename: ムービーデータファイル名をダブルクォーテーションで囲んで指定(使用できるフォーマットはogvのみ。TVMLスクリプトからの相対パス、または絶対パスで指定する)

解 説

movieはdrawing:openmovieplate()と組み合わせて使う。現時点でそれ以外の使い方はできない。

movie:play( name, from, to, speed, repeat, wait )
プリオープンムービーを再生する

パラメータ

name: openでオープンしたムービー名
from, to:開始時間、終了時間を指定(秒)。単位にfをつけることでフレーム指定できる。from省略時はムービーデータの頭、to省略時はムービ ーデータの終わり
speed: 再生速度を指定  default: 1.0
repeat: リピート再生の回数を指定。ゼロを指定すると無限に繰り返す default: 1
wait = yes, no

ウェイトコマンド

movie: wait_play(name, time)
timeを省略した場合playコマンドのtoで指定した時間

movie: stop( name)
再生しているムービーを停止する

パラメータ

name: open()でオープンされたムービー名。nameを省略するとplayfileのムービーに作用します。

解 説

発行された時点でフリーズします。再度playコマンドを発行するとファイルの頭から再生します。

movie:pause(name )
再生しているムービーをポーズする

パラメータ

name: open()でオープンされたムービー名。nameを省略するとplayfileのムービーに作用します。

解 説

発行された時点でフリーズします。resumeコマンドを発行するとそこから再開します 。

movie:resume(name )
ポーズしているムービーを再開する

パラメータ

name: open()でオープンされたムービー名。nameを省略するとplayfileのムービーに作用します。

解 説

pauseコマンドでフリーズしたムービーを、そこから再開します 。

movie:goto( name, time )
指定時間へ飛ばす

パラメータ

name: open()でオープンされたムービー名
time: 飛び先の時間(秒)  default: 0

解 説

プリオープンのみのサポートです。

7 スーパーイン ポーズコマンド


super:on( text, x, y )
簡易スー パーを表示する

パラメータ

text: テキストをダブルクォーテーションに囲んで指定します。XMLライクな書式指定が行えます。書式指定の詳細については、 drawing:settext() を参照してください。
x, y:スーパーの表示位置を指定します。単位は%で、テキストの中心を原点とします。詳細はdrawing:settext() を参照してください。

解 説

このコマンドは、てっとり早く文字スーパーするために使います。より複雑な2D描画を行うときは、Drawingイベントを使用してください。

super:off( )
簡易スーパーを消去する

8 サウンドコマン ド

sound:open( name, filename )
オーディオファイルをプリオープンする

パラメータ

name: オーディオの名前をつける
filename: オーディオファイル名をダブルクォーテーションで囲んで指定する (使用できるフォーマットはwav, oggのみ。TVMLスクリプトからの相対パス、または絶対パスで指定する)


sound:play( name, from, to, repeat, wait )
プリオープンオーディオを再生する

パラメータ

name: openでオープンしたオーディオ名
from、to:開始時間、終了時間を指定(時間は、ファイルの頭から測った通算時間。単位は秒)。from省略時はオーディオデータの頭、to省略時は オーディオデータの終わり
repeat: リピート再生の回数を指定。ゼロを指定すると無限に繰り返す  default: 1
wait = yes, no

ウェイトコマンド

sound: wait_play(name)

sound:stop( name )
再生中のオーディオを停止する

パラメータ

name: 停止したいオーディオ名を指定。nameが省略されるとplayfileで再生している音が停止する。name =allを指定することで、現在鳴っている音すべてを停止する。allは予約語

sound:pause( name )
再生中のオーディオをポーズする

パラメータ

name: ポーズしたいオーディオ名を指定。nameが省略されるとplayfileで再生している音がポーズする。

解 説

発行された時点で無音となります。resumeコマンドでそこから再開します。

sound: resume( name )
ポース中のオーディオを再開する

パラメータ

name: 再開したいオーディオ名を指定。nameが省略されるとplayfileで再生している音が再開する。

解 説

pauseコマンドでポーズした音を、そこから再開します。

sound:goto( name, time )
指定時刻へ飛ばす

パラメータ

name: 指定時刻へ飛ばしたいオーディオ名を指定。
time: 飛ばしたい時刻(秒)を指定する。

解 説

プリオープンサウンドのみに対応します。

sound:fade( name, level, speed, wait )
指定されたレベルにフェードする

パラメータ

name: 停止したいオーディオ名を指定
level: フェード後のレベルを数値で指定、または、予約語を指定。数値指定にdBを付けるとデシベル表示になる
    予約語は、on(音量最大)、off(無音)、bg(BGMレベルで-10dBに設定) 
     default: off (無音)
speed: フェードに要する時間(秒) default: 3.0
wait = yes, no

ウェイトコマンド

sound: wait_fade()   

解 説

プリオープンサウンドのみに対応します。

sound:level( name, level )
指定されたレベルに変える

パラメータ

name: 停止したいオーディオ名を指定
level: レベルを数値で指定、または、予約語を指定。数値指定にdBを付けるとデシベル表示になる
    予約語は、on(音量最大)、off(無音)、bg(BGMレベルで-10dBに設定) 
     default: on (音量最大)

解 説

プリオープンサウンドのみに対応します。

9 ドローイングコ マンド


drawing:openbase( name ,x, y, refmode, height, width, layer, color ) 
2Dベースプレーンを作る

パラメータ

name: プレーン名
x, y: プレーンの位置(%)  default: x=y=0 (ウィンドウの中心)
refmode = center, topleft, top, topright, left, right, bottomright, bottom, bottomleft: 作成するプレーンのどこをx, yで指定した位置に合わせるかを決める
height, width: プレーンの高さ、幅(%) default:height=width=100% (ウィンドウサイズと同一)
layer: 0以上の自然数  (0: closedcaptionlayer) デフォルト: 一番上のレイヤー
color = カラー値 または transparent(reserved):  デフォルト: transparent

解 説

・openbaseだけでは絵は出ません。表示するにはdrawing:displayコマンドを使います
・layerが指定されないときは、一番上に自動追加します
・layer=0は特殊なlayerで、常に一番上に存在します。talkなどのclosedcaptionはこのlayer=0に描画されます

drawing:settext( name ,text, parent, x, y, refmode, height, width, align, overtext, language,basecolor, halftone)
2Dプレーンにテキストをセットする

パラメータ

name: プレーン名
text: セットする文字列。書式をXMLライクな記述で指定できる(解説参照)
parent: 親になるベースプレーンの名前。openbaseでオープンされたベースプレーンに限る。省略された時は自身がベースプレーンになる
x, y: 親プレーンに対する位置(%)。親プレーンが省略されたときはウィンドウサイズに対する値  default:x=y=0 (親プレーンの中心)
refmode = center, topleft, top, topright, left, right, bottomright, bottom, bottomleft: 作成するプレーンのどこをx, yで指定した位置に合わせるかを決める
height, width: 親プレーンに対する高さ、幅(%)。親プレーンが省略されたときはウィンドウサイズに対する値  default:height=width=100% (親プレーンと同一)
align = center, topleft, top, topright, left, right, bottomright, bottom, bottomleft: テキスト位置
overtext = flow, flowreturn, fit, fitreturn: テキストがプレーンからはみ出した場合、fit は領域に収まるようにフォントを小さくする。flow はみ出し て表示。
basecolor: ベースの色指定 または transparent(reserved):  デフォルトはtransparent
halftone:ベースの半透明度: デフォルトは100%(不透明)

解 説

・settextだけでは絵は出ません。表示するにはdrawing:displayコマンドを使います
・すでに存在するnameが指定されたら、そのプレーンに上書きする
・parentが省略されたときは、自身がベースプレーンになるが、その際、レイヤーは一番上に自動追加とする
・parentに指定するベースプレーン名はcreateコマンドで作成したものに限る。すなわち、「parent省略したsettextコマンド」で 作ったベースプレーンは指定しないものとする
・overtextの指定は、clip(はみ出した部分を非表示), clipreturn(自動改行するがはみ出した行は非表示),flow(クリップせずすべて表示), flowreturn(自動改行しすべて表示), fit(フォントサイズを自動調整してプレーンに収める),fitreturn(自動改行およびフォントサイズを調節してプレーンに収める)

textで使えるXMLライクなタグについて
・フォントタグ
 例: <font name='MS 明朝' r='1.0' g='1.0' b='1.0' size='30%'>フォントタグの指定<font>
 name:font名を指定
 r, g, b:フォントの色
 size:フォントのサイズ。単位をつけないときはフォントの縦幅のピクセル値(絶対値)、%をつけたときはベースのサイズの縦幅に対する相対値(パー セント)になる。
・改行タグ
 <br/> または <br>
・ボーダータグ
 例: <border r='0.0' g='0.0' b='0.0' width='1'>ボーダーの指定</border>
 r, g, b:ボーダーの色指定
 width:ボーダーの幅をピクセル値で指定

注: 現状では上記のXMLライクなタグで、文の途中で変えることができるのはフォントの色のみです。その他は、一文全部が最後に指定したパラメータで描 画されます。

drawing:setimage( name, filename,parent, x, y, refmode, height, width, align, aspect )
2Dプレーンにイメージをセットする

パラメータ

name: プレーン名
filename: イメージデータファイル名をダブルクォーテーションで囲んで指定 (使用できるフォーマットはjpg, pngのみ。TVMLスクリプトからの相対パス、または絶対パスで指定する)
parent: 親になるベースプレーンの名前。openbaseでオープンされたベースプレーンに限る。省略された時は自身がベースプレーンになる
x, y: 親プレーンに対する位置(%)。親プレーンが省略されたときはウィンドウサイズに対する値  default:x=y=0 (親プレーンの中心)
refmode = center, topleft, top, topright, left, right, bottomright, bottom, bottomleft: 作成するプレーンのどこをx, yで指定した位置に合わせるかを決める
height, width: 親プレーンに対する高さ、幅(%)。親プレーンが省略されたときはウィンドウサイズに対する値  default:height=width=100% (親プレーンと同一)
align = center, topleft, top, topright, left, right, bottomright, bottom, bottomleft: プレーン内での画像の配置
aspect = fit, free

解 説

・setimageだけでは絵は出ません。表示するにはdrawing:displayコマンドを使います
・parentについては、settextと同様
・aspectは、free(縦横比を変えてプレーンに画像をフィットさせる),fit(アスペクト比を変えずに拡大縮小してプレーンに合わせる)
・fitにおいて、プレーンに空き部分ができた時は、その部分は透明になります

drawing: display( name,switch )
2Dプレーンを表示/非表示する

パラメータ

name: プレーン名
switch = on, off  

解 説

・openbase、settext、setimageでセットアップしたdrawingプレーンを表示します。あるいは、表示されているdrawing プレーンを隠します

drawing:position( name ,x, y, layer) 
2Dプレーン位置を指定する

パラメータ

name: プレーン名
x, y: プレーンの位置(%) default: 0.0
layer:移動先のレイヤーを指定

解 説

・x,y,roll,layerで省略されたパラメータは移動しない
・移動先のlayerが既に存在する場合は、順次手前に移動させて割り込ませる

drawing:move( name ,x, y, speed, wait ) 
2Dプレーンを動かす

パラメータ

name: プレーン名
x, y: 移動先の位置(%) default: 現在の位置
speed:  相対スピードまたは秒指定(sを書く)。例:2.5s (=2.5秒)

ウェイトコマンド

drawing: wait_move(name)

解 説

・x,yはスクリーンに対する値。省略されたパラメータは動かさない
・createで作ったベースプレーンと、その子供たちのプレーンを一緒に動かす
・parentを省略してコールされたsettextやsetimageのプレーンも、このコマンドで動く

drawing:stop( name
動いている2Dプレーンを止める

パラメータ

name: プレーン名

10 ビデオエフェクトコマンド

11 CGエフェクトコマンド

cgenv:bgcolor( r, g, b)
CGのオブジェクトの無い背景の色を指定する

パラメータ

r, g, b (0.0~1.0)

12 ダイレクトコマンド

wait( time )
指定した時間待ち、リターンする

パラメータ

time: 待ち時間を指定(秒)

setcaption( switch, displaytime, color, font, fontsize, x, y, height, width,border, borderwidth, bordercolor)
字幕スーパーのセットアップ

パラメータ

switch = on, off: 字幕をオンオフ
displaytime: 字幕の表示時間を指定(秒)-1のとき出っぱなし default: -1 (注:現在未サポート)
color: 字幕の色を指定 default: ffffff(白)
font: フォントを指定する 
fontsize: フォントサイズを指定する 
x, y: 表示エリアの位置(%) 
height, width: 表示エリアの高さと幅(%) 
border = on, off: 字幕の縁取りをオンオフ
borderwidth: 字幕の縁取りの幅(pixel)
bordercolor: 字幕の縁取りの色を指定 default: 000000(黒)

解 説

旧仕様のdisplaycaptionを兼ねており、スクリプトの途中でコールしてもよい。

skipscript( switch )
TVMLスクリプトをスキップする

パラメータ

switch = on, off 

解 説

switch=on とswitch=offで囲まれたスクリプトは、評価はされますが、表示されません。スクリプトの初期設定のブロックに使用される他、スクリプトを飛ばす ときに使用します。

end()
スクリプト再生を終了する

解 説

TVMLスクリプトの再生を終了し、映像を黒にし、音声を無音にします。
現在(TVML SDK Ver1.2, TVML Player Ver1.2)、スクリプト再生が終了するのみで、黒・無音にはならない。後日修正予定。

reset()
TVMLプレイヤーをリセットする

解 説

TVMLプレイヤーに対しリセットがかかり、パラメータなどのすべての状態が初期状態に戻ります。

captionout()
表示されている字幕スーパーを消す

解 説

次の字幕スーパーで解除されます。字幕の表示を途中で消したいときに使います。