ユーザーデータ_shd
ユーザーデータの定義
ユーザーが定義できるデータはShadeのshd形式にて作成でき、Shade Home Designの画面下のタブ部分に追加することができます。
この部分へのアイテムの追加はXMLとHTMLの記述により行います。
データの格納場所
環境によって場所は変わりますが、WindowsのログインユーザのMy Documentsフォルダ下に「ShadeHomeDesign」のディレクトリが存在します。
C:\Documents and Settings\ユーザ名\My Documents\ShadeHomeDesign
なお、「C:\Documents and Settings\ユーザ名」の部分は環境依存です。DOSプロンプト上で「set USERPROFILE」と入力することにより確認することができます。
ここに、library.xmlと「ユーザー」フォルダが存在します。以下のような構成になっています。
library.xml [ユーザー] [01_部品] [02_材質・色]
1つのデータで必要な構成要素
1つのデータ(形状)を定義するために必要なファイルは以下の4つです。
- 形状自身のshdファイル(Shadeにて作成)
- 設定のXMLファイル(テキストエディタで記載)
- 85 x 85 pixelのpng形式のアイコンファイル(タブ内に表示されるもの)
- 150 x 150 pixelのpng形式の大きめの画像ファイル(詳細情報で表示されるもの)
形状はShadeにて作成します。このとき、Shade Home Designの「図面」での2D図と3Dの形状情報を書く必要があります。これについては後述します。
設定のXMLファイルには、対応するshd、形状の種類、配置時の回転・移動量、詳細情報(プロダクト情報)など記載します。これも後述します。
85 x 85 / 150 x 150 pixelのpng画像は、透明部分も入れた状態で作成します。Shadeでレンダリングした画像をpng形式で保存すると楽かと思います。
Shade Home Designにユーザーデータを認識させる
shd / xml / 2つのpng、これら4つのファイルを「01_部品」フォルダ内に入れます。Shade Home Designが登録されているユーザーデータが何か確認するのは「ユーザー」フォルダと同じところにある「library.xml」です。中身は以下のようになっています。なお、改行は独自に行うようにしてください。Shade Home Designでは読み込み時にこのXMLファイルの改行を無効化してしまうようです。
<?xml version="1.0" encoding="utf-8"?> <library> <category name="ユーザー"> <subCategory name="01_部品"> </subCategory> <subCategory name="02_材質・色"> </subCategory> </category> </library>
ここの「subCategory」内に登録したい形状情報を記載します。
<subCategory name="01_部品"> <component name="球" path="球.xml" thumb="球_icon.png"></component> </subCategory>
<component>というタグを新たに追加。この場合は「球」という名称にしてます。pathのところに「球.xml」とあるのが形状情報を定義したXMLファイルです。thumbはアイコンのpng画像(85 x 85 pixel)名を指定します。
このlibrary.xmlファイルをUTF-8で保存し、Shade Home Designを起動すると、ユーザータブのところに登録した形状が列挙されます。複数を登録したい場合は<component>タグを複数行に記述しましょう。なお、閉じの</component>を忘れないようにしてください。
追記
library.xml自身は、「01_部品」フォルダ内に 形状自身のshdファイル、形状設定のXML、png画像2枚、があればそこから自動的に形状情報を取り出して、library.xml自身を書き換えるようです。ですので、library.xmlファイルは手を加えなくてもいけるようでした。
shdファイルの中身
Shadeで作成するshdファイルに形状自身の3D情報と、Shade Home Designの「図面」での2D情報を作ります。また、窓のように壁にフィットするものと普通の小物形状では若干構成が異なります。
ブラウザでの構成(小物表現)
ルートパート 2D 閉じた線形状 閉じた線形状 閉じた線形状 ... パート ポリゴンメッシュ ポリゴンメッシュ ポリゴンメッシュ ポリゴンメッシュ ...
ルートパートから見て、「2D」パートと「パート」の2つから構成されます。この2つのパートは必ず単位行列になるようにする必要があります。また、原点(0, 0, 0)を基点として表現するようにします。
「2D」パート内にて、地面をY=0とした平面として 上から見たときの見え方を「閉じた線形状」で表現していきます。これがそのままShade Home Designの「図面」にて表示されると考えてください。なお、単位は厳密に表現されますのできっちりとミリメートル単位で考えて配置するようにしてください。
「パート」内に、ポリゴンメッシュにて3D形状を表現していきます。複数ポリゴンメッシュまたはパートに入れ子になっていてもOKです。表面材質の設定も反映されます(ですが、複数レイヤが可能かは未確認)。テクスチャを使用する場合は、UVのラップのみでマッピングするようにします。
たとえば以下のように球を作成してみます。半径250mmの球をポリゴンメッシュに変換して配置しています。2Dパート内は、円を閉じた線形状に変換したものをY = 0の位置においています。
shdファイルはこのような状態で「球.shd」として保存します。また、85x85 pixelでレンダリングした結果を「球_icon.png」として保存、150x150 pixelでレンダリングした結果を「球_info.png」として保存しておきましょう。
XMLファイルの中身
設定情報を記載するXMLファイルは以下のようになります。
<?xml version="1.0" encoding="utf-8"?> <itemInformation> <item file3d="球.shd" rotate="90.0,0.0,0.0" translate="-250,250,-250" /> <attachTo>floor</attachTo> <productInformation> <formalName>球</formalName> <thumbnail>球_info.png</thumbnail> <manufacturer url="">-</manufacturer> <modelNumber>-</modelNumber> <material>-</material> <size>-</size> <remarks>-</remarks> </productInformation> </itemInformation>
<itemInformation>タグでくくることで、この形状は「アイテム」として扱われます。ここを窓にしたりライトにしたりすることもできます。
<item>タグでは対応するshdファイル名、回転角度、移動量を指定します。Shade Home Designでは、上から見た上面図で右方向に+X、上方向に+Y、スクリーン手前に向かって+Zとなっているようです。
右手系の座標系ではありますが、Shadeと比べるとX軸を中心に90度回転していることになりますね。座標系で言えば右手系で、Shadeの場合はY-up、Shade Home DesignではZ-upということになります。
<item file3d="球.shd" rotate="90.0,0.0,0.0" translate="-250,250,-250" />
の記述では、rotateでX軸中心に90度回転(これはShadeから持ってきたものはすべて回転が必要)、translateでXYZ軸方向に(-250, 250, -250)移動させています。これで、マウスドラッグ位置が中心になるようにしているわけです。
<attachTo>は、接地するときの対象です。ここではfloorですので床が接地の基準になります。
<productInformation>は、この形状を作成した作成者(または提供会社)の情報です。Shade Home Designの右下に表示されているものです。個々のタグ内は以下の内容になります。
タグ名 | 内容 |
---|---|
formalname | 形状名 |
thumbnail | 150x150 pixelのpng画像ファイル名 |
manufacturer | メーカー名とURL |
modelNumber | 型番 |
material | 色・材質 |
size | サイズ |
remarks | 備考 |
thumbnail以外はすべて普通の文字列を入れます。
以上のshd/xml/2つのpngおよびlibrary.xmlの編集にてShadeHomeDesign上では、以下のように「ユーザー」タブから球を選択してシーンにドラッグすることができるようになっています。
Future's Laboratory 技術格納庫 2004-2013 Yutaka Yoshisaka.