World Assistant 取扱説明書

概要

これは VRML2.0 ( VRML97 ) 形式のデータを加工し、VRML2.0 もしくは X3D にて保存する為の Windows PC 用ツールです。

バージョン

0.54

リリース日

2006.6.15
履歴

種別

フリーソフトウェア

開発言語

JScript, HTML

同梱ファイル

wrlAssist.jse (本体)
wrlAssist.htm (GUI)
translate.xml (英訳支援)
manual.htm (この説明書)
readme.txt (案内)

動作環境

Internet Explorer ( 以下 IE ) 5.0 以上と Windows Script Host ( 以下 WSH ) 5.5 以上がインストールされた Windows 95 以降のPCで動作します。

Windows Script Hostのインストール

WSH は IE インストールの際、コンポーネントオプションで Visual Basic スクリプト サポート を選択していると自動的にインストールされます。

インストールされている WSH のバージョンを確認するには MS-DOSプロンプト(コマンドプロンプト)で
cscript
と打ち込んだ後、キーボードの Enter キーを押してください。

Microsoft (R) Windows Script Host Version 5.6
と表示されたならば、そのままお使いいただけます。
それ未満のバージョンならば MSDN Windows Script から お使いの OS に適した最新の Windows Script をダウンロードしてインストールしてください。
Windows XP は最初から IE 6.0 と WSH 5.6 がインストール済です。

WSH 5.1 以下では正常に動作しません。
WSH 5.5 では動作すると思いますが、動作確認いたしておりません。
WSH 5.1 と 5.5 はセキュリティの問題がありますので、できるだけ最新の WSH の使用をお勧めします。

Norton AntiVirus を使用している場合

Norton AntiVirus など symantec.社製のセキュリティ・アンチウィルスソフトがインストールされている PC では、World Assistant を使用すると「悪質なスクリプトを検出しました」という旨の警告が表示される場合があります。
これは WSH を使用しているソフトに対して一律に発せられるものであり、World Assistant は故意に損害をもたらすためのソフトではございません。
World Assistant を起動してこの警告が発せられた場合、スクリプトの使用を許可してください。

World Assistant は 最新にアップデートされた ALWIL Software の avast! version 4.5 と TREND MICRO 社製の ウィルスバスターオンラインスキャン にてチェックが行われてからリリースされています。  (しかし、必ずウィルスに犯されていないことを保証することはできません。)

Windows XP Service Pack 2 を使用している場合

OSの初期設定のままではセキュリティ保護のための警告が発せられ、World Assistant は正常に動作いたしません。  以下のページを参照して World Assistant の使用を許可してください。
ローカル ディスクやCD-ROMに保存されているHTMLファイルが期待通りに動作しない
このページに従って「マイコンピュータのファイルでのアクティブ コンテンツの実行を許可する」にチェックを入れたならば、 World Assistant は Windows XP Service Pack 2 よりも前にリリースされた OS で使用した場合と同様の動作をしますが、 OS本来のセキュリティ機能が低下し何らかの損害をもたらすプログラムが実行される可能性があります。  リスクをよくふまえた上、自己責任で設定変更を行ってください。

動作確認機種

インストール

LHAに対応したツールでダウンロードしたファイルを解凍し、同じフォルダに同梱ファイルを全て入れてください。

アンインストール

上記の同梱ファイルを全て削除してください。
インストールしたフォルダに yourtranslate.xml と yourtranslate.xml.old がある場合はそれも削除してください。
尚、このソフトはレジストリを使いません。

使い方

操作手順

  1. wrlAssist.jse アイコンもしくはそのショートカットアイコンにVRMLファイル ( 拡張子 .wrl ) をドラッグ&ドロップするとGUIが立ち上がり、読み込みを開始します。
    • 複数のファイルがドロップされた場合、全てのデータは統合されて扱われ、1つのファイルに纏めて出力されます。
    • フォルダがドロップされた場合、フォルダ内の全てのVRMLファイルを読み込みます。 扱いは上記の場合と同じです。 フォルダ内のサブフォルダは読み込みません。
  2. データの読み込みが終わった後、変換する をクリックすると変換オプションが表示されます。 オプションを設定し、変換開始 をクリックしてください。
  3. しばらくすると変換が終了します。保存する をクリックすると保存オプションが表示されます。 オプションを設定し、保存開始 をクリックしてください。
    • X3D形式で保存するには保存ファイル名の右にあるラジオボタンを X3D 側にチェックしてください。
    • 読み込んだファイルと同じ名前に変更してセーブすると上書きされますので、データの損失にはお気をつけください。
  4. 別のVRMLファイルを変換するには 終了する をクリックして一旦終了してください。

簡易英訳機能

ソース中の DEF, USE, PROTO, EXTERNPROTO の定義に日本語が使われている場合、データ読み込み中にそれらの英訳を自動的に行います。  また、定義に使われている文字に全角のアルファベットと数字が使われているならば、半角に変換されます。

もし World Assistant で訳すことが出来なかった単語が見つかった場合、データ読み込み後に 訳せない単語がありました。一旦終了して、翻訳データを改訂しますか? という選択ダイアログが表示されます。
ここで はい(Y) をクリックすると、World Assistant をインストールしたフォルダに yourtranslate.xml というファイルを出力して、このソフトは終了します。
いいえ(N) をクリックする、単語の訳せなかった箇所を foo_xx ( xx0 からの連番)に置き換えて作業を続行します。

英訳の編集

上記ダイアログで はい(Y) を選択し yourtranslate.xml を出力した場合、このファイルをテキストエディターで開いて編集してください。
<word jpn="ほにゃらら" eng="foo_0"/>
上記の場合、eng=" " で囲まれた foo_0ほにゃらら の英訳に置き換えてください。
英訳に使用できる文字は全て半角で、アルファベット ( A-Z a-z ) 数字 ( 0-9 ) ハイフン ( - ) アンダーバー ( _ ) です。 空白やタブは入れないでください。
jpn=" " で囲まれた語は | (キーボードの Shift + \ ) で区切って複数の日本語を列挙することができます。  何れかの日本語に適合すると、英訳を実行します。
編集が終わったら上書きセーブし、操作手順 1. からやり直してください。 yourtranslate.xml が正しく読み込まれたならば、終了を促す選択ダイアログは出なくなります。

translate.xml と yourtranslate.xml のフォーマットは同じです。  translate.xml を移すか名称変更した上に yourtranslate.xml を translate.xml に名称変更して使用してもかまいませんし、translate.xml の内容を書き変えても構いません。  しかし、今後のリリースで translate.xml を上書きインストールすると、それまでに書き換えた内容が無くなってしまうので注意してください。

英訳の優先順位

yourtranslate.xml が translate.xml よりも優先されます。  ファイルの最初にある行ほど優先されます。  jpn=" " で複数列挙された語はより左にある方が優先されます。
文字数の少ない日本語ほど優先順位を下げると英訳が巧くいく可能性が高くなります。

簡易英訳を機能させたくない場合

translate.xml を他のフォルダに移すか適当な違うファイル名に変更してください。  translate.xml が wrlAssist.jse と同じフォルダにない場合、たとえ yourtranslate.xml があっても簡易英訳は機能しません。

変換オプション

機能させたい項目の左脇にあるボックスにチェックを入れて、変換開始 をクリックしてください。
変換について
重複コードを削除する
IndexedFaceSet ノードに使われているコードデータに同一のものが複数使われている場合、重複データを削除して減量化します。  Coordinate, TextureCoordinate ノードの point フィールドや Normal ノードの normal フィールドが対象になります。  コードデータが USE で定義されている場合、そのコードデータに対しては変換しません。 
2つの三角形の面を四角形に統合する
IndexedFaceSet ノードの面が全て3角形で構成されているならば、隣り合った2つの3角形を4角形に変換してデータを減量化します。  面が1つでも3角形以外で構成されている場合、coord フィールドが USE で定義されている場合、そのノードに対しては変換しません。 
面の方向をそろえる
IndexedFaceSet ノードの面ごとの表裏がそろっていない場合、面の向きをそろえて見栄えを良くします。  ノードに3面稜線(3枚以上の異なる面の一部を構成している線)が含まれている場合、正しく表裏判定できないことが多くなります。  coord フィールドが USE で定義されている場合、そのノードに対しては変換しません。 

保存オプション

X3D形式で保存するには保存ファイル名の右にあるラジオボタンを X3D 側にチェックしてください。
機能させたい項目の左脇にあるボックスにチェックを入れて、保存開始 をクリックしてください。
タブの種類
保存ファイルに加えるタブを [ 普通のタブ ] [ スペース1文字 ] [ 無し ] の3種類から選択できます。  但し、文字列内のタブは影響を受けません。
コードとインデックスを改行する
コードやインデックスなどの複数値フィールドやピクセルテクスチャーのフィールドなどを改行を加えて保存するか否かを設定します。

仕様

読み込めるファイルについて

保存されるファイルについて

変換について

対応しているVRMLの仕様

VRML2.0 ( VRML97 ) の基本的なノードに対応しています。
Cortona VRML Client や blaxxun Contact 3D など、そのVRMLブラウザー専用に追加されたノードは対応していません。 また下記にあるノードであっても、そのVRMLブラウザー専用に追加されたフィールドは対応していません。

対応定義

DEF USE ROUTE TO PROTO EXTERNPROTO IS

対応ノード

Grouping nodes
Anchor Billboard Collision Group Transform
Special Groups
Inline LOD Switch
Common Nodes
AudioClip DirectionalLight PointLight Script Shape Sound
SpotLight WorldInfo
Sensors
CylinderSensor PlaneSensor ProximitySensor SphereSensor TimeSensor TouchSensor
VisibilitySensor
Geometry
Box Cone Cylinder ElevationGrid Extrusion IndexedFaceSet
IndexedLineSet PointSet Sphere Text
Geometric Properties
Color Coordinate Normal TextureCoordinate
Appearance
Appearance FontStyle ImageTexture Material MovieTexture PixelTexture
TextureTransform
Interpolators
ColorInterpolator CoordinateInterpolator NormalInterpolator OrientationInterpolator PositionInterpolator ScalarInterpolator
Bindable Nodes
Background Fog NavigationInfo Viewpoint

不具合について

プロトタイプのフィールド記載順

World Assistant はデータ保存の際、プロトタイプ ( PROTO or EXTERNPROTO ) のフィールド定義に記載された順番に従って、そのインスタンスのフィールドを書き出します。  SFNode, MFNode 型フィールドで、あるノードを DEF 定義し、別のフィールドで USE を使って再利用するようなプロトタイプの場合、 フィールド定義の記載順によっては元のファイルでは問題なくても、保存されたファイルで問題となる場合があります。

例えば H-Anim の Humaniod プロトタイプの場合 (あくまで例として分かりやすく記述している為、正しい記述ではありません。)
読込ファイルの内容(問題なし) 保存ファイルの内容(問題あり)
#VRML V2.0 utf8

PROTO Humanoid [
exposedField MFNode joints []
exposedField MFNode segments []
exposedField MFNode humanoidBody []
]{
・・・・・
}

#インスタンス
Humanoid {
humanoidBody [
DEF Head Segment {}
DEF Neck Joint {}
]
joints USE Neck
segments USE Head
}
#VRML V2.0 utf8

PROTO Humanoid [
exposedField MFNode joints []
exposedField MFNode segments []
exposedField MFNode humanoidBody []
]{
・・・・・
}

#インスタンス
Humanoid {
joints USE Neck
segments USE Head
humanoidBody [
DEF Head Segment {}
DEF Neck Joint {}
]
}
保存ファイルにはフィールド定義の記載( PROTO Humanoid の後の [ ] の中身 )の順番にインスタンスのフィールドが記述される為、 DEF定義よりも先にUSEが記述されることが起こり得ます。  このままではVRMLブラウザーはエラーを出して正しく動作しません。  この不具合は VRML2.0 だけでなく X3D で保存した場合にも起こります。

この不具合をファイルを読み込ませる前に避けるには、読込ファイルのフィールド定義の記述順を変えてください。
この例では以下のように humanoidBodyフィールド定義を最初に記述すると不具合を回避できます。
PROTO Humanoid [
exposedField MFNode humanoidBody []
exposedField MFNode joints []
exposedField MFNode segments []
]

PROTOの内外での同名のDEF定義

PROTO の内外で同名の DEF 定義を行った場合、X3Dで保存すると USE では DEF で定義されたノードとは異なってしまう条件があります。  これは PROTO 定義を挟む形で DEF 定義とその USE を使用した場合に起こります。
問題がある条件
読込ファイルの内容 X3Dで保存されたファイルの内容
#VRML V2.0 utf8

DEF foo Group {}

PROTO ABC [] {
DEF foo Transform {}

PROTO XYZ [] {
DEF foo Inline {}
USE foo # Inline
}

USE foo # Transform
}

USE foo # Group
<?xml version="1.0" encoding="UTF-8"?>
<X3D>
<Scene>
<Group DEF='foo'>
</Group>
<ProtoDeclare name='ABC'>
<ProtoBody>
<Transform DEF='foo'>
</Transform>
<ProtoDeclare name='XYZ'>
<ProtoBody>
<Inline DEF='foo'>
</Inline>
<Inline USE='foo'/>
</ProtoBody>
</ProtoDeclare>
<Inline USE='foo'/>
</ProtoBody>
</ProtoDeclare>
<Inline USE='foo'/>
</Scene>
</X3D>
最後の USE foo と 最後から2番目の USE foo はそれぞれ Group ノードと Transform ノードに変換されるべきなのですが、 この問題がある条件ではどちらも Inline ノードに変換されてしまいます。  尚、この不具合は VRML で保存する場合は生じません。

この不具合を避けるには、できるだけソースの最初の方で PROTO 定義を記述するようにして、Version 0.51 以降で変換するようにしてください。  Version 0.50 以前では PROTO 定義の記述場所に関わらず PROTO の内外で同名の DEF 定義を行うと誤変換を生じます。
PROTO 定義をソースの最初で行った場合
読込ファイルの内容 X3Dで保存されたファイルの内容
#VRML V2.0 utf8

PROTO ABC [] {
PROTO XYZ [] {
DEF foo Inline {}
USE foo # Inline
}

DEF foo Transform {}
USE foo # Transform
}

DEF foo Group {}
USE foo # Group
<?xml version="1.0" encoding="UTF-8"?>
<X3D>
<Scene>
<ProtoDeclare name='ABC'>
<ProtoBody>
<ProtoDeclare name='XYZ'>
<ProtoBody>
<Inline DEF='foo'>
</Inline>
<Inline USE='foo'/>
</ProtoBody>
</ProtoDeclare>
<Transform DEF='foo'>
</Transform>
<Transform USE='foo'/>
</ProtoBody>
</ProtoDeclare>
<Group DEF='foo'>
</Group>
<Group USE='foo'/>
</Scene>
</X3D>

免責とお断り

著作権について

連絡先

制作者のWebページ

履歴

2006.6.15 Version 0.54 2006.2.18 Version 0.53 2005.2.2 Version 0.52 2005.1.20 Version 0.51 2004.11.24 Version 0.50 2004.1.29 Version 0.48 2004.1.27 Version 0.47 2004.1.23 Version 0.46 2004.1.20 Version 0.45 2003.12.25 Version 0.41 2003.11.2 Version 0.33
Copyright by Kekenken, All rights reserved. 戻る