hsmlファイルの内容 †
- ページ: 3DExplorer/BugTrack
- 投稿者: 名無しさん
- 優先順位: 低
- 状態: 着手
- カテゴリー: 表示
- 投稿日: 2005-11-12 (土) 11:03:47
- バージョン:
hsmlファイルとは3DExplorerで読み込む3Dマップが指定されたファイルです。しかしサーバーにhsmlの拡張子のファイルは置けないのでhtmlのコメント部分に命令を書きます。hsmlファイルだということがわかるようにファイル名はsample_hsm.htm等にします。
- すみません。語弊がある言い方でした。hsmlと言う拡張子でも、webサーバーにリクエストを出せば返してくれると思います。
しかし、現在利用されているgeocitiesなどがまさにそうなのですが、HTMLで広告を挟まないと、利用させてくれない。とか
そういう話です。
あと、検索エンジンGoogleなどで、対応のページが探せたりとか、なんかと便利かと。(^_^;) -- araran
地面と壁とモデル命令にhsidを指定するようにしました。これで例えば位置の命令のようにオブジェクトを指定した命令ができます。命令はhtmlのhead部分にコメントとして書きます。一行に一命令です。コメントはHSPと同じ;です。
そして、モデルで指定する"*.sig"を"*_sig.txt"に替えて指定することもできるようにしました。ダウンロードしたファイルは"*.sig"として保存されます。モデルモーションで指定する"*.qua"もビルボードで指定する"*.tga"も同じです。
注意として、地面命令を先に書いておかないと高さを地面に合わせる機能が使えません。まずは地面命令を書いてください。
- 例
- <html>
- <head>
- <!--
- 3Dstart
- E3DLoadGroundBMP "g_6_20_1.bmp","road.bmp","g_river_6_20_1.bmp","bg43.bmp",120000,120000,50,50,5500,0,0,0,0,0,0,7
- E3DCreateBG "lake.bmp","cloud3.bmp",1,0,0
- E3DSetDirectionalLight? 0,-1,2,255,255,255,77,77,77,0,0,0
- E3DSetPos? 0,45000,-1,30000
- E3DCreateBillboard? "tree01S_tga.txt",2000,3200,0,0,0,52000,-1,42000
- 3Dend
- -->
- <title>3DExplorerの3Dマップです。</title>
- </head>
3Dstartから3Dendまでの命令が実行されます。
- 命令一覧
- 地面
- E3DLoadGroundBMP pathbuf.0,pathbuf.1,pathbuf.2,pathbuf.3,mapsizeX,mapsizeY,mapdivX,mapdivY,mapheight,posx,posy,posz,degx,degy,degz,hsid
- Easy 3D for HSPのサイトの「TIPS : 地面データの作り方」で説明がありますが、pathbuf.0で指定する画像は地面の高低を決める画像です。pathbuf.1は道の位置を決める、pathbuf.2は川の位置を決めるための画像です。pathbuf.3は4分割で道や川の画像が入った画像です。pathbuf.0, pathbuf.1, pathbuf.2は24ビットのbmpでそれぞれが同じサイズでないと使用できません。mapsizeXは地面のx座標の最大値です。mapdivXはx方向の分割数です。mapheightは地面の高さの最大値です。posxはこの地面のx座標で、degxは向きを指定するための角度です。360で一周です。
- 壁
- E3DSetMovableArea? pathbuf.0,mapsizeX,mapsizeY,mapdivX,mapdivY,mapheight,posx,posy,posz,degx,degy,degz,hsid
- pathbuf.0は色が付いた部分と付いていない部分の境界部分に地面に垂直な非表示の壁ポリゴンを生成するための画像です。色が付いたいる部分が移動できる領域です。それ以外のパラメータは地面と同じです。
- ビルボード
- E3DCreateBillboard? pathbuf.0,width,height,transparentflag,dirmode,orgflag,posx,posy,posz
- transparentflagに1を指定するとテクスチャーの黒色(r=0,g=0,b=0)を透過色として扱います。0を指定するとテクスチャーファイルのアルファ値を元に透過します。dirmodeに0を指定するとビルボードはy軸に関してのみ回転します。地面に立っている木などに使用してください。dirmodeの1を指定するとビルボードは全方向に回転します。カメラの高さにかかわらずカメラの方向を向かせたいもの、例えば火や煙などに使用してください。orgflagはビルボードの原点の位置を指定します。0を指定すると原点はビルボードの四角形の下の辺の中心になります。地面に生やす木などの場合に便利です。1を指定すると原点はビルボードの中心になります。爆発などの特殊効果に使う場合に便利です。posyに-1を指定すると地面の高さに合わせます。
- モデル
- E3DSigLoad? pathbuf.0,posx,posy,posz,degx,degy,degz,hsid
- posyに-1を指定すると地面の高さに合わせます。モデルは"*.sig"しか利用できません。
- モデルモーション
- E3DAddMotion? hsid, pathbuf.0
- モデル命令の最後のパラメータで指定したhsidを指定します。モデルは"*.qua"しか利用できません。
- 位置
- E3DSetPos? hsid,posx,posy,posz
- 指定したhsidの位置を指定します。posyに-1を指定すると地面の高さに合わせます。
- E3DSetDir? hsid,degx,degy,degz
- 指定したhsidの向きを指定します。360で一周です。
- 光源
- E3DSetDirectionalLight? dirx, diry, dirz, colorR, colorG, colorB, AmbientR, AmbientG, AmbientB, , SpecularR, SpecularG, SpecularB
- 最初からの3つは平行光源の向きxyzでその次の3つは平行光源の色rgbで、次の3つは地面データにのみ影響するライトのアンビエント色rgbで、最後の3つは地面データにのみ影響するライトのスペキュラー色rgbです。rgbは0から255の値で指定します。
- 背景
- E3DCreateBG pathbuf.0, pathbuf.1, u1000, v1000, isround
- pathbuf.0は画面の一番奥に表示される背景の画像です。pathbuf.1は雲やもや用を想定した画像です。pathbuf.1が不必要な場合は存在しないファイル名を渡してください。1つ目の画像と2つ目の画像はモジュレートされて表示されます。u1000, v1000は2枚目の画像のuv座標を毎フレームどれくらい移動させるかの指定で、実際の移動値の1000倍の値を指定します。isroundに1を指定するとビューの回転に対応して一つ目の画像ファイルのuv座標が回転します。この際、画像ファイルの左端と右端が連続するようなデータでないと、つなぎ目が見えてしまいますので注意してください。isroundに0を指定すると1つ目の画像は回転しません。
- イベント
- E3DSquareLink? url, posx1, posy1, posx2, posy2
- 今は使えません。
- E3DCircularLink? url, posx, posy, radius
- 今は使えません。