CPSL3の言語マニュアル

1
CPSL3 リファレンスマニュアル
目次
第1章 CPSL3 タグコマンドの機能リファレンス
1.1. 舞台と仮想俳優の初期化
(1) <STAGE
Switch >
(2) <PERSON
Switch >
1.2. 仮想俳優の台詞の発声と表情変化(字幕表示)
(3) <SPEECH
Switch >喋る台詞</SPEECH>
(4) <SPEAK
Switch> 喋る台詞</SPEAK>
(5) <SCRIPT
Switch >字幕に表示する文字列</SCRIPT>
(6) <FONT
Switch >
(7) <FACE
Switch >FEN 表情語
(8) <FACS
Switch >基本 6 表情指示語</FACS>
(9) <TALK
Switch >喋る台詞</TALK>
(10)<TIMER
Switch> ……………</TIMER>
または
叙情語</FACE>
1.3. 仮想俳優の演技
(11)<STARTUP
Switch >
(12)<MOTION
Switch >体演技語</MOTION>
(13)<ACTION
Switch > BACS 語 あるいは体演技語</ACTION>
1.4. 仮想俳優の移動や回転
(14)<WALK
Switch >体演技語</WALK>
(15)<JUMP
Switch >体演技語</JUMP>
(16)<SLIDE
Switch >体演技語</SLIDE>
(17)<ROTX
Switch >体演技語</ROTX>
(18)<ROTY
Switch >体演技語</ROTY>
(19)<ROTZ
Switch >体演技語</ROTZ>
1.5. 小道具 (Stage Parts) の配置と動作
(20)<PARTS
Switch >
(21)<MOVE
Switch >…………….. </MOVE>
(22)<DELETE_PARTS Switch >
1.6. カメラワークに関する機能
(23)<CAMERA
Switch > ……………… </CAMERA>
(24)<LENS
Switch >
2
1.7. 音楽と効果音の再生
(25)<MUSIC
Switch >…………………….. </MUSIC>
(26)<SOUND
Switch > ……………………</SOUIND>
1.8. シナリオ進行制御と状態変数の設定
(27)<SCENARIO
Switch>
(28)<SCENE
Switch>……………….</SCENE>
(29)<TOTALSCENE Switch>
(30)<COM>コメント文</COM>
(31)<STOP>
(32)<EXIT>
(33)<MODE
Switch>
1.9. Interactive 動作(対話動作)
(34)<REQUEST
Switch >
(35)<ANSWER
Switch >………………………..</ANSWER>
(36)<SCORE
Switch >
(37)<INPUTNUM Switch >
(38)<INPUTWORD
Switch >
(39)<CORRECT>……正解時の処理………….………</CORRECT>
(40)<INCORRECT>……不正解の時の処理…………</INCORRECT>
1.10. Virtual Exploratory Learning(VEL)機能
(41)<INTERNET
Switch>
(42)<MPLAYER
Switch>
(43)<EXPLAIN
Switch>
(44)<SHELL
Switch>
(45)<EXPLORE
Switch>
第2章 CPSL3 状態変数の一覧
(1) グローバルな状態変数
(2) ブロックスコープを持つ状態変数
第3章 CPSL3 ブロック記述ルール
第4章 CPSL3 の主要なデータベース
(1) FEN 表情語
(2) 叙情語 ( LyricDB.csv に登録されている言葉)
(3) BACS 語
(4) 体演技語
(5) CP-FACS AU 一覧表
3
第1章
CPSL3 タグコマンドの機能リファレンス
1.1
舞台と仮想俳優の初期化
<STAGE
Switch >
能: 舞台や背景となる 3 次元形状データを読み込みます。舞台は 1 個しか読み込めません。
配置座標、回転角、座標軸ごとの拡大縮小率をスイッチで指定できます。
Switch :
機
スイッチ名
Block:
記述例
引数記述法
内容
TDM_FILE
=”形状データファイル名”
POSISTION
ROTATION
SCALE
=”x, y, z”
=”rx, ry, rz”
=”sx, sy, sz”
PiasArtsit で作成した 3 次元形状データ
のファイル名。
配置するモデリング座標値
回転角(度数。反時計周りが正の数)
拡大縮小値 0.0 より大きい実数値
ブロック構造ではないため、</STAGE> はありません。
:
<STAGE TDM_FILE="Room.tdm"
POSITION="-150.0, -2000.0, -4500.0" ROTATION="0.0, 0.0, 0.0" SCALE="3.5, 3.5, 1.0">
<PERSON
Switch >
能: 仮想俳優の 3 次元形状データを一人読み込み、名前をつけます。音声合成システムと接続することが
できます。配置座標、回転角、座標軸ごとの拡大縮小率をスイッチで指定できます。体は無くて音声
のみの俳優(語り手)や、体のみで喋らない(音声合成システムと接続しない)仮想俳優も設定でき
ます。仮想俳優は、最大 8 人まで読み込めます。
Switch :
機
スイッチ名
Block:
記述例
引数記述法
内容
TDM_FILE
NAME
VSM_FILE
SPEAKER
TONETAG
FEN_FILE
TONETAG
BPN_FILE
=”形状データファイル名”
=”仮想俳優名”
=”仮想骨格データファイル名”
=”TTS 話者名”
=”SpeechAPI4.0 タグコマンド”
=叙情詩データベースファイル名”
=”SpeechAPI4.0 タグコマンド”
=”体演技データベースファイル名”
BPN_PATH
=”演技データファイルの存在するパス名”
初期値を右項に示す。
POSISTION
ROTATION
SCALE
=”x, y, z”
=”rx, ry, rz”
=”sx, sy, sz”
人間型 3 次元形状データのファイル名。
日本語名も使用可能
拡張子 .vsm の骨格データファイル
SpeechAPI 4.0 規格の話者名
音声合成システムの初期設定
LyricDB.csv が初期値
音声合成システムの初期設定
ActionDB.csv が初期値
Nana
MOTION-NANA
Emi
MOTION-EMI
Doctor
MOTION-DOCTOR
配置するモデリング座標値
回転角(度数。反時計周りが正の数)
拡大縮小値 0.0 より大きい実数値
ブロック構造ではないため、</PERSON> はありません。
:
<PERSON
TDM_FILE="nana.tdm" VSM_FILE="nana.vsm"
NAME="奈々"
SPEAKER="お姉さん (Toshiba)"
FEN_FILE="LyricDB.csv"
BPN_FILE="ActionDB.csv"
BPN_PATH="MOTION-NANA"
POSITION="800.0, -100.0, -2000.0"
ROTATION="0.0, -15.0, 0.0"
SCALE="1.0, 1.0, 1.1">
4
TTS 話者を選択する際には、SpeechAPI 4.0 話者選択キイワードを SPEAKER スイッチで指定する必要があ
ります。代表的な日本語音声合成エンジンの選択キイワードを以下の表に示します。
音声合成システム
東芝製
LaLaVoice 2001
NEC 製 SmartVoice
選択キイワード
お兄さん (Toshiba)
大人
男声
声質
20 歳 ~
お姉さん (Toshiba)
大人
女性
20 歳
~
ロボットA (Toshiba)
ロボット
20 歳
~
お坊ちゃん (Toshiba)
少年
小学生(6 歳~12 歳)
お嬢ちゃん (Toshiba)
少女
小学生(6 歳~12 歳)
ロボットB (Toshiba)
ロボット
小学生程度(6 歳~12 歳)
おじいさん (Toshiba)
熟年
男声
60 歳以上
女声
60 歳以上
おばあさん (Toshiba)
熟年
ロボットC (Toshiba)
ロボット
Male Voice
男声
青年~中年
Female Voice
女声
青年
読み秀君 (ProTALKER)
男声
青年~中年
読み子ちゃん (ProTALKER)
女声
青年
Adult Male #1 Japanese (L&H)
男声
青年~中年
Adult Female #1 Japanese (L&H)
女声
青年
熟年相当の低い声
IBM 製 ProTalker
L&H TTS (Free Software)
TTS(音声合成システム)の初期化を行うことが出来る TONETAG コマンド文字列の詳細については、第??
章を参照してください。主に、音声合成の速度や抑揚制御等を行います。発話速度を指定する記述例を以下に示し
ます。
<PERSON TDM_FILE="Doctor.tdm" VSM_FILE="Doctor.vsm"
NAME="博士" SPEAKER="おじいさん (Toshiba)" TONETAG=”¥Spd=140¥”
FEN_FILE="LyricDB.csv" BPN_FILE="ActionDB.csv" BPN_PATH="MOTION-DOCTOR"
POSITION="-800.0, -100.0, -2000.0" ROTATION="0.0, 30.0, 0.0" SCALE="1.0, 1.0, 1.1">
<PERSON TDM_FILE="nana2.tdm" VSM_FILE="nana.vsm"
NAME="奈々" SPEAKER="お姉さん (Toshiba)" TONETAG=”¥Spd=140¥”
FEN_FILE="LyricDB.csv" BPN_FILE="ActionDB.csv" BPN_PATH="MOTION-NANA"
POSITION="800.0, -100.0, -2000.0" ROTATION="0.0, -30.0, 0.0" SCALE="1.0, 1.0, 1.1">
5
1.2
仮想俳優の台詞の発声と表情変化(字幕表示)
<SPEECH
<SPEAK
Switch > 喋る台詞
Switch> 喋る台詞
</SPEECH>
</SPEAK>
機
能: 仮想俳優が台詞を喋ります。台詞の文章は、<SPEECH>と</SPEECH>で囲まれたブロックの中に
記述します。<SPEECH>と<SPEAK>は同じ働きをするタグコマンドです。<PERSON>タグで仮想
俳優を定義した際に、VSM_FILE スイッチで仮想骨格データを登録した場合には、喋る時に口をパ
クパク動かします。
Switch :
スイッチ名
Block:
引数記述法
内容
PERSON
=”仮想俳優名”
<PERSON>タグのスイッチで指定した仮
想俳優名を記述します。
SCRIPT
=”ON”
=”OFF”
ON : 字幕を同時に表示します。
OFF :字幕は表示しません。
NOTIFY
=”SYNC”
=”ASYNC”
=”ABOAT”
</SPEECH>での待ち合わせ動作を指定し
ます。
</SPEECH>、</SPEAK>でタグブロックを囲む必要があります。このタグブロックの中に、喋らせたい
台詞を仮名漢字混じり文で記述します。
Notification:
</SPEECH>、</SPEAK>の位置で、指定により待ち合わせ動作を行います。
スイッチ
NOTIFY
キイワード
待ち合わせ動作
=”SYNC”
喋り終わるまで、タグ位置で待ちます。
=”ASYNC”
喋り終わるのを待たずに、タグを通過し
ます。
=”ABOART”
喋るのを中断して、タグを通過します。
通常、このスイッチの値は状態変数なので、<SPEECH>タグの中で定義するよりも、<MODE>タグコ
マンドなどで初期値を設定しておくことを推奨します。システム起動時の値は、SYNC になっています。
記述例
:
<SPEECH >こんにちは。私は、奈々です。</SPEECH>
<SPEECH PERSON="奈々">こんにちは。私は、奈々です。</SPEECH>
<SPEECH PERSON="奈々" SCRIPT="OFF">こんにちは。私は、奈々です。</SPEECH>
以下の例では、博士と奈々は、同時に喋ります。
<MODE SCRIPT=”OFF” NOTIFY=”SYNC”>
<SPEECH PERSON="博士">こんにちは。私は、博士です。
<SPEECH PERSON="奈々">こんにちは。私は、奈々です。</SPEECH>
</SPEECH>
以下の例では、博士が喋り終わってから、奈々が喋ります。
<MODE SCRIPT=”OFF” NOTIFY=”SYNC”>
<SPEAK PERSON="博士">こんにちは。私は、博士です。</SPEAK>
<SPEAK PERSON="奈々">こんにちは。私は、奈々です。</SPEAK>
6
<SCRIPT Switch >
字幕に表示する文字列 </SCRIPT>
機
能: 画面下部の字幕領域に、字幕を表示します。音声合成に同期して字幕を出すこともできるし、字幕だ
けを出すこともできます。字幕の文章は、<SCRIPT>と</SCRIPT>で囲まれたブロックの中に記述
します。喋る台詞と字幕を別の表現にしたい場合などに使用します。
Switch :
スイッチ名
Block:
引数記述法
SCRIPT
=”ON”
=”OFF”
TIME
=”999”
内
容
<SCRIPT>ブロックの中で使用される音声合
成 タ グ <SPEECH>,<SPEAK>,<TALK> の 台 詞
が、字幕領域に表示されるかどうかを指定し
ます。
ON : 字幕を同時に表示します。
OFF :字幕は表示しません。
<SCRIPT>タグで字幕を表示するときには、こ
の値を OFF にしておく必要があります。
字幕の表示時間をミリ秒単位で指定します。
通常、1000(1 秒)以上の値を設定します。
初期値は 0 です。
</SCRIPT>、でタグブロックを囲む必要があります。このタグブロックの中に、表示したい字幕を仮名
漢字混じり文で記述します。
Notification:
</SCRIPT>の位置で、指定により待ち合わせ動作を行います。TIME スイッチで時間が設定されてい
た場合に待ち合わせ動作が異なります。それ以外は NOTIFY の値に係わらず、字幕表示を消します。
スイッチ名
NOTIFY
キイワード
=”SYNC”
待ち合わせ動作
指定時間経過後、字幕を消します。
字幕は消さずにタグブロックを通過します。指定
時間が経過すると、字幕が消えます。
指定時間を無視してただちに字幕を消します。
=”ASYNC”
=”ABOART”
記述例
:
字幕は読みやすくするために句点はいれず、読み上げ文章は、文節きりを明示するために句点を入れ
る場合の記述例です。
<MODE SCRIPT=”OFF” NOTIFY=”SYNC”>
<SCRIPT>これから 3DCG 映像を表示します。
<SPEECH >これから、3DCG 映像を、表示します。</SPEECH>
<SCRIPT>
この場合、仮想俳優が音声を喋り終わるまで字幕が表示されます。
<FONT
機
Switch >
能: <SCRIPT>タグで表示される字幕で使用される文字フォントの設定を行います。
Switch :
スイッチ名
FACE
SIZE
WIDTH
引数記述法
=”文字フォント名”
=”n”
=”n”
内容
文字フォントの高さをピクセル数で指定する。
文字フォントの幅をピクセル数で指定する。
FACE=”DEFAULT” と指定すると、標準フォントに戻ります。
Block:
ブロック構造はありません。</FONT>はありません。
7
<FACE
Switch >
FEN 表情語
または
叙情語 </FACE>
機
能: 仮想骨格をもつ仮想俳優の顔の表情を変化させます。この顔の表情変化は、Dr.Ekman が開発した顔
表情符号 FACS を元に、仮想俳優用に拡張した CP-FACS に基づいて動作します。TTC 符号を用い
て、表情変化の速度も制御することができます。
Switch :
スイッチ名
引数記述法
内容
PERSON
=”仮想俳優名”
GATE
TRANSIT
STABLE
RELEASE
GAIN
REGAIN
=”999”
=”999”
=”999”
=”999”
=”999”
=”999”
TTC
=”999, 999, 999, 999, 999, 999”
<PERSON>タグのスイッチで指定した仮想俳優名を
記述します。
表情待機時間を指定します。
表情立ち上がり移行時間を指定します。
表情保持時間を指定します。
表情立ち下り移行期間を指定する。
状態保持時の強さと最終段階での強さを指定する。
表情終了時の強さを指定する。
GATE、TRANSIT、STABLE、RELEASE、GAIN、REGAIN
を一度に指定する。
数値は整数
数値は整数
数値は整数
数値は整数
数値は整数
数値は整数
時間はすべてミリ秒で指定します。=”100” と記述すると 100 ミリ秒になります。
Gain
(%)
EG
RG
Time
GT
TT
GT : GATE
time
TT : TRANSIT time
ST : STABLE time
RT : RELEASE time
RT
ST
Unit of time is 100ms
EG : GAIN(%)
RG : REGAIN(%)
Block: </FACE>、でタグブロックを囲む必要があります。このタグブロックの中に、叙情語または FEN(表情語)
含む文章を記述します。これらは、<PERSON>タグの FEN_FILE スイッチで指定して読み込んだ叙情詩デ
ータベースファイル(LyricDB.csv が初期値)に登録されている言葉です。この文節を含む文字列ならば
構いません。FEN(表情語)の一覧を以下に示します。
1
2
3
4
5
6
7
8
9
10
11
12
13
FEN
幸福
悲しみ
驚き
嫌悪
怒り
恐れ
寂しさ
困惑
照れ笑い
激怒
満足
不満
疑惑
CP-FACS AU sequence
60,120,260
10,40,150
10,20,50,260
40,90,170
40,50,70,100,260
10,20,40,50,70,200,260
10,40,70,80,150,160
10,40,60,90,120,150,270
10,260
40,50,60,70
50,60,120,420
10,20,40,80,100,160
10,20,40,80,410
14
15
16
17
18
19
20
21
22
23
24
25
26
FEN
苦悶
心配
後悔
あきれる
うっとり
あきらめ
戸惑い
軽蔑
嫉妬
尊敬
無表情
左目ウインク
右目ウインク
LyricDB.csv に登録されている叙情語は、第?章の(?)に示します。
8
CP-FACS AU sequence
10,40,60,120,150,270,410
10,40,60,90,150,160,270
10,40,70,160,410
10,120
10,60,70,130,410
10,60,70,160,410
10,50,150
11,21,42,60,130,410
20,50,60,100,150
10,50,60,120
0
432
431
Notification:
</FACE>の位置で、指定により待ち合わせ動作を行います。
スイッチ
NOTIFY
キイワード
=”SYNC”
=”ASYNC”
=”ABOART”
待ち合わせ動作
表情変化が終わるまで、タグ位置で待ちます。
表情変化が終わるのを待たずに、タグを通過します。
表情変化を中断して、タグを通過します。
通常、このスイッチの値は状態変数なので、<FACE>タグの中で定義するよりも、<MODE>タグコマ
ンドなどで初期値を設定しておくことを推奨します。システム起動時の値は、SYNC になっています。
記述例
:
<FACS
Switch >
基本 6 表情指示語
</FACS>
能: 仮想骨格をもつ仮想俳優の顔の表情を変化させます。表情変化は、Dr.Ekman が開発した基本 6 表情
を直接指定します。TTC 符号を用いて、表情変化の速度も制御することができます。
Switch :
機
スイッチ名
引数記述法
内容
PERSON
=”仮想俳優名”
GATE
TRANSIT
STABLE
RELEASE
GAIN
REGAIN
=”999”
=”999”
=”999”
=”999”
=”999”
=”999”
TTC
=”999, 999, 999, 999, 999, 999”
<PERSON>タグのスイッチで指定した仮想俳優名を
記述します。
表情待機時間を指定します。
表情立ち上がり移行時間を指定します。
表情保持時間を指定します。
表情立ち下り移行期間を指定する。
状態保持時の強さと最終段階での強さを指定する。
表情終了時の強さを指定する。
GATE、TRANSIT、STABLE、RELEASE、GAIN、REGAIN
を一度に指定する。
数値は整数
数値は整数
数値は整数
数値は整数
数値は整数
数値は整数
時間はすべてミリ秒で指定します。=”100” と記述すると 100 ミリ秒になります。
Block:
</BACS>でタグブロックを囲む必要があります。このタグブロックの中に、基本 6 表情を示す次の言葉
のいずれかを記述します。
基本 6 表情指示語
幸福 嫌悪 怒り
悲しみ 恐れ
驚き
Notification:
</FACS>の位置で、指定により待ち合わせ動作を行います。
スイッチ
NOTIFY
キイワード
=”SYNC”
=”ASYNC”
待ち合わせ動作
表情変化が終わるまで、タグ位置で待ちます。
表情変化が終わるのを待たずに、タグを通過します。
=”ABOART”
表情変化を中断して、タグを通過します。
通常、このスイッチの値は状態変数なので、<FACS>タグの中で定義するよりも、<MODE>タグコマ
ンドなどで初期値を設定しておくことを推奨します。システム起動時の値は、SYNC になっています。
記述例
:
2
<TALK
Switch >
喋る台詞
</TALK>
能: 仮想俳優が、台詞の中の文章を解析して FEN(表情語)や叙情語を探索して、自動的に表情を変え
ながら喋ります。台詞の文章は、<TALK>と</TALK>で囲まれたブロックの中に記述します。
<PERSON>タグで仮想俳優を定義した際に、VSM_FILE スイッチで仮想骨格データを登録した場合
には、喋る時に口をパクパク動かします。1 個の台詞の中に、複数の FEN(表情語)や叙情語を検
出してしまった場合には、正確な動作は期待できません。
Switch :
機
スイッチ名
PERSON
SCRIPT
NOTIFY
Block:
引数記述法
内容
<PERSON>タグのスイッチで指定した仮
想俳優名を記述します。
ON : 字幕を同時に表示します。
OFF :字幕は表示しません。
=”仮想俳優名”
=”ON”
=”OFF”
=”SYNC”
=”ASYNC”
=”ABOAT”
</SPEECH>での待ち合わせ動作を指定し
ます。
</TALK>でタグブロックを囲む必要があります。このタグブロックの中に、喋らせたい台詞を仮名漢字
混じり文で記述します。
Notification:
</TALK>の位置で、指定により待ち合わせ動作を行います。
スイッチ
キイワード
待ち合わせ動作
NOTIFY
=”SYNC”
=”ASYNC”
=”ABOART”
喋り終わるまで、タグ位置で待ちます。
喋り終わるのを待たずに、タグを通過します。
喋るのを中断して、タグを通過します。
通常、このスイッチの値は状態変数なので、<TALK>タグの中で定義するよりも、<MODE>タグコマ
ンドなどで初期値を設定しておくことを推奨します。システム起動時の値は、SYNC になっています。
記述例
:
<TALK >こんにちは。私はとても幸福です。</TALK>
<TIMER Switch> ……………</TIMER>
機
能: 仮想俳優を指定した時間だけ停止させます。瞬きしたり体を揺らしたりはしますが、シナリオの進行
は停止します。
Switch :
スイッチ名
PERSON
WAIT
引数記述法
=”仮想俳優名”
=”t”
内容
停止させたい仮想俳優名を記述します。
停止時間。単位はミリ秒の整数値
Block:
</TIMER>でタグブロックを囲む必要があります。このタグブロックの中に、他のシナリオ記述を入れ
ても構いません。
Notification:
</TIMER>の位置で、指定により待ち合わせ動作を行います。
スイッチ
キイワード
待ち合わせ動作
NOTIFY
=”SYNC”
=”ASYNC”
=”ABOART”
タイマが経過するまで、タグ位置で待ちます。
タイマが経過するのを待たずに、タグを通過します。
タイマを中断して、タグを通過します。
通常、このスイッチの値は状態変数なので、<TIMER>タグの中で定義するよりも、<MODE>タグコマンド
などで初期値を設定しておくことを推奨します。システム起動時の値は、SYNC になっています。
3
1.3
仮想俳優の演技
<STARTUP
機
Switch >
能: 仮想俳優の関節を全て初期値に戻し、配置座標、回転角度も<PERSON>タグコマンドで設定された
値に戻します。
Switch :
スイッチ名
PERSON
内容
<PERSON>タグのスイッチで指定した仮想俳優名を記述します。
ブロック構造はありません。</STARTUP>はありません。
Block:
記述例
引数記述法
=”仮想俳優名”
: <STARTUP PERSON="博士">
<MOTION
Switch >
体演技語
</MOTION>
機
能: モーションキャプチャデータを再生して、仮想俳優に体演技をさせるタグコマンドです。
<MOTION>と</MOTION>のタグブロック中に、演技データベースに登録されている体演技語を記
述することで体演技をさせます。
Switch :
スイッチ名
PERSON
RATE
REPEAT
INIT
ENDING
NOTIFY
引数記述法
=”仮想俳優名”
=”n” 数値は整数
=”n” 数値は整数
=”ON”
=”OFF”
=”NONE”
=”ToBEGIN”
=”ToBASE”
=”SYNC”
=”ASYNC”
=”ABOAT”
内容
<PERSON>タグのスイッチで指定した仮想俳優名を記述します。
モーションの間を補間するフレーム数を指定します。
モーションを繰り返す回数を指定します。
“ON”が指定されると、演技の前に仮想俳優の姿勢を正立に戻す。
モーション終了時の姿勢を指定する。ToBEGIN は最初の姿
勢に戻る。ToBASE は最後の姿勢を維持する。
</MOTION>での待ち合わせ動作を指定します。
Block:
</MOTION>タグコマンドでタグブロックを囲む必要があります。このタグブロックの中に、体演技語を
含む文章を記述します。これらは、<PERSON>タグの BPN_FILE スイッチで指定して読み込んだ体演技デ
ータベースファイル(ActionDB.csv が初期値)に登録されている言葉です。この文節を含む文字列ならば
構いません。体演技語として ActionDB.csv に登録されている言葉を、第 2 章のXXに示します。
Notification:
</MOTION>の位置で、指定により待ち合わせ動作を行います。
スイッチ
キイワード
待ち合わせ動作
NOTIFY
=”SYNC”
=”ASYNC”
=”ABOART”
体演技が終わるまで、タグ位置で待ちます。
体演技が終わるのを待たずに、タグを通過します。
体演技を中断してタグを通過します。
通常、このスイッチの値は状態変数なので、<MOTION>タグの中で定義するよりも、<MODE>タグコ
マンドなどで初期値を設定しておくことを推奨します。システム起動時の値は、SYNC になっています。
記述例
:
4
<ACTION
Switch > BACS 語 あるいは体演技語 </ACTION>
能: BACS 符号(Body Action Coding Sysytem)を再生して、仮想俳優に体演技をさせるタグコマンドです。
<ACTION>と</ACTIN>のタグブロック中に、演技データベースに登録されている BACS 語あるい
は体演技語を記述することで体演技をさせます。
Switch :
機
スイッチ名
引数記述法
内容
PERSON
GATE
TRANSIT
STABLE
RELEASE
GAIN
REGAIN
=”仮想俳優名”
=”gt” 数値は整数
=”tt” 数値は整数
=”st” 数値は整数
=”rt” 数値は整数
=”eg” 数値は整数
=”rg” 数値は整数
TTC
=”gt, tt, st, rt, eg, rg”
<PERSON>タグのスイッチで指定した仮想俳優名を記述します。
表情待機時間を指定します。
表情立ち上がり移行時間を指定します。
表情保持時間を指定します。
表情立ち下り移行期間を指定する。
状態保持時の強さと最終段階での強さを指定する。
表情終了時の強さを指定する。
GATE、TRANSIT、STABLE、RELEASE、GAIN、REGAIN を一度
に指定する。
Gain
(%)
EG
RG
Time
GT
TT
GT : GATE
time
TT : TRANSIT time
ST : STABLE time
RT : RELEASE time
ST
RT
Unit of time is 100ms
EG : GAIN(%)
RG : REGAIN(%)
Block:
</ACTION>タグコマンドでタグブロックを囲む必要があります。このタグブロックの中に、BACS 語ま
たは体演技語を含む文章を記述します。これらは、<PERSON>タグの BPN_FILE スイッチで指定して読み
込んだ体演技データベースファイル(ActionDB.csv が初期値)に登録されている言葉です。この文節を含
む文字列ならば構いません。BACS 語と体演技語として ActionDB.csv に登録されている言葉を、第 2 章の
XXに示します。
Notification:
</ACTION>の位置で、指定により待ち合わせ動作を行います。
スイッチ
NOTIFY
キイワード
=”SYNC”
=”ASYNC”
=”ABOART”
待ち合わせ動作
体演技が終わるまで、タグ位置で待ちます。
体演技が終わるのを待たずに、タグを通過します。
体演技を中断してタグを通過します。
通常、このスイッチの値は状態変数なので、<ACTION>タグの中で定義するよりも、<MODE>タグコ
マンドなどで初期値を設定しておくことを推奨します。システム起動時の値は、SYNC になっています。
記述例
:
5
1.4
仮想俳優の移動や回転
<WALK
Switch >
体演技語
</WALK>
機
能: 仮想俳優を前進/後退させるタグコマンドです。タグブロック内に、体演技語を記述することもでき
ます。その場合には、演技しながら(たとえば歩行動作をしながら)仮想俳優を前進/後退させるこ
とができます。
Switch :
スイッチ名
PERSON
DISTANCE
引数記述法
=”仮想俳優名”
=”dn” 数値は整数
FRAMES
=”fn”
数値は整数
内容
<PERSON>タグのスイッチで指定した仮想俳優名を記述します。
前進する移動量(正の数で前進)を座標系の数値で指定します。
前進するフレーム数を指定します。小さな数値を指定すれば素早
く、大きな数値を指定すれば、ゆっくりと前進します。
Block: </WALK>タグコマンドでタグブロックを囲む必要があります。このタグブロックの中に、体演技語を含
む文章を記述することができます。これらは、<PERSON>タグの BPN_FILE スイッチで指定して読み込ん
だ体演技データベースファイル(ActionDB.csv が初期値)に登録されている言葉です。この文節を含む文
字列ならば構いません。体演技語として ActionDB.csv に登録されている言葉を、
第 2 章のXXに示します。
Notification: </WALK>の位置で、指定により待ち合わせ動作を行います。
スイッチ
NOTIFY
キイワード
=”SYNC”
=”ASYNC”
=”ABOART”
待ち合わせ動作
前進が終わるまで、タグ位置で待ちます。
前進が終わるのを待たずに、タグを通過します。
前進を中断してタグを通過します。
通常、このスイッチの値は状態変数なので、<WALK>タグの中で定義するよりも、<MODE>タグコマンド
などで初期値を設定しておくことを推奨します。システム起動時の値は、SYNC になっています。
記述例
:
6
<JUMP
Switch >
体演技語
</JUMP>
機
能: 仮想俳優を上昇/下降させるタグコマンドです。タグブロック内に、体演技語を記述することもでき
ます。その場合には、演技しながら(たとえば羽ばたかせながら)仮想俳優を上昇/下降させること
ができます。
Switch :
スイッチ名
引数記述法
PERSON
DISTANCE
=”仮想俳優名”
=”dn” 数値は整数
FRAMES
=”fn”
数値は整数
内容
<PERSON>タグのスイッチで指定した仮想俳優名を記述します。
上昇する移動量(正の数で上昇)を座標系の数値で指定します。
上昇するフレーム数を指定します。小さな数値を指定すれば素早
く、大きな数値を指定すれば、ゆっくりと上昇します。
Block: </JUMP>タグコマンドでタグブロックを囲む必要があります。このタグブロックの中に、体演技語を含む
文章を記述することができます。これらは、<PERSON>タグの BPN_FILE スイッチで指定して読み込んだ
体演技データベースファイル(ActionDB.csv が初期値)に登録されている言葉です。この文節を含む文字
列ならば構いません。体演技語として ActionDB.csv に登録されている言葉を、第 2 章のXXに示します。
Notification: </JUMP>の位置で、指定により待ち合わせ動作を行います。
スイッチ
NOTIFY
キイワード
=”SYNC”
=”ASYNC”
=”ABOART”
待ち合わせ動作
上昇/下降が終わるまで、タグ位置で待ちます。
上昇/下降が終わるのを待たずに、タグを通過します。
上昇/下降を中断してタグを通過します。
通常、このスイッチの値は状態変数なので、<JUMP>タグの中で定義するよりも、<MODE>タグコマンドな
どで初期値を設定しておくことを推奨します。システム起動時の値は、SYNC になっています。
<SLIDE
Switch >
体演技語
</SLIDE>
機
能: 仮想俳優を横移動させるタグコマンドです。タグブロック内に、体演技語を記述することもできます。
その場合には、演技しながら(たとえば歩行しながら)仮想俳優を横移動させることができます。
Switch :
スイッチ名
PERSON
DISTANCE
引数記述法
=”仮想俳優名”
=”dn” 数値は整数
FRAMES
=”fn”
数値は整数
内容
<PERSON>タグのスイッチで指定した仮想俳優名を記述します。
横移動する移動量(正の数で右)を座標系の数値で指定します。
横移動するフレーム数を指定します。小さな数値を指定すれば素
早く、大きな数値を指定すれば、ゆっくりと横移動します。
Block: </SLIDE>タグコマンドでタグブロックを囲む必要があります。このタグブロックの中に、体演技語を含
む文章を記述することができます。これらは、<PERSON>タグの BPN_FILE スイッチで指定して読み込ん
だ体演技データベースファイル(ActionDB.csv が初期値)に登録されている言葉です。この文節を含む文
字列ならば構いません。体演技語として ActionDB.csv に登録されている言葉を、
第 2 章のXXに示します。
Notification:
</SLIDE>の位置で、指定により待ち合わせ動作を行います。
スイッチ
NOTIFY
キイワード
=”SYNC”
=”ASYNC”
=”ABOART”
待ち合わせ動作
横移動が終わるまで、タグ位置で待ちます。
横移動が終わるのを待たずに、タグを通過します。
横移動を中断してタグを通過します。
通常、このスイッチの値は状態変数なので、<SLIDE>タグの中で定義するよりも、<MODE>タグコマ
ンドなどで初期値を設定しておくことを推奨します。システム起動時の値は、SYNC になっています。
7
<ROTX
Switch >
体演技語
</ROTX>
機
能: 仮想俳優を、X 軸を中心に回転させるタグコマンドです。タグブロック内に体演技語を記述すること
もできます。その場合には、演技しながら(たとえば歩行しながら)仮想俳優を回転させることがで
きます。
Switch :
スイッチ名
PERSON
TURN
引数記述法
=”仮想俳優名”
=”tn” 数値は整数
FRAMES
=”fn”
Block:
数値は整数
内容
<PERSON>タグのスイッチで指定した仮想俳優名を記述します。
回転角度(正の数で反時計周り)を指定します。
回転するフレーム数を指定します。小さな数値を指定すれば素早
く、大きな数値を指定すれば、ゆっくりと回転します。
</ROTX>タグコマンドでタグブロックを囲む必要があります。このタグブロックの中に、体演技語を含
む文章を記述することができます。これらは、<PERSON>タグの BPN_FILE スイッチで指定して読み込ん
だ体演技データベースファイル(ActionDB.csv が初期値)に登録されている言葉です。この文節を含む文
字列ならば構いません。体演技語として ActionDB.csv に登録されている言葉を、
第 2 章のXXに示します。
Notification: </ROTX>の位置で、指定により待ち合わせ動作を行います。
スイッチ
NOTIFY
キイワード
=”SYNC”
=”ASYNC”
=”ABOART”
待ち合わせ動作
回転が終わるまで、タグ位置で待ちます。
回転が終わるのを待たずに、タグを通過します。
回転を中断してタグを通過します。
通常、このスイッチの値は状態変数なので、<ROTX>タグの中で定義するよりも、<MODE>タグコマ
ンドなどで初期値を設定しておくことを推奨します。システム起動時の値は、SYNC になっています。
記述例
<ROTY
:
Switch >
体演技語
</ROTY>
機
能: 仮想俳優を、Y 軸を中心に回転させるタグコマンドです。タグブロック内に体演技語を記述すること
もできます。その場合には、演技しながら(たとえば歩行しながら)仮想俳優を回転させることがで
きます。
Switch :
スイッチ名
記述法
PERSON
TURN
=”仮想俳優名”
=”tn” 数値は整数
FRAMES
=”fn”
Block:
数値は整数
内容
<PERSON>タグのスイッチで指定した仮想俳優名を記述します。
回転角度(正の数で反時計周り)を指定します。
回転するフレーム数を指定します。小さな数値を指定すれば素早
く、大きな数値を指定すれば、ゆっくりと回転します。
</ROTY>タグコマンドでタグブロックを囲む必要があります。このタグブロックの中に、体演技語を含
む文章を記述することができます。これらは、<PERSON>タグの BPN_FILE スイッチで指定して読み込ん
だ体演技データベースファイル(ActionDB.csv が初期値)に登録されている言葉です。この文節を含む文
字列ならば構いません。体演技語として ActionDB.csv に登録されている言葉を、
第 2 章のXXに示します。
Notification: </ROTY>の位置で、指定により待ち合わせ動作を行います。
スイッチ
NOTIFY
キイワード
=”SYNC”
=”ASYNC”
=”ABOART”
待ち合わせ動作
回転が終わるまで、タグ位置で待ちます。
回転が終わるのを待たずに、タグを通過します。
回転を中断してタグを通過します。
通常、このスイッチの値は状態変数なので、<ROTY>タグの中で定義するよりも、<MODE>タグコマ
ンドなどで初期値を設定しておくことを推奨します。システム起動時の値は、SYNC になっています。
記述例
:
8
<ROTZ
Switch >
体演技語
</ROTZ>
機
能: 仮想俳優を、Z 軸を中心に回転させるタグコマンドです。タグブロック内に体演技語を記述すること
もできます。その場合には、演技しながら(たとえば歩行しながら)仮想俳優を回転させることがで
きます。
Switch :
スイッチ名
記述法
PERSON
TURN
=”仮想俳優名”
=”tn” 数値は整数
FRAMES
=”fn”
Block:
数値は整数
内容
<PERSON>タグのスイッチで指定した仮想俳優名を記述します。
回転角度(正の数で反時計周り)を指定します。
回転するフレーム数を指定します。小さな数値を指定すれば素早
く、大きな数値を指定すれば、ゆっくりと回転します。
</ROTZ>タグコマンドでタグブロックを囲む必要があります。このタグブロックの中に、体演技語を含
む文章を記述することができます。これらは、<PERSON>タグの BPN_FILE スイッチで指定して読み込ん
だ体演技データベースファイル(ActionDB.csv が初期値)に登録されている言葉です。この文節を含む文
字列ならば構いません。体演技語として ActionDB.csv に登録されている言葉を、
第 2 章のXXに示します。
Notification: </ROTZ>の位置で、指定により待ち合わせ動作を行います。
スイッチ
NOTIFY
キイワード
=”SYNC”
=”ASYNC”
=”ABOART”
待ち合わせ動作
回転が終わるまで、タグ位置で待ちます。
回転が終わるのを待たずに、タグを通過します。
回転を中断してタグを通過します。
通常、このスイッチの値は状態変数なので、<ROTZ>タグの中で定義するよりも、<MODE>タグコマ
ンドなどで初期値を設定しておくことを推奨します。システム起動時の値は、SYNC になっています。
記述例
:
9
1.5
小道具 (Stage Parts) の配置と動作
<PARTS
Switch >
能: 舞台に小道具(Stage Parts)となる 3 次元形状データを読み込みます。小道具は、メモリ容量が許す限
り最大 64 個まで読み込めます。配置座標、回転角、座標軸ごとの拡大縮小率をスイッチで指定できま
す。さらに、条件式で状態変数の値を定数と比較して、条件付きで小道具を読み込むこともできます。
Switch :
機
スイッチ名
TDM_FILE
NAME
条件式
POSISTION
ROTATION
SCALE
記述法
=”形状データファイル名”
=”小道具名”
MARK1=”n”
MARK2=”n”
MARK3=”n”
MARK4=”n”
MARK5=”n”
MARK6=”n”
MARK7=”n”
MARK8=”n”
MARK1N=”m”
MARK2N=”m”
MARK3N=”m”
MARK4N=”m”
MARK5N=”m”
MARK6N=”m”
MARK7N=”m”
MARK8N=”m”
=”x, y, z”
=”rx, ry, rz”
=”sx, sy, sz”
内容
PiasArtsit で作成した 3 次元形状データのファイル名。
小道具に名前をつけます。
MARK1 の値が n だったら読み込みます。
MARK2 の値が n だったら読み込みます。
MARK3 の値が n だったら読み込みます。
MARK4 の値が n だったら読み込みます。
MARK5 の値が n だったら読み込みます。
MARK6 の値が n だったら読み込みます。
MARK7 の値が n だったら読み込みます。
MARK8 の値が n だったら読み込みます。
MARK1 の値が m でなければ読み込みます。
MARK2 の値が m でなければ読み込みます。
MARK3 の値が m でなければ読み込みます。
MARK4 の値が m でなければ読み込みます。
MARK5 の値が m でなければ読み込みます。
MARK6 の値が m でなければ読み込みます。
MARK7 の値が m でなければ読み込みます。
MARK8 の値が m でなければ読み込みます。
配置するモデリング座標値
回転角(度数。反時計周りが正の数)
拡大縮小率 0.0 より大きい実数値
MARK1 から MARK8 は、シナリオ中でいつでも参照できる状態変数の予約語です。この予約語の最後に N
をつけると、条件が否定論理(等しくない)になります。MARK1N=”1” は、MARK1 の値が 1 ではないこ
とを表します。状態変数の保持する n,m 等の値は整数値です。実数値は扱えません。条件式は、タグの中に
1 個しか記述することはできません。複数個の条件式を記述すると動作不定になります。
Block:
記述例
ブロック構造ではないため、</PARTS> はありません。
:
以下の例は、無条件に小道具を読み込む記述例です。
<PARTS TDM_FILE="C.tdm" NAME="炭素原子"
POSITION="0.0, -100.0, -1000.0" ROTATION="0.0, 0.0, 0.0" SCALE="1.5,1.5,1.5">
以下の例は、状態変数 MARK1 の値が 1 だったら、小道具を読み込む記述例です。
<PARTS MARK1="1"
TDM_FILE="うすい塩酸.tdm" NAME="塩酸"
POSITION="0.0, 0.0, 0.0" ROTATION="0.0, 0.0, 0.0" SCALE="1.0,1.0,1.0">
以下の例は、状態変数 MARK2 の値が 2 でなければ、小道具を読み込む記述例です。
<PARTS MARKN1="2" TDM_FILE="亜鉛.tdm" NAME=”亜鉛”
POSITION="100.0, 560.0, -2000.0" ROTATION="0.0, 0.0, 0.0" SCALE="1.5, 1.5, 1.5">
10
<MOVE
Switch >
</MOVE>
能: 舞台に配置された小道具(Stage Parts)を指定されたフレーム数で動かします。全体を動かすこともで
きるし、シーングラフ中の NODE を指定して一部分を動かすこともできます。
Switch :
機
スイッチ名
引数記述法
NAME
NODE
TRANSLATION
ROTATION
=”小道具名”
=”NODE のパス名”
=”x, y, z”
=”rx, ry, rz”
FRAMES
=”n”
内容
動かしたい小道具に名前を指定します。
動かしたい小道具の NODE 名
並行移動量を指定します。
回転角(度数。反時計周りが正の数)を指定します。
動かすフレーム数を指定します。小さな数値を指定す
れば素早く、大きな数値を指定すれば、ゆっくりと小
道具が動きます。1 を指定すると、すぐに動きます。
Block: </MOVE>タグコマンドでタグブロックを囲む必要があります。このタグブロックの中に、別の動作を入
れ子で何段でも記述することができます。
Notification: </MOVE>の位置で、指定により待ち合わせ動作を行います。
スイッチ
NOTIFY
キイワード
=”SYNC”
=”ASYNC”
=”ABOART”
待ち合わせ動作
小道具の動きが終わるまで、タグ位置で待ちます。
小道具の動きが終わるのを待たずに、タグを通過します。
小道具の動きを中断してタグを通過します。
通常、このスイッチの値は状態変数なので、<MOVE>タグの中で定義するよりも、<MODE>タグコマンドな
どで初期値を設定しておくことを推奨します。システム起動時の値は、SYNC になっています。
記述例
:
以下の例は、小道具全体を移動します。
<MOVE NAME="見本品"
TRANSLATION="-1600.0, 650.0, -1300.0" FRAMES="10"></MOVE>
以下の例は、小道具の中の Elect という NODE を回転させます。NOTIFY で待ち合わせ無しに設定できます。
<MOVE NAME="電子" NOTIFY="ASYNC"
NODE="Elect"
ROTATION="0.0, 0.0, -50000.0" FRAMES="4000"> </MOVE>
<DELETE_PARTS
機
Switch >
能: 舞台に配置された小道具(Stage Parts)を消去します。
Switch :
スイッチ名
NAME
引数記述法
=”小道具名”
ALL_DELETE
Block:
記述例
内容
消去したい小道具に名前を指定します。
このスイッチを記述すると、現在舞台に配置されてい
る全ての小道具を消去します。
ブロック構造ではないため、</DELETE_PARTS> はありません。
:
<DELETE_PARTS NAME="電子">
<DELETE_PARTS ALL_DELETE>
11
1.6
カメラワークに関する機能
<CAMERA
Switch >
</CAMERA>
機
能: カメラを指定の位置、角度、アングルまで、指定されたフレーム数で移動(カメラワークと呼ぶ)す
るタグコマンドです。
Switch :
スイッチ名
引数記述法
POSISTION
DIRECTION
ANGLE
=”x, y, z”
=”dx, dy, dz”
=”ax, ay, az”
FRAMES
=”99”
Block:
数値は整数
内容
カメラを配置するモデリング座標値
カメラの凝視方向を示すベクトル
カメラの上を表す方向ベクトル。(カメラの回転引数)
カメラワークのフレーム数を指定します。小さな数値を指定すれ
ば素早く、大きな数値を指定すれば、ゆっくりとカメラワークし
ます。1 を指定すると、カメラの配置が即座に変わります。
</CAMERA>タグコマンドでタグブロックを囲む必要があります。
Notification: </CAMERA>の位置で、指定により待ち合わせ動作を行います。
スイッチ
NOTIFY
キイワード
=”SYNC”
=”ASYNC”
=”ABOART”
待ち合わせ動作
カメラワークが終わるまで、タグ位置で待ちます。
カメラワークが終わるのを待たずに、タグを通過します。
カメラワークを中断してタグを通過します。
通常、このスイッチの値は状態変数なので、<CAMERA>タグの中で定義するよりも、<MODE>タグコ
マンドなどで初期値を設定しておくことを推奨します。システム起動時の値は、SYNC になっています。
記述例
:
<CAMERA POSITION = "0.0, 0.0, 0.0" DIRECTION = "0.0, 0.0, -100.0" ANGLE = "0.0, 1.0, 0.0" FRAMES="5">
<LENS
機
Switch >
能: 視野錐台を設定するタグコマンドです。
Switch :
スイッチ名
NEARZ
FARZ
FOVY
Block:
記述例
引数記述法
=”r”
=”r”
=”n”
内容
視点と投影面との距離を指定します。実数値です。
視点と最遠方点との距離を指定します。実数値です。
カメラの視野角度を指定します。整数値です。
ブロック構造はありません。</LENS>はありません。
:
<LENS NEARZ="100.0" FARZ="30000.0" FOVY="40">
12
1.7
音楽と効果音の再生
<MUSIC
Switch >
機
</MUSIC>
能: MIDI ファイルの音楽を再生します。
Switch :
スイッチ名
MIDI_FILE
引数記述法
=”MIDI ファイル名”
内容
MIDI のファイル名を指定します。
Block:
</MUSIC>タグコマンドでタグブロックを囲む必要があります。
Notification:
</MUSIC>の位置で、指定により待ち合わせ動作を行います。
記述例
スイッチ
キイワード
待ち合わせ動作
NOTIFY
=”SYNC”
=”ASYNC”
=”ABOART”
演奏が終わるまで、タグ位置で待ちます。
演奏が終わるのを待たずに、タグを通過します。
演奏を中断してタグを通過します。
:
<SOUND Switch >
機
</SOUIND>
能: WAV ファイルの効果音を再生します。
Switch :
スイッチ名
WAV_FILE
引数記述法
=”WAV ファイル名”
内容
Windows の WAV のファイル名を指定します。
Block:
</SOUND>タグコマンドでタグブロックを囲む必要があります。
Notification:
</SOUND>の位置で、指定により待ち合わせ動作を行います。
記述例
スイッチ
キイワード
待ち合わせ動作
NOTIFY
=”SYNC”
=”ASYNC”
=”ABOART”
音再生が終わるまで、タグ位置で待ちます。
音再生が終わるのを待たずに、タグを通過します。
音再生を中断してタグを通過します。
:
13
1.8
シナリオ進行制御と状態変数の設定
<SCENARIO
Switch>
機
能: 外部のシナリオファイルにハイパーリンクします。すなわち、現在のシナリオから指定されたシナリ
オファイルの再生へジャンプします。元のシナリオには戻れません。
Switch :
スイッチ名
引数記述法
=”CPSL3 シナリオファイル名”
SCENARIO_FILE
:
<SCENARIO
<SCENE
機
拡張子が、.cps の CPSL3 シナリオファイルを指定します。
ブロック構造はありません。</SCENARIO>はありません。
Block:
記述例
内容
Switch>
SCENARIO_FILE="組み立て.cps">
………….. </SCENE>
能: シナリオにチャプタ番号を定義します。チャプタ番号が定義されていると、CAP2 ブラウザのチャプ
タ選択機能で、指定したチャプタへジャンプできます。
Switch :
スイッチ名
引数記述法
NO
n は1から始まるチャプタ番号(整数)を指定します。
=”n”
1つのチャプタは、<SCENARIO>と</SCENARIO>で囲む必要があります。。
Block:
記述例
内容
:
<SCENE NO="1">
(
チャプタ内のシナリオ記述ブロック
)
</SCENE>
<TOTALSCENE
機
Switch>
能: シナリオ内のに合計チャプタ数を定義します。<SCENE>タグを記述する前に、初期設定として記述
しておく必要があります。
Switch :
スイッチ名
TOTALNO
=”n”
内容
n は1から始まる合計チャプタ数(整数)を指定します。
ブロック構造はありません。</TOTALSCENE>はありません。
Block:
記述例
引数記述法
:
<TOTALSCENE
TOTALNO="3">
14
<COM>
機
コメント文
</COM>
能: シナリオ内にコメント文(注釈)を記述しておきたい時に使用します。
Switch :
コメント文は、<COM>と</COM>で囲む必要があります。コメント文は何行にわたっても構いません。
Block:
記述例
無し
:
<COM>
****************************************************************
これは、CPSL3 の使い方を教える解説映像シナリオです。
****************************************************************
</COM>
<STOP>
機
能: シナリオ内 で映像提示を強制的に停止します。通常は使用しませんが、シナリオのデバッグ中には
役に立ちます。
Switch :
Block:
無し
ブロック構造はありません。</STOP>はありません。
<EXIT>
機
能: 映像提示を強制的に停止し CAP2 ブラウザを自動的に終了します。この機能は、<EXPLAIN>タグで
呼び出す解説シナリオの最後に記述すると効果的です。探索学習モードでもうひとつの CAP2 ブラウ
ザを呼び出した時、解説が終了すると自動的にその CAP2 を終了させることができます。
Switch :
Block:
無し
ブロック構造はありません。</EXIT>はありません。
15
<MODE Switch>
機
能: CPSL3 の状態変数に値を設定します。状態変数は、設定されたブロックより内側のブロックで有効
になるスコープ機能を持っています。シナリオの先頭で状態変数に値を設定すると、全てのブロック
で有効になります。
Switch :
スイッチ名
PERSON
引数記述法
GATE
TRANSIT
STABLE
RELEASE
GAIN
REGAIN
=”仮想俳優名”
=”SYNC”
=”ASYNC”
=”ABOART”
=”ON”
=”OFF”
=”gt” 数値は整数
=”tt” 数値は整数
=”st” 数値は整数
=”rt” 数値は整数
=”eg” 数値は整数
=”rg” 数値は整数
TTC
=”gt, tt, st, rt, eg, rg”
RATE
REPEAT
DISTANCE
TURN
=”n” 数値は整数
=”n” 数値は整数
=”ON”
=”OFF”
=”dn” 数値は整数
=”tn” 数値は整数
FRAMES
=”fn”
WAIT
=”t”
NOTIFY
SCRIPT
INIT
<PERSON>タグのスイッチで指定した仮想俳優名を記述します。
動作が終わるまで、タグ位置で待ちます。
動作が終わるのを待たずに、タグを通過します。
動作を中断してタグを通過します。
ON : 字幕を同時に表示します。
OFF :字幕は表示しません。
表情待機時間を指定します。
表情立ち上がり移行時間を指定します。
表情保持時間を指定します。
表情立ち下り移行期間を指定する。
状態保持時の強さと最終段階での強さを指定する。
表情終了時の強さを指定する。
GATE、TRANSIT、STABLE、RELEASE、GAIN、REGAIN を一度
に指定する。
モーションの間を補間するフレーム数を指定します。
モーションを繰り返す回数を指定します。
“ON”が指定されると、演技の前に仮想俳優の姿勢を正立に戻す。
移動する移動量を座標系の数値で指定します。
回転角度(正の数で反時計周り)を指定します。
移動するフレーム数を指定します。小さな数値を指定すれば素早
く、大きな数値を指定すれば、ゆっくりと移動します。
<TIMER>の停止時間。単位はミリ秒の整数値
ブロック構造はありません。</MODE>はありません。
Block:
記述例
数値は整数
内容
:
<MODE PERSON="奈々"
<MODE
SCRIPT="OFF"
NOTIFY="SYNC" RATE="2" INIT=”ON”>
TTC="0,4,300,10,100,100">
16
Interactive 動作(対話動作)
1.9
<REQUEST
機
Switch >
能: 回答属性番号(CASE)を与えて小道具(Stage Parts) を舞台に配置します。この小道具を AnswerTarget
と呼びます。AnswerTarget として、通常の 3 次元形状モデルやテキストパネルを指定できます。また、
透明な長方形を Answer Target にして配置することもできます。この利用法は画面のある特定の領域を
AnswerTarget に設定できるので効果的です。AnwerTarget がマウスでクリックされると、指定された回
答属性番号(CASE 番号)をもつ<ANSWER>ブロックへジャンプします。<PARTS>タグと同じように、条
件式を用いて条件付きで AnswerTarget を配置するかどうかを設定できます。
Switch :
スイッチ名
TDM_FILE
CASE
条件式
POSISTION
ROTATION
SCALE
REQUEST_END
引数記述法
=”形状データファイル名”
=”n” 数値は整数
MARK1=”n”
MARK2=”n”
MARK3=”n”
MARK4=”n”
MARK5=”n”
MARK6=”n”
MARK7=”n”
MARK8=”n”
MARK1N=”m”
MARK2N=”m”
MARK3N=”m”
MARK4N=”m”
MARK5N=”m”
MARK6N=”m”
MARK7N=”m”
MARK8N=”m”
=”x, y, z”
=”rx, ry, rz”
=”sx, sy, sz”
=”ON”
=”OFF”
内容
PiasArtsit で作成した 3 次元形状データのファイル名。
回答属性番号 n は 1 から始まる連番の整数値です。
MARK1 の値が n だったら読み込みます。
MARK2 の値が n だったら読み込みます。
MARK3 の値が n だったら読み込みます。
MARK4 の値が n だったら読み込みます。
MARK5 の値が n だったら読み込みます。
MARK6 の値が n だったら読み込みます。
MARK7 の値が n だったら読み込みます。
MARK8 の値が n だったら読み込みます。
MARK1 の値が m でなければ読み込みます。
MARK2 の値が m でなければ読み込みます。
MARK3 の値が m でなければ読み込みます。
MARK4 の値が m でなければ読み込みます。
MARK5 の値が m でなければ読み込みます。
MARK6 の値が m でなければ読み込みます。
MARK7 の値が m でなければ読み込みます。
MARK8 の値が m でなければ読み込みます。
配置するモデリング座標値
回転角(度数。反時計周りが正の数)
拡大縮小率 0.0 より大きい実数値
ON の時、マウスクリックを待つ待機状態に入ります。
このスイッチの省略時は OFF です。
MARK1 から MARK8 は、シナリオ中でいつでも参照できる状態変数の予約語です。この予約語の最後に N
をつけると、条件が否定論理(等しくない)になります。MARK1N=”1” は、MARK1 の値が 1 ではないこ
とを表します。状態変数の保持する n,m 等の値は整数値です。実数値は扱えません。条件式は、タグの中に
1 個しか記述することはできません。複数個の条件式を記述すると動作不定になります。
Block:
記述例
ブロック構造はありません。</REQUEST>はありません。
: <REQUEST>タグは、特殊な並記法で使用します。複数の AnswerTarget を配置してから、操作者
のマウスクリックを待つ待機状態に入るため、特殊なスイッチ、REQUEST_END を用います。
<REQUEST CASE="1" TDM_FILE="ボタン左上.tdm" POSITION="-500.0, 600.0, -2000.0"
ROTATION="0.0, 0.0, 0.0" SCALE="1.5, 1.5, 1.5">
<REQUEST CASE="2" TDM_FILE="ボタン上.tdm" POSITION="100.0, 560.0, -2000.0"
ROTATION="0.0, 0.0, 0.0" SCALE="1.5, 1.5, 1.5">
<REQUEST CASE="3" TDM_FILE="ボタン右上.tdm" POSITION="800.0, 600.0, -2000.0"
ROTATION="0.0, 0.0, 0.0" SCALE="1.5, 1.5, 1.5">
<REQUEST CASE="4" TDM_FILE="ボタン右下.tdm" POSITION="0.0, -3000.0, -2000.0"
ROTATION="0.0, 0.0, 0.0" SCALE="0.5, 0.5, 0.5" REQUEST_END="ON">
17
<ANSWER
Switch >
</ANSWER>
能: <REQUEST>タグで列挙した AnswerTarget が操作者によってマウスクリックされた時にジャンプ
するするエントリポイントブロックを定義します。<REQUEST>タグの CASE スイッチで定義され
た番号と同じ番号を持つ<ANSWER>ブロックがエントリポイントになります。
Switch :
機
スイッチ名
=”n”
CASE
Block:
引数記述法
数値は整数
内容
回答属性番号
n は 1 から始まる連番の整数値です。
</ANSWER>タグコマンドでタグブロックを囲む必要があります。このタグブロックの中に、必要な処
理を記述します。通常は、<SCORE>タグコマンドを用いて、得点変数 POINT や状態変数 MARK1~MARK8
に値を加算したります。
Notification: </ANSWER>の位置での待ち合わせ動作はありません。CASE 番号の一致しない<ANSWER>ブロ
ックは中身を実行せずに通過し、CASE 番号の一致する<ANSWER>ブロックは、ブロック内のタグコ
マンドを実行します。そのまま、シナリオの進行は下に続きます。もし、<ANSWER>ブロックの中か
ら他のシナリオへ分岐したい場合には、ブロック内で<SCENARIO>タグを実行します。
記述例
:
<ANSWER CASE="1">
<SCORE POINTS="100" MARK1="1">
<ANSWER CASE="2">
<SCORE POINTS="50" MARK1="2">
<ANSWER CASE="3">
<SCORE POINTS="50" MARK1="3">
<ANSWER CASE="4">
<SCORE POINTS="50" MARK1="4">
<SCENARIO SCENARIO_FILE="部品選択3.cps">
<SCORE
機
</ANSWER>
</ANSWER>
</ANSWER>
</ANSWER>
Switch >
能: <SCORE>タグには 2 つの使い方があります。
ひとつは、得点変数 POINT や状態変数 MARK1~MARK8
に値を加算する機能です。もうひとつは、得点によって場合わけをして多岐シナリオ分岐を行う機能です。
Switch :
スイッチ名
CLEAR
POINT
MARK1
MARK2
MARK3
MARK4
MARK5
MARK6
MARK7
MARK8
OVER
THEN
Block:
引数記述法
=”ON”
=”p”
=m”
=m”
=m”
=m”
=m”
=m”
=m”
=m”
=”pt”
=”CPSL3 シナリオファイル名”
内容
POINT 変数と全ての MARK 変数の値を 0 に初期化する。
POINT に p を加算する。p は符号付きの整数値。
MARK1 に m を加算する。m は符号付きの整数値。
MARK2 に m を加算する。m は符号付きの整数値。
MARK3 に m を加算する。m は符号付きの整数値。
MARK4 に m を加算する。m は符号付きの整数値。
MARK5 に m を加算する。m は符号付きの整数値。
MARK6 に m を加算する。m は符号付きの整数値。
MARK7 に m を加算する。m は符号付きの整数値。
MARK8 に m を加算する。m は符号付きの整数値。
POINT の値が pt 以上の場合、THEN に続くシナリオに分岐する。
拡張子が、.cps の CPSL3 シナリオファイルを指定します。
ブロック構造はありません。</SCORE>はありません。
記述例:以下の例は、POINT 変数や MARK4 変数に値を加算する例です。
<SCORE POINTS="-50" MARK4="1">
以下の例は、POINT 変数の値によって、場合わけ分岐(外部シナリオを起動)する例です。
<SCORE OVER="300" THEN="Ans1.cps">
<SCORE OVER="250" THEN="Ans2.cps">
<SCORE OVER="60"
THEN="Ans3.cps">
<SCENARIO SCENARIO_FILE="Ans4.cps">
<COM> POINT が 300 点以上なら Ans1.cps へ</COM>
<COM> POINT が 250 点以上なら Ans2.cps へ</COM>
<COM> POINT が 60 点以上なら Ans3.cps へ</COM>
<COM> POINT が 60 点未満なら Ans4.cps へ</COM>
この場合は、最後の行は<SCENARIO>タグで終わらなければなりません。
18
<INPUTNUM
Switch >
機
能: 電卓に似た数値入力パッドを表示して、操作者がマウスクリックで数値入力(ただし、整数のみ)を
行う機能です。この時点で、正解の値を指定しておきます。操作者の入力値が正解ならば
<CORRECT>タグブロックへ、不正解ならば<INCORRECT>タグブロックへ分岐します。
Switch :
スイッチ名
引数記述法
VALUE
POSISTION
ROTATION
SCALE
内容
正解の整数値 n を指定します。
配置するモデリング座標値
回転角(度数。反時計周りが正の数)
拡大縮小率 0.0 より大きい実数値
=”n”
=”x, y, z”
=”rx, ry, rz”
=”sx, sy, sz”
数値表示域。ここに電卓のように入力
した数値が表示される。
数値ボタン。操作は
電卓と同じ。
決定ボタン。ここをクリックすると、
数値入力パッドの入力待機状態を終
了して、シナリオ進行に戻る。
クリアボタン。ここを
クリックすると、数値
入力域が0に初期化さ
れる。
表示される数値入力パッド
ブロック構造はありません。</INPUTNUM>はありません。
Block:
記述例
:
<INPUTNUM
VALUE="20" POSITION="200.0, -550.0, -4000.0" ROTATION="0.0, 0.0, 0.0" SCALE="1.0, 1.0, 1.0">
<INPUTWORD
Switch >
機
能: 文章入力ダイアログボックスを表示して、操作者がキイ入力する機能です。この時点で、正解の文字
列を指定しておきます。操作者の入力値が正解ならば<CORRECT>タグブロックへ、不正解ならば
<INCORRECT>タグブロックへ分岐します。
Switch :
スイッチ名
ANSWER
POSISTION
引数記述法
=”正解文字列”
=”x, y, z”
内容
正解の文字列を指定します。日本語文字列も可能です。
ダイアログボックスを配置するモデリング座標値
文字入力領域。かな
漢字変換も可能。
決定ボタン。ここをクリックすると、
文字入力パッドの入力待機状態を終
了して、シナリオ進行に戻る。
表示される文字入力パッド
ブロック構造はありません。</INPUTWORD>はありません。
Block:
記述例
:
<INPUTWORD
ANSWER="水素"
POSITION="200.0, -550.0, -4000.0">
19
<CORRECT>
……正解時の処理………….……….. </CORRECT>
<INCORRECT> ……不正解の時の処理…………….. </INCORRECT>
機
能: <INPUTNUM>タグや<INPUTWORD>タグで操作者が入力した回答に応じて、正解の時にジャンプ
するエントリポイントブロックと、不正解のの時にジャンプするエントリポイントブロックを定義しま
す。正解のときは、<CORRECT>ブロックを、不正解のときは<INCORRECT>ブロックへ分岐します。
Switch :
無し
Block: </CORRECT>タグコマンドまたは</INCORRECT>タグコマンドでタグブロックを囲む必要があります。
このタグブロックの中に、必要な処理を記述します。通常は、<SCORE>タグコマンドを用いて、得点変
数 POINT や状態変数 MARK1~MARK8 に値を加算したります。
Notification: </CORRECT>,</INCORRECT>の位置での待ち合わせ動作はありません。該当しないブロックは
中身を実行せずに通過し、該当するブロックは、ブロック内のタグコマンドを実行します。そのまま、シ
ナリオの進行は下に続きます。もしブロックの中から他のシナリオへ分岐したい場合には、ブロック内で
<SCENARIO>タグを実行します。
記述例
:
<SPEECH PERSON="なな">私の年齢はいくつでしょう?</SPEECH>
<INPUTNUM VALUE="20"
POSITION="200.0, -550.0, -4000.0" ROTATION="0.0, 0.0, 0.0" SCALE="1.0, 1.0, 1.0">
<CORRECT>
<SPEECH PERSON="なな">正解です。</SPEECH>
</CORRECT>
<INCORRECT>
<SPEECH PERSON="なな">残念でした。間違いです。20 才です。</SPEECH>
</INCORRECT>
20
Virtual Exploratory Learning(VEL)機能
1.10
<INTERNET
機
Switch>
能:
インターネットアドレス(URL)を与えて小道具(Stage Parts) を舞台に配置します。この小道具を
INTERNET Target と呼びます。INTERNET Target として、通常の 3 次元形状モデルやテキストパネル
を指定できます。また、透明な長方形を INTERNET Target にして配置することもできます。この利用
法は画面のある特定の領域を INTERNET Target に設定できるので効果的です。INTERNET Target がマ
ウスでクリックされると、Windows インターネットエクスプローラが自動的にスタートし、指定され
たWEBページを開きます。
Switch :
スイッチ名
引数記述法
TDM_FILE
PARAM
POSISTION
ROTATION
SCALE
=”形状データファイル名”
=”URL”
=”x, y, z”
=”rx, ry, rz”
=”sx, sy, sz”
内容
INTERNET Target の 3 次元形状データのファイル名。
WEB ページの URL アドレス、またはファイル名
配置するモデリング座標値
回転角(度数。反時計周りが正の数)
拡大縮小率 0.0 より大きい実数値
ブロック構造はありません。</INTERNET>はありません。
Block:
記述例:
<INTERNET
<MPLAYER
機
TDM_FILE="Target1.tdm"
PARAM="http://ja.wikipedia.org/wiki/%E5%A1%A9%E9%85"
POSITION="-500.0, 600.0, -2000.0" ROTATION="0.0, 0.0, 0.0" SCALE="1.5, 1.5, 1.5">
Switch>
能:
Windows 動画ファイル名(.AVI 形式ファイル) を与えて、小道具(Stage Parts) を舞台に配置します。こ
の小道具を MEDIA PLAYER Target と呼びます。MEDIA PLAYER Target として、通常の 3 次元形状モ
デルやテキストパネルを指定できます。また、透明な長方形を MEDIA PLAYER Target にして配置する
こともできます。この利用法は画面のある特定の領域を MEDIA PLAYER Target に設定できるので効
果的です。MEDIA PLAYER Target がマウスでクリックされると、Windows Media Player が自動的にス
タートし、指定された動画ファイル(.AVI 形式)を再生します。
Switch :
スイッチ名
TDM_FILE
PARAM
POSISTION
ROTATION
SCALE
Block:
引数記述法
=”形状データファイル名”
=”動画ファイル名”
=”x, y, z”
=”rx, ry, rz”
=”sx, sy, sz”
内容
MEDIA PLAYER Target の 3 次元形状データのファイル名。
Windows AVI 形式の動画ファイル名
配置するモデリング座標値
回転角(度数。反時計周りが正の数)
拡大縮小率 0.0 より大きい実数値
ブロック構造はありません。</MPLAYER>はありません。
記述例:
<MPLAYER
TDM_FILE="Target2.tdm" PARAM="DCmotor.avi"
POSITION="-100.0, 600.0, -2000.0" ROTATION="0.0, 0.0, 0.0" SCALE="1.2, 1.2, 1.2">
21
<EXPLAIN
Switch>
機
能:
CPSL3 で記述されたシナリオファイル名を与えて、小道具(Stage Parts) を舞台に配置します。この小道
具を EXPLAIN Target と呼びます。EXPLAIN Target として、通常の 3 次元形状モデルやテキストパネ
ルを指定できます。また、透明な長方形を EXPLAIN Target にして配置することもできます。この利用
法は画面のある特定の領域を EXPLAIN Target に設定できるので効果的です。EXPLAIN Target がマウ
スでクリックされると、CAP2 Browser が自動的にスタートし、指定された 3DCG アニメーションを再
生します。シナリオファイルの最後に<EXIT>タグが記述されていると、CAP2 Browser は自動的に終了
します。
Switch :
スイッチ名
引数記述法
TDM_FILE
PARAM
POSISTION
ROTATION
SCALE
=”形状データファイル名”
=”CPSL3 ファイル名”
=”x, y, z”
=”rx, ry, rz”
=”sx, sy, sz”
内容
EXPLAIN Target の 3 次元形状データのファイル名。
CPSL3 で記述されたシナリオファイル名
配置するモデリング座標値
回転角(度数。反時計周りが正の数)
拡大縮小率 0.0 より大きい実数値
ブロック構造はありません。</MEXPLAIN>はありません。
Block:
記述例:
<EXPLAIN
TDM_FILE="Target3.tdm" PARAM="Hint1.cps"
POSITION="200.0, 600.0, -2000.0" ROTATION="0.0, 0.0, 0.0" SCALE="1.0, 1.0, 1.0">
<SHELL Switch>
機
能:
起動したい任意の Windows アプリケーションソフトウェアの情報を与えて、小道具(Stage Parts) を舞
台に配置します。この小道具を SHELL Target と呼びます。SHELL Target として、通常の 3 次元形状
モデルやテキストパネルを指定できます。また、透明な長方形を SHELL Target にして配置することも
できます。この利用法は画面のある特定の領域を SHELL Target に設定できるので効果的です。SHELL
Target がマウスでクリックされると、指定された Windows アプリケーションが自動的にスタートしま
す。定義する情報は、アプリケーションの位置するパス名、コマンドファイル名、コマンド引数文字列
の 3 個です。原則として、Windows 配下で動作するプログラムならば、製品版、自作品を問わず、何で
も起動できます。
Switch :
スイッチ名
TDM_FILE
PATH
COMMAND
PARAM
POSISTION
ROTATION
SCALE
Block:
引数記述法
内容
PiasArtsit で作成した 3 次元形状データのファイル名。
起動したいソフトウェアの位置するパス名
起動したいソフトウェアのファイル名
起動ソフトウェアに与える引数文字列
配置するモデリング座標値
回転角(度数。反時計周りが正の数)
拡大縮小率 0.0 より大きい実数値
=”形状データファイル名”
=”パス名”
=”アプリケーションファイル名
=”パラメータ文字列”
=”x, y, z”
=”rx, ry, rz”
=”sx, sy, sz”
ブロック構造はありません。</SHELL>はありません。
記述例:
以下の例は、Microsoft Excel(表計算ソフト)を起動し、Data1.xls というデータを開きます。
<SHELL
TDM_FILE="Target4.tdm”
PATH="C:¥Program Files¥Microsoft Office¥Ofice11"
COMMAND="Excel.exe" PARAM = "Data1.xls"
POSITION="800.0, 600.0, -2000.0"
ROTATION="0.0, 0.0, 0.0" SCALE="1.5, 1.5, 1.5">
22
<EXPLORE
機
Switch>
能:
仮想探索学習モード( Virtual Exploratory Learning Service :VEL Service) に入って待機状態になる
タグコマンドです。VEL Service を脱出して通常のシナリオ進行に戻るための小道具(Stage Parts) を舞
台に配置します。この小道具を ESCAPE Target と呼びます。ESCAPE Target として、通常の 3 次元形
状モデルやテキストパネルを指定できます。また、透明な長方形を ESCAPE Target にして配置するこ
ともできます。この利用法は画面のある特定の領域を ESCAPE Target に設定できるので効果的です。
ESCAPE Target がマウスでクリックされると、VEL service を脱出して通常のシナリオ進行モードに戻
ります。<EXPLORE>タグを実行する前に、<INTERNET>,<MPLAYER>,<EXPLAIN>,<SHELL>タグコマ
ンドを使って、探索用のターゲットを定義しておく必要があります。また、ESCAPE Target を定義せず
に<EXPLORE>タグコマンドを実行すると、VEL Service から脱出できなくなるので、注意が必要です。
Switch :
スイッチ名
TDM_FILE
POSISTION
ROTATION
SCALE
Block:
引数記述法
=”形状データファイル名”
=”x, y, z”
=”rx, ry, rz”
=”sx, sy, sz”
内容
ESCAPE Target とする 3 次元形状データのファイル名。
配置するモデリング座標値
回転角(度数。反時計周りが正の数)
拡大縮小率 0.0 より大きい実数値
ブロック構造はありません。</EXPLORE>はありません。
記述例:
<INTERNET
<MPLAYER
<EXPLAIN
<SHELL
<EXPLORE
TDM_FILE="Target1.tdm"
PARAM="http://ja.wikipedia.org/wiki/%E5%A1%A9%E9%85"
POSITION="-500.0, 600.0, -2000.0" ROTATION="0.0, 0.0, 0.0" SCALE="1.5, 1.5, 1.5">
TDM_FILE="Target2.tdm" PARAM="DCmotor.avi"
POSITION="-100.0, 600.0, -2000.0" ROTATION="0.0, 0.0, 0.0" SCALE="1.2, 1.2, 1.2">
TDM_FILE="Target3.tdm" PARAM="Hint1.cps"
POSITION="200.0, 600.0, -2000.0" ROTATION="0.0, 0.0, 0.0" SCALE="1.0, 1.0, 1.0">
TDM_FILE="Target4.tdm”
PATH="C:¥Program Files¥Microsoft Office¥Ofice11"
COMMAND="Excel.exe" PARAM = "Data1.xls"
POSITION="800.0, 600.0, -2000.0"
ROTATION="0.0, 0.0, 0.0" SCALE="1.5, 1.5, 1.5">
TDM_FILE=" Escape1.tdm"
POSITION="-1000.0, 700.0, -1500.0"
ROTATION="0.0, 0.0, 0.0" SCALE="1.8, 1.8, 1.5">
23
第2章
CPSL3 状態変数の一覧
CPSL3 の状態変数には、グローバルな状態変数と、ブロックスコープを持つ状態変数があります。グローバル
な状態変数はブロックの位置にかかわらず有効で、<SCENARIO>タグや<SCORE>タグでシナリオが分岐しても
値が保持されます。一方、ブロックスコープを持つ状態変数は、定義されたブロックの内側でのみ値を保持し、ブ
ロックの外側に出ると、元の値に戻ります。(スタック制御された状態変数といいます。)
(1) グローバルな状態変数
状態変数名
POINT
MARK1
MARK2
MARK3
MARK4
MARK5
MARK6
MARK7
MARK8
記述法
=”p”
=m”
=m”
=m”
=m”
=m”
=m”
=m”
=m”
内容
POINT に p を加算する。p は符号付きの整数値。
MARK1 に m を加算する。m は符号付きの整数値。
MARK2 に m を加算する。m は符号付きの整数値。
MARK3 に m を加算する。m は符号付きの整数値。
MARK4 に m を加算する。m は符号付きの整数値。
MARK5 に m を加算する。m は符号付きの整数値。
MARK6 に m を加算する。m は符号付きの整数値。
MARK7 に m を加算する。m は符号付きの整数値。
MARK8 に m を加算する。m は符号付きの整数値。
(2) ブロックスコープを持つ状態変数
状態変数名
PERSON
引数記述法
GATE
TRANSIT
STABLE
RELEASE
GAIN
REGAIN
=”仮想俳優名”
=”SYNC”
=”ASYNC”
=”ABOART”
=”ON”
=”OFF”
=”gt” 数値は整数
=”tt” 数値は整数
=”st” 数値は整数
=”rt” 数値は整数
=”eg” 数値は整数
=”rg” 数値は整数
TTC
=”gt, tt, st, rt, eg, rg”
RATE
REPEAT
TURN
=”n” 数値は整数
=”n” 数値は整数
=”ON”
=”OFF”
=”dn” 数値は整数
=”NONE”
=”ToBEGIN”
=”ToBASE”
=”tn” 数値は整数
FRAMES
=”fn”
WAIT
=”t”
NOTIFY
SCRIPT
INIT
DISTANCE
ENDING
数値は整数
内容
<PERSON>タグのスイッチで指定した仮想俳優名を記述します。
動作が終わるまで、タグ位置で待ちます。
動作が終わるのを待たずに、タグを通過します。
動作を中断してタグを通過します。
ON : 字幕を同時に表示します。
OFF :字幕は表示しません。
表情待機時間を指定します。
表情立ち上がり移行時間を指定します。
表情保持時間を指定します。
表情立ち下り移行期間を指定する。
状態保持時の強さと最終段階での強さを指定する。
表情終了時の強さを指定する。
GATE、TRANSIT、STABLE、RELEASE、GAIN、REGAIN を一度
に指定する。
モーションの間を補間するフレーム数を指定します。
モーションを繰り返す回数を指定します。
“ON”が指定されると、演技の前に仮想俳優の姿勢を正立に戻す。
移動する移動量を座標系の数値で指定します。
モーション終了時の姿勢を指定する。ToBEGIN は最初の姿
勢に戻る。ToBASE は最後の姿勢を維持する。
回転角度(正の数で反時計周り)を指定します。
移動するフレーム数を指定します。小さな数値を指定すれば素早
く、大きな数値を指定すれば、ゆっくりと移動します。
<TIMER>の停止時間。単位はミリ秒の整数値
24
第3章
CPSL3 ブロック記述ルール
CPSL3 の構文形式を示す.1block の記述は<TAG>記号と</TAG>記号に囲まれた部分に Body Text と呼ぶ文章
を入力する.Body Text の任意の位置に,別の Block を挿入することができる(Block Nesting と呼ぶ).挿入さ
れた Block を下位 Block と呼ぶ.この場合,第 1 レベルの Body Text は前半部分と後半部分に分断される.この
Block Nesting は何段でも可能である.また,Body Text の複数箇所に別の Block を挿入することもできる.この
場合は,Body Text は,その都度分割される.
1)
Case of Non-Nesting block
<TAG Switch>Body Text</TAG>
2)
Case of Nesting Block
<TAG Switch>Body Text1-1
<TAG Switch>Body Text2</TAG>
Body Text1-2
</TAG>
3)
Case of Nesting Blocks
<TAG Switch>Body Text1-1
<TAG Switch>Body Text2</TAG>
Body Text1-2
<TAG Switch>Body Text3</TAG>
Body Text1-3
</TAG>
CPSL3 の記述を容易にするため,各処理が動作パラメータとして参照する値を CPSL ブラウザが状態変数とし
て保持します。<TAG>コマンドは状態変数を参照して指示された処理を実行します。<TAG>ブラケット内の
Switch は,状態変数に値をセットします。Switch でセットされた状態変数の値は,その<TAG>ブロックおよびそ
のブロックの下位ブロック群でのみ有効になります。
(状態変数のスコープ機能と呼びます)Switch を記述した b
ブロックの外側にでると状態変数は元の値に戻ります。
シナリオの中で音声,表情,体演技を同期させたり,複数人の動作を正確に時間制御するため,ブロック同期処
理機能があります。<TAG>は,指示された処理の実行を開始し,</TAG>は,その処理についての同期処理を行い
ます。この同期処理には 3 つのモードがあります。
Switch
NOTIFY
TIMING
WAIT
値
SYNC
ASYNC
ABORT
NONE
eTRANSIT
eSTABLE
eRELEASE
Integer
機能
Wait the end of work. (default)
Passes without waiting.
Terminate work forcibly.
No wait. (Same as ASYNC)
Wait the end of transition time. (default)
Wait the end of stable time.
Wait the end of TTC
Wait for specified time.
SYNC モード(初期値)では,</TAG>は処理終了を待ちます。ASYNC モードでは,処理終了を待たずに通過
します。ABORT モードでは,</TAG>は処理を強制終了してブロックの外側に出ます。
25
第4章
CPSL3 の主要なデータベース
(1) FEN 表情語
1
2
3
4
5
6
7
8
9
10
11
12
13
FEN
幸福
悲しみ
驚き
嫌悪
怒り
恐れ
寂しさ
困惑
照れ笑い
激怒
満足
不満
疑惑
CP-FACS AU sequence
60,120,260
10,40,150
10,20,50,260
40,90,170
40,50,70,100,260
10,20,40,50,70,200,260
10,40,70,80,150,160
10,40,60,90,120,150,270
10,260
40,50,60,70
50,60,120,420
10,20,40,80,100,160
10,20,40,80,410
14
15
16
17
18
19
20
21
22
23
24
25
26
FEN
苦悶
心配
後悔
あきれる
うっとり
あきらめ
戸惑い
軽蔑
嫉妬
尊敬
無表情
左目ウインク
右目ウインク
CP-FACS AU sequence
10,40,60,120,150,270,410
10,40,60,90,150,160,270
10,40,70,160,410
10,120
10,60,70,130,410
10,60,70,160,410
10,50,150
11,21,42,60,130,410
20,50,60,100,150
10,50,60,120
0
432
431
(2) 叙情語 ( LyricDB.csv に登録されている言葉)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
叙情語
うれしい
悲しい
びっくり
うさんくさい
うるさい
怖い
助けて
つらい
照れくさい
むかつく
楽し
面白い
寂しい
泣きたい
しんどい
すごい
幸せ
かわいそう
がっかり
満足
素晴らしい
きれい
可愛い
けち
おいしい
汚い
怒り
良い
悪い
よろしい
ゆゆしい
いまわしい
FEN 表情語
幸福
悲しみ
驚き
嫌悪
怒り
恐れ
恐れ
寂しさ
照れ笑い
激怒
幸福
幸福
寂しさ
悲しみ
悲しみ
驚き
幸福
悲しみ
悲しみ
幸福
幸福
幸福
幸福
嫌悪
幸福
嫌悪
怒り
幸福
嫌悪
満足
恐れ
恐れ
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
叙情語
いまいましい
ひどい
さかしい
こざかしい
さとい
うとい
うとましい
おこがましい
うまい
つたない
難しい
優しい
安い
憎い
心もとない
おぼつかない
ぎこちない
正しい
あどけない
がんぜない
たわいない
なまめかしい
おとなしい
奥ゆかしい
よんどころない
さもしい
卑しい
あさましい
みすぼらしい
しがない
しどけない
あられもない
26
FEN 表情語
不満
嫌悪
軽蔑
嫌悪
尊敬
軽蔑
嫌悪
嫌悪
驚き
困惑
困惑
幸福
驚き
怒り
心配
戸惑い
戸惑い
満足
幸福
あきらめ
軽蔑
うとっり
心配
尊敬
あきらめ
嫌悪
嫌悪
嫌悪
嫌悪
不満
嫌悪
軽蔑
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
叙情語
はしたない
えげつない
いぎたない
いじきたない
つつがない
たくましい
弱い
か弱い
いじらしい
幼い
うらわかい
すげない
そっけない
なにげない
さりげない
水くさい
おぞましい
雄々しい
いさぎよい
女々しい
口惜しい
情けない
嘆かわしい
わびしい
つまらない
可笑しい
誇らしい
晴れがましい
いとおしい
愛しい
いたわしい
痛ましい
FEN 表情語
嫌悪
嫌悪
あきれる
嫌悪
尊敬
驚き
心配
心配
幸福
幸福
幸福
不満
不満
尊敬
尊敬
不満
恐れ
満足
満足
嫌悪
後悔
嫌悪
嫌悪
寂しさ
不満
幸福
満足
嫌悪
幸福
幸福
悲しみ
悲しみ
(3) BACS 語
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
BACS
AU
1161
1162
1180
1190
1200
1210
1220
1230
1240
1241
1242
1250
1251
1252
1260
1261
1262
1270
1271
1272
1280
1281
1282
1290
1291
1292
1300
1301
1302
1310
1311
1312
1320
1321
1322
1330
1331
1332
1340
1341
1342
1350
1351
1352
1360
1361
BACS 語
肩右転
肩左転
上体前倒
上体反り
上体右倒
上体左倒
上体右転
上体左転
両手前出
右手前出
左手前出
両手後引
右手後引
左手後引
両手横開
右手横開
左手横開
両手後転
右手後転
左手後転
両手前転
右手前転
左手前転
両腕前出
右腕前出
左腕前出
両腕後引
右腕後引
左腕後引
両腕内曲
右腕内曲
左腕内曲
両腕外転
右腕外転
左腕外転
両腕内転
右腕内転
左腕内転
両手首外曲
右手首外曲
左手首外曲
両手首内曲
右手首内曲
左手首内曲
両手首外転
右手首外転
関節の動作
肩を右へ回す
肩を左へ回す
上体を前に倒す
上体を後ろに倒す
上体を右に倒す
上体を左に倒す
上体を右に回す
上体を左に回す
両手を前に上げる
右手を前に上げる
左手を前に上げる
両手を後ろに上げる
右手を後ろに上げる
左手を後ろに上げる
両手を横に広げる
右手を横に広げる
左手を横に広げる
両手を後ろに回す
右手を後ろに回す
左手を後ろに回す
両手を前に回す
右手を前に回す
左手を前に回す
両腕を前に上げる
右腕を前に上げる
左腕を前に上げる
両腕を後ろに上げる
右腕を後ろに上げる
左腕を後ろに上げる
両腕を内側に曲げる
右腕を内側に曲げる
左腕を内側に曲げる
両腕を外側に回す
右腕を外側に回す
左腕を外側に回す
両腕を内側に回す
右腕を内側に回す
左腕を内側に回す
両手首を外側に曲げる
右手首を外側に曲げる
左手首を外側に曲げる
両手首を内側に曲げる
右手首を内側に曲げる
左手首を内側に曲げる
両手のひらを前に回す
右手のひらを前に回す
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
27
BACS
AU
1362
1370
1371
1372
1380
1381
1382
1390
1391
1392
1400
1401
1402
1410
1411
1412
1420
1421
1422
1430
1431
1432
1440
1441
1442
1450
1451
1452
1460
1461
1462
1470
1471
1472
1480
1481
1482
1501
1502
1610
1620
1630
1640
1650
1660
0
BACS 語
左手首外転
両手首内転
右手首内転
左手首内転
両足前上
右足前上
左足前上
両足後上
右足後上
左足後上
両足外広
右足外広
左足外広
両足内曲
右足内曲
左足内曲
両足外転
右足外転
左足外転
両足内転
右足内転
左足内転
両膝曲
右膝曲
左膝曲
両足首前転
右足首前転
左足首前転
両足首後転
右足首後転
左足首後転
両足首外転
右足首外転
左足首外転
両足首内転
右足首内転
左足首内転
体右転
体左転
首右倒
首左倒
首前倒
首後倒
首右転
首左転
全関節基準
関節の動作
左手のひらを前に回す
両方の手の甲を前に回す
右の手の甲を前にに回す
左の手の甲を前にに回す
両足を前にあげる
右足を前にあげる
左足を前にあげる
両足を後ろに上げる
右足を後ろに上げる
左足を後ろに上げる
両足を外側に広げる
右足を外側に広げる
左足を外側に広げる
両足を内側に曲げる
右足を内側に曲げる
左足を内側に曲げる
両足を外側に回す
右足を外側に回す
左足を外側に回す
両足を内側に回す
右足を内側に回す
左足を内側に回す
両方のひざの関節を曲げる
右のひざの関節を曲げる
左のひざの関節を曲げる
両足首の関節を前に曲げる
右足首の関節を前に曲げる
左足首の関節を前に曲げる
両足首の関節を後ろに曲げる
右足首の関節を後ろに曲げる
左足首の関節を後ろに曲げる
両足首の関節を外側に曲げる
右足首の関節を外側に曲げる
左足首の関節を外側に曲げる
両足首の関節を内側に曲げる
右足首の関節を内側に曲げる
左足首の関節を内側に曲げる
体を右に回す
体を左に回す
首を右に倒す
首を左に倒す
首を前に倒す
首を後ろに倒す
首を右に回す
首を左に回す
体を正立する
(4) 体演技語
体演技語
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
体を正立
体を元の位置
肩を右に回
肩を左に回
上体を前に倒
上体を後ろに反
上体を右に倒
上体を左に倒
上体を右に回
上体を左に回
右手を前に上げ
左手を前に上げ
両手を前に上げ
右腕を前に上げ
左腕を前に上げ
両腕を前に上げ
右手首を外側に曲
左手首を外側に曲
両手首を外側に曲
右手首を内側に曲
左手首を内側に曲
両手首を内側に曲
右足を前に上
左足を前に上
両足を前に上
右足を後ろに上
左足を後ろに上
両足を後ろに上
BACS 語
体演技語
全関節基準
全関節基準
肩右転
肩左転
上体前倒
上体反り
上体右倒
上体左倒
上体右転
上体左転
右手前出
左手前出
両手前出
右腕前出
左腕前出
両腕前出
左手首外曲
右手首外曲
両手首外曲
右手首内曲
左手首内曲
両手首内曲
右足前上
左足前上
両足前上
右足後上
左足後上
両足後上げ
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
28
右足を外側に回
左足を外側に回
両足を外側に回
右足を内側に回
左足を内側に回
両足を内側に回
右膝を曲
左膝を曲
両膝を曲
右足首を前に回
左足首を前に回
両足首を前に回
右足首を後ろに回
左足首を後ろに回
両足首を後ろに回
右足首を外側に回
左足首を外側に回
両足首を外側に回
右足首を内側に回
右足首を内側に回
右足首を内側に回
体を右に回
体を左に回
首を左に倒
首を前に倒
首を後ろに倒
首を右に回
首を左に回
BACS 語
右足外転
左足外転
両足外転
右足内転
左足内転
両足内転
右膝曲
左膝曲
両膝曲
右足首前転
左足首前転
両足首前転
右足首後転
左足首後転
両足首後転
右足首外転
左足首外転
両足首外転
右足首内転
左足首内転
両足首内転
体右転
体左転
首左倒
首前倒
首後倒
首右転
首左転
(5) CP-FACS AU 一覧表
CP-FACS の AU 一覧表を以下に示します。
AU
動作部位(と動作内容)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
10
11
12
20
21
22
30
31
32
40
41
42
50
51
52
60
61
62
70
71
72
両方の眉の内側だけを上げる
右側の眉の内側だけを上げる
左側の眉の内側だけを上げる
両方の眉の外側だけを上げる
右側の眉の外側だけを上げる
左側の眉の外側だけを上げる
両方の眉を上げる
右側の眉を上げる
左側の眉を上げる
両方の眉を内側に下げる
右側の眉を内側に下げる
左側の眉を内側に下げる
両方の上瞼を上げる
右側の上瞼を上げる
左側の上瞼を上げる
両方の頬を持ち上げる
右側の頬を持ち上げる
左側の頬を持ち上げる
両方の下瞼を鼻の方向へ引く
右側の下瞼を鼻の方向へ引く
左側の下瞼を鼻の方向へ引く
22
90
鼻に皺を寄せる
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
100
120
130
150
160
170
200
250
260
270
410
411
412
420
421
422
430
431
432
上唇を上げる
唇の両端を引き上げる
唇の両端を鋭く引き上げる
唇の両端を下げる
下唇を上げる
顎の下側を上げる
唇の両端を横に引く)
顎を下げずに唇を開く
顎を下げて唇を開く
口を大きく開く
両方の上瞼を下げる
右側の上瞼を下げる
左側の上瞼を下げる
両目を薄目にする
右目を薄目にする
左目を薄目にする
両目を閉じる
右目を閉じる
左目を閉じる
顔の部位
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
眉
上瞼(上げ
る)
頬
下瞼
鼻まわり
唇
上瞼(下げ
る)
目
29
AU
2010
2020
2030
2040
2050
2060
3010
3011
3012
3020
3021
3022
3030
3031
3032
3040
3041
4042
0
動作部位(と動作内容)
首を右に傾ける
首を左に傾ける
首を前に傾ける
首を後ろに傾ける
首を右に回す
首を左に回す
両目の眼球を右へ動かす
右目の眼球を右へ動かす
左眼目の眼球を右へ動かす
両目の眼球を左へ動かす
右目の眼球を左へ動かす
左目の眼球を左へ動かす
両目の眼球を上へ動かす
右目の眼球を上へ動かす
左目の眼球を上へ動かす
両目の眼球を下へ動かす
右目の眼球を下へ動かす
左目の眼球を下へ動かす
無表情に戻す
顔の部位
首
眼球
顔全体
第5章
SpeechAPI 4.0 コマンド文字列
大文字と小文字は同じコマンドとみなされます。空白は無視されないので注意が必要です。解釈不能なコマンド
は無視され、エラーにはなりません。一度設定された値は、次のコマンドがくるまで持続します。TTS(音声合成
システムが、このコマンドを全て受け入れるわけではありません。製品によって、受け入れるコマンドと無視する
コマンドがあります。
====================================================================
¥Spd=number¥
====================================================================
話者の発声速度を指定する。1分間に平均何文字を話すか、という語数で指定する。
¥Spd=120¥
例:
====================================================================
¥Pit=number¥
====================================================================
話者の声の高さ( baseline pitch) を周波数(Hz)で指定する。
例: ¥Pit=150¥
実際の声の高さは、指定した周波数を中心にして上下に変動する。
====================================================================
¥Pra=value¥
サポートしない音声合成エンジンもある。
====================================================================
話者の声の高さの上下幅を、周波数(Hz)で指定する。
例: ¥Pra=90¥
====================================================================
¥Chr=string[[,string...]]¥
====================================================================
音声に特徴を与える。特徴語は次のとおり。初期値は、”Normal” である。
"Angry"
"Excited"
"Monotone"
"Scared"
"Business"
"Falsetto"
"Perky"
"Shout"
"Calm"
"Happy"
"Quiet"
"Tense"
例:
¥Chr="Angry"¥
"Depressed"
"Loud"
"Sarcastic"
"Whisper"
LaLaVoice では、この機能による音声の変化は感じられない!!。
====================================================================
¥Ctx=string¥
サポートしない音声合成エンジンもある。
====================================================================
読み上げるテキストの種類を通知する。
String パラメータ の指定
"Address"
住所または電話番号として読む。
"C"
C言語や C++言語のソースコードとして読む。
"Document"
通常のテキスト文書として読む。
"E-Mail"
電子メールの内容として読む。
"Numbers"
数字、日付、時刻等として読む。
"Spreadsheet" 表計算ソフトの表として読む。
"Unknown"
何だか不明のテキストとして読む。
"Normal"
通常の初期値話者モード(起動時はこのモード)
例:
¥ctx="Unknown"¥
30
====================================================================
¥Rst¥
====================================================================
音声合成エンジンの設定値を、初期値に戻す。
====================================================================
¥Vol=number¥
====================================================================
声の大きさを指定する。number は、0 から 65535 までの値を指定する。
¥Vol=32768¥
例:
音声合成エンジンの起動時の初期値は、65535 になっている。もし、65536 よりも大きな値を設定すると、下位 16bit が左
チャンネルの、上位 16 ビットが右チャンネルの音量調整となる。(ステレオモード)
====================================================================
¥Prn=text=pronunciation¥
サポートしない音声合成エンジンもある。
====================================================================
文字列の発音法を表音式のつづりで指定する。
¥Prn=tomato=tomaato¥
例:
text : 発音する文字列
pronunciation 表音式のつづり文字列 (the International Phonetic Alphabet)
¥Prn=text¥ と記述すると、元の初期値に戻る。この機能は、音声合成エンジンが、the International Phonetic Alphabet を
サポートしていないと機能しない。
====================================================================
¥Pro=number¥
サポートしない音声合成エンジンもある。
====================================================================
音声合成エンジンに内蔵された韻律則(ピッチや話者速度、音量に影響する)を使うかどうか指定する。
例:
¥Pro=1¥
¥Pro=0¥
韻律則を使用する。(初期値)
韻律則を使用しない。
====================================================================
¥Pau=number¥
====================================================================
発声を指定された時間(ミリ秒)だけ停止する。
例:
¥Pau=1000¥
====================================================================
¥Emp¥
サポートしない音声合成エンジンもある。
====================================================================
次の語を強調する。
例:
¥Emp¥
====================================================================
¥Dem¥
ポートしない音声合成エンジンもある。
====================================================================
次の語を強調しない。
31
====================================================================
¥RmS=number¥
サポートしない音声合成エンジンもある。
====================================================================
単語を 1 文字づつスペル読みするか、単語として発音するかを指定する。
例:
¥RmS=1¥
¥RmS=0¥
単語を 1 文字づつ発音する。(スペル読みをする。)
単語全体で発音する。(初期値)
====================================================================
¥RmW=number¥
サポートしない音声合成エンジンもある。
====================================================================
単語と単語の間に聞き取れる休止をいれるかどうかを指定する。
例:
¥RmW=1¥
¥RmW=0¥
聞き取れる休止は入れない。
休止を入れる。(初期値)
====================================================================
¥RPit=value¥
サポートしない音声合成エンジンもある。
====================================================================
声の高さを相対値で指定する。現在値を 100 とした比率で指定する。
====================================================================
¥RPrn=value¥
サポートしない音声合成エンジンもある。
====================================================================
声の高さの範囲を相対値で指定する。現在値を 100 とした比率で指定する。
====================================================================
¥RSpd=value¥
サポートしない音声合成エンジンもある。
====================================================================
話者速度を相対値で指定する。現在値を 100 とした比率で指定する。
====================================================================
¥Prt=string¥
サポートしない音声合成エンジンもある。
====================================================================
音声合成エンジンに、次の語の品詞を知らせる。
string に 指定可能なキイワードは次の通り。
"Abbr"
"Adj"
"Adv"
"Card"
"Conj"
"Cont"
"Det"
"Interj"
"N"
"Ord"
"Prep"
"Pron"
"Prop"
"Punct"
"Quant"
"V"
省略形
形容詞
副詞
基数
接続詞
短縮形
限定詞
間投詞
名詞
序数
前置詞
代名詞
固有名詞
句読点
数量詞
動詞
例
¥prt="Abbr"¥
32