Forge Viewer のカンバス領域に表示されるシーンも比較的簡単にカスタマイズして利用することが出来ます。今回は、過去にご紹介した内容も含め、一端をご紹介しておきます。
まずは、シーン内に 3D モデルを表示した際にツールバーの [設定] ボタンから変更することが可能な「環境」についてです。
Forge Viewer v7 には 事前設定された 20 種の環境、あるいは、環境光が用意されていて、変換前の CAD データ ファイル(シード ファイル)の光源設定に関係なく、ビューア上で自由に環境を変更することが出来ます。
環境には、環境毎に証明が設定されていて、環境を変更するだけで 3D モデルへの照明を変化させることが出来るため、建築や製造などの業種用途にあわせて、適切な表現をおこなうことが出来ます。また、環境には、あらかじめ設定されているシーン背景の画像「環境イメージ」を表示させることも出来るので、用途に合わせて表示/非表示を切り替えることも可能です。
Forge Viewer JavaScript ライブラリでは、環境の切り替えを Viewer3D.setLightPreset メソッドで、環境イメージの表示切替を Viewer3D.setEnvMapBackground メソッドで、それぞれ指定することが出来ます。Viewer3D.setLightPreset メソッドで指定するパラメータは、設定パレットに表示される環境名に並び順のインデックス値です。
3D モデルを表示した際、マウスカーソルをオブジェクト上にホバーさせると、選択可能なオブジェクトを知らせる目的で、当該オブジェクトがハイライトします。場合によっては、このハイライトが 3D モデルの閲覧時に邪魔になることがあります。そのような場面では、Viewer3D.disableHighlight メソッドでハイライトの挙動を無効化することが出来ます。
マウス左ボタン クリックでのオブジェクト選択も同様です。クリック時のオブジェクト選択は、Viewer3D.disableSelection メソッドで無効化することが出来ます。
なお、オブジェクト選択時のハイライト色は、Viewer3D.setSelectionColor メソッドで変更出来ます。
_viewer.setSelectionColor(new THREE.Color(0xffff00));
ビューアで表示中にのシーンは、State API と呼ばれている API を利用することで、ビューとして記録したり、復元することが出来ます。ここで記録、復元出来るのは、カメラ視点だけではなく、環境やオブジェクト選択の状態も含まれます。State API については、過去のブログ記事 Forge Viewer の State API とビュー でご紹介しています。
Forge Viewer インスタンスを作成すると、標準のツールバーや ViewCube が表示されます。
_viewer = new Autodesk.Viewing.GuiViewer3D(document.getElementById('viewer3d'));
これらを一切表示させないことも出来ます、Viewer3D インスタンス作成時のメソッド呼び出しを少し変更するだけです。この方法で作成されるビューアは、ユーザ インタフェースの表示に消費されるメモリ消費を抑止するだけでなく、3D モデル表示までの時間も短縮することが出来るので、オーバーヘッドのない、あるいは、少ないビューア、という意味で、ヘッドレス ビューアと呼ばれています。
_viewer = new Autodesk.Viewing.Viewer3D(document.getElementById('viewer3d'), {});
環境、ハイライト、オブジェクト選択、State API とも、ヘッドレスビューアでも利用可能です。標準ツールバーなどのユーザ操作を抑止して、独自のインタフェース経由での操作をさせたい場合には有効と思います。
By Toshiaki Isezaki
コメント