日本語訳最終更新日 1999.02.22.
参照文書更新日 1999.02.05.
3DML タグガイドこのリファレンスガイドでは,3DMLタグの文法について解説します.このページで説明していることは,ブロックセットガイドでも説明しています.このガイドは3DMLチュートリアルと合わせて利用することを前提にしています.チュートリアルでは,ステップを追って3DMLスポットの作り方を説明しています.まず,チュートリアルを参照することをお勧めします.
3DMLは,Flatland Roverで見ることのできる3次元スペース(スポットといいます)を記述するための言語です.3DMLの文法は,HTMLの文法とほぼ同じです.しかしながら,XMLとの互換性を優先するために,HTMLと若干異なる部分もあります.
このガイドは,Rover v0.9.5 現在のものです.
ここのコードサンプルでは,読みやすさを優先してタグ属性間に改行が含まれていますが,実際のコードでは,一行内にすべて記述しても,改行を含めても同様の効果を出すことができます.
3DMLタグのルール
- 一行タグの基本文法 :
<TAG ATTRIBUTE="value" />
- 複数タグの基本文法 :
<TAG1 ATTRIBUTE="value">
<TAG2 ATTRIBUTE="value" />
</TAG1>
- 他のタグをくくるタグ :
<SPOT>, <HEAD>, <BODY>, <CREATE>
- すべてのタグは <> でくくられます.
- タグ及びその属性は大文字小文字両方ともOK, しかしながら大文字で記述した方が読みやすいでしょう.
- すべての値は (=) に続いて記述し, (") でくくります.
x,y または x,y,z の形の値は かっこ ( ) でくくります.
- R,G,B カラー値 もかっこ ( ) でくくります.
- 3DMLファイル中のコメントには以下の文法をつかいます :
<!--your comments here-->
Rover は,ここようにくくった情報を無視します.
3DMLファイル内で必ず記述するタグ:<SPOT>...</SPOT>
3DMLファイルの先頭と末尾を宣言するタグです.このタグの間に記述したものすべてが,3DMLフォーマットで記述されたものとして処理されます.<HEAD>...</HEAD>
このタグは body セクションの前におき,ブロック情報の定義に利用します.ヘッダーに記述した内容は,HTMLのヘッダーと同じように,スポット全体の影響をおよぼします.<BODY>...</BODY>
マップを含め,スポットの記述は,このタグでくくります..
3DMLファイル<HEAD>内のタグ
<DEBUG/>
3DMLファイル作成時に使用します.DEBUGタグがある場合,Rover は3DMLファイル中のエラーをわかりやすいフォーマットで表示します.Web上に 3DMLファイルをおく前に,この DEBUG タグは削除するようにしてください.<TITLE NAME="name" />
<TITLE> タグは,空間の名前を定義します.この名前は,ブラウザウィンドウの下部に表示されます.<BLOCKSET HREF="url"/>
ブラウザ内で表示するスポットで利用する 3Dブロックセット(テクスチャー,サウンド,モデル,動作)を記述します.<MAP DIMENSIONS="(columns,rows,levels)" STYLE="single|double"/>
DIMENSIONS を利用して,3DML ファイルで記述する 3次元マップのサイズを宣言します.(すべてのブロックは同じ大きさです; 積木遊びをイメージしてください).STYLE は,マップと CREATEタグの中でブロックを 1文字で記述するか,2文字で記述するかを宣言します.<SKY TEXTURE="folder/image.gif -or- URL" COLOR="(red,green,blue)" BRIGHTNESS="brightness%"/>
空に使うテクスチャーを定義します.テクスチャーにはGIFかJPEGのイメージファイルを使うことができます.その他,テクスチャーの代わりに,色設定も可能です.空の明るさのパラメータは,0% から 100% まで設定することができます(デフォルトは100%).<GROUND TEXTURE="folder/image.gif -or- URL" COLOR="(red,green,blue)" />
第1レベルの底面のイメージまたは色をこのタグで宣言します.硬い床なしでマップをつくることも可能です.デフォルトの床イメージを使う場合には,空の GROUND タグ : <GROUND /> を入れてください.<AMBIENT_LIGHT BRIGHTNESS="brightness%" COLOR="(red,green,blue)"/>
周囲の明るさのレベルとスポットの色を設定します.デフォルトの設定では,明るさ 100%,白色光を利用します.色設定は,3Dアクセラレーションハードウェア上で利用しているときのみ有効です.<ORB TEXTURE="folder/image.gif -or- URL" POSITION="(turn, tilt)" BRIGHTNESS="brightness%" COLOR="(red,green,blue)"/>
太陽や月など,空に表示されるイメージを設定します.またスポット全体で利用する,指向性のある光源の位置,明るさ,色を設定します.色設定は,3Dアクセラレーションハードウェア上でのみ有効です.<AMBIENT_SOUND FILE="folder/sound.wav -or- URL" VOLUME="volume%" PLAYBACK="looped|random" DELAY="minimum..maximum"/>
スポット全体で流れるサウンド,WAVファイルを定義します.サウンドのボリュームは,0% から 100% で設定することができます(デフォルトは 100%).またサウンドの再生は,連続再生か,ランダム間隔再生かを設定できます.PLAYBACK="random"の場合,再生と再生の間の時間の範囲を設定できます.間隔は秒単位で,サウンドの終りではなく,はじめから計測されます.<PLACEHOLDER TEXTURE="folder/image.gif -or- URL"/>
自分で作成したテクスチャーをダウンロード中に表示する仮テクスチャーを定義します.
3DMLファイル<BODY> のタグ
<CREATE SYMBOL="symbol" BLOCK="symbol-or-block-name"> </CREATE>
3次元オブジェクトには,表示可能なアスキーキャラクター 1文字が割り当てられています.たとえば,フルブロックには "#" が割り当てられています.したがって,##### で5ブロックの幅の壁をつくることができます.また MAPタグの中で STYLE="double" と宣言することで,2文字のシンボルをつくることもできます.2文字シンボルを使うときには,1文字シンボルの前に "." をつけてください.したがって 2文字のフルブロック ".#"になります.各ブロックは,1辺が 256ピクセル立方体です.<CREATE>タグを使うと,ブロックに張付けるテクスチャーをはじめ,ブロックの属性を変更することができます.設定できる属性は,方向( y軸 x軸 z軸に関する 0, 90, 180, 270 度の回転 ),光源設定(明るさ,半径,色),サウンド(WAVファイル,ボリューム,半径,プレイバックモード)です.
<CREATE> タグの例 :
<CREATE SYMBOL="symbol" BLOCK="symbol-or-block-name">
<PARAM ORIENT="y,x,z" />
<PART NAME="name" TEXTURE="folder/image.gif-or-URL"
ANGLE="0-359"
COLOR="(red,green,blue)"
TRANSLUCENCY="number%"
STYLE="tiled|scaled|stretched" />
</CREATE><CREATE> タグには,次にあげるタグも設定することができます : <ENTRANCE>, <EXIT>, <POPUP>, <POINT_LIGHT>, <SPOT_LIGHT>, <SOUND>. <CREATE> タグの内部で利用するときにも,ほぼ同じ文法を使うことができます.ただし,LOCATION 属性は使用できません.
<LEVEL NUMBER="number" >...rows of building block symbols...</LEVEL>
スポットの一つのフロアの2次元マップを定義します.タグの間に記述した文字はすべてスポットを表現するブロックとして解釈されます.マップは長方形にする必要があるため,すべての行を同じ長さにする必要があります.マップの中のシンボルの位置とスポット内の3次元ブロックの位置は,1対1に対応します.NUMBER属性はオプションで,スポット中のフロアレベルを定義します.<ENTRANCE LOCATION="(column,row,level)" NAME="name" ANGLE="degrees"/>
スポットの中からスポットの中へ,または他のWebページへのハイパーリンクの位置を定義します.1つのSPOTの中に,次にあげる属性のうち 1つ以上を記述することができます.3DMLファイル中には,スタート地点として "default" という名前の ENTRANCE が必要です.ANGLE は,このスタート地点で向いている方向を設定します(0-359度の範囲で設定可能で,0度が北になります).<ENTRANCE>タグは BODY の中ならどこにでも置くことができます.通常は,BODY の最後,すべてのレベルの定義が終わったあとで記述します.また,各レベルの定義とそのなかで利用する <ENTRANCE>タグをまとめて記述することも可能です.さらに,<CREATE>タグの中に配置し,ブロックに対して割り当てることもできます.この場合は,LOCATION属性は利用できません.<EXIT LOCATION="(column,row,level)" HREF="folder/spot.3dml#entrance-name" TRIGGER="click on,step on" TEXT="text" TARGET="destination name"/>
このタグでは,他の 3DML ファイルへのハイパーリンクを定義します.LOCATION でスポット内の場所を宣言します.HREF で接続するスポットのファイル名もしくは URL を指定します.その際,場所を指定することもできます(指定がない場合は default の位置になります).TRIGGER 属性では,配置したリンクがどのようなときに実行されるかを設定します.クリックによる実行か,ステップによる実行(?)を設定できます.TARGET は,HTML内の設定と同様に,リンクから開くフレームもしくはウィンドーの名前を定義します.デフォルトは "self" です.<ENTRANCE>タグと同様に,<EXIT>タグもブロックを定義する <CREATE>タグの中でも,BODY の中にでも記述することもできます.通常は,BODY の最後か,各レベルに続いて記述します.<POPUP />
POPUPS は,設定した場所からある一定の半径内にユーザが入ったときに,スクリーンに表示する 2次元イメージを定義します.2次元イメージには,テクスチャー(静止画,アニメーション)もしくは色を設定します.スクリーン上のポップアップイメージの位置及び大きさが設定できます.テキストをポップアップさせることもできます.その際,アライメントと色を設定できます.テクスチャー上にテキストを配置する場合の COLOR 属性は,テキストを読みやすくするための陰の色となります.ポップアップ全体の明るさも設定できます.POPUP は,BODY セクション内,ブロックを定義する <CREATE> タグ内のどちらにでも記述することができます.<CREATE>タグ内の場合は,LOCATION 属性は不要です.すべての属性を設定したPOPUPタグの例 :
<POPUP LOCATION="(column,row,level)"
TRIGGER="rollover,proximity"
RADIUS="number-of-blocks"
TEXTURE="folder/image.gif -or- URL"
COLOR="(red,green,blue)"
PLACEMENT="mouse|top-left|top|top-right|left|center|right|bottom-left|bottom|bottom-right"
SIZE="(width, height)"
TEXT="message"
TEXTALIGN="top-left|top|top-right|left|center|right|bottom-left|bottom|bottom-right"
TEXTCOLOR="(red,green,blue)"
IMAGEMAP="map name"
BRIGHTNESS="brightness%" />3DMLファイル内のImageMaps
<IMAGEMAP NAME="imagemap name">
<AREA SHAPE="rect|circle"
COORDS="x1,y1,x2,y2 | x,y,radius"
HREF="destination URL"
TARGET="destination target"/>
<AREA ......./>
</IMAGEMAP>
imagemapを定義します.イメージの特定の領域から,他の 3DML スポットやホームページへのリンクを定義することができます.ポップアップの中でのみ利用できます.イメージマップ中で長方形の領域を定義するときには,x1,y1 で長方形の左上角,x2,y2 で右下角を定義します.イメージマップで円形の領域を定義するときには,x,y で円の中心を定義します.
<POINT_LIGHT STYLE="static"
LOCATION="(column,row,level)"
POSITION="(x, y, z)"
BRIGHTNESS="n%"
RADIUS = "#_of_blocks"
FLOOD="yes|no"
COLOR="(red,green,blue)"/>
マップ中で特定の位置から全方向を明るくする静止ライトを定義します.LOCATION でマップ中のライトの場所を設定します.POSITION で256ピクセルのブロックスペース中のライトの位置を設定します.FLOOD="yes" を指定すると,設定した明るさで設定した半径を照らすライトとなります.FLOOD="no" を指定すると,中心が設定した明るさで,中心から離れていくにしたがって AMBIENT_LIGHT レベルまで暗くなるライトとなります.デフォルトの設定は,FLOOD="no" です.COLOR 設定は,3D アクセラレーションハードウェアを利用するときにのみ有効となります.LIGHT についても,<CREATE>タグの中で記述し,特定のブロックに割り当てることができます.<CREATE>タグの中に記述するときには,LOCATION 属性は必要ありません.
<POINT_LIGHT STYLE="pulsate"
LOCATION="(column,row,level)"
POSITION="(x, y, z)"
BRIGHTNESS="min%..max%"
RADIUS = "#_of_blocks"
FLOOD="yes|no"
COLOR="(red,green,blue)"
SPEED="cycles_per_second" />
最小明るさから最大明るさまで一定間隔で変化するポイントライトを設定します.SPEED="2" の場合,1秒間に2回最小の明るさと最大の明るさの間を振動します.
<SPOT_LIGHT STYLE="static"
LOCATION="(column,row,level)"
POSITION="(x, y, z)"
BRIGHTNESS="n%"
RADIUS="#_of_blocks"
FLOOD="yes|no"
COLOR="(red,green,blue)"
DIRECTION="(turn, tilt)"
CONE=angle"/>
特定方向を明るくする静止スポットライトの位置を設定します.DERECTION は turn, tilt の角度の組で表現します.turn で水平方向(北を0度とし,0度から359度の範囲),tilt で垂直方向(90度が垂直上方,0度が水平,-90度が真下の -90度から90度の範囲)を設定します.CONE でライトの広がり角度を指定します.
<SPOT_LIGHT STYLE="search"
LOCATION="(column,row,level)"
POSITION="(x, y, z)"
BRIGHTNESS="n%"
RADIUS="blocks"
FLOOD="yes|no"
COLOR="(red,green,blue)"
DIRECTION="(turn1,tilt1)..(turn2,tilt2)"
CONE = "angle"
SPEED="cycles_per_second" />
方向 1(direction1) と方向 2(direction2) を設定スピードで往復するサーチライト風スポットライトを設定します.
<SPOT_LIGHT STYLE=revolve
LOCATION="(column,row,level)
POSITION="(x, y, z)"
BRIGHTNESS="n%"
RADIUS="blocks"
FLOOD="yes|no"
COLOR="(red,green,blue)"
DIRECTION="(turn1,tilt1)..(turn2, tilt2)"
CONE="angle"
SPEED="revolutions_per_second" />
方向 1 と 2 (direction1,2)の間を指定スピード(1秒に回転する回数を指定)で回転するスポットライトを設定します.