Forge Viewer:簡単なシーン カスタマイズ

Forge Viewer のカンバス領域に表示されるシーンも比較的簡単にカスタマイズして利用することが出来ます。今回は、過去にご紹介した内容も含め、一端をご紹介しておきます。

まずは、シーン内に 3D モデルを表示した際にツールバーの [設定] ボタンから変更することが可能な「環境」についてです。

環境設定メニューが表示されたForge Viewerの画面。環境の選択肢がリストとして表示されている。

Forge Viewer v7 には 事前設定された 20 種の環境、あるいは、環境光が用意されていて、変換前の CAD データ ファイル(シード ファイル)の光源設定に関係なく、ビューア上で自由に環境を変更することが出来ます。

環境には、環境毎に証明が設定されていて、環境を変更するだけで 3D モデルへの照明を変化させることが出来るため、建築や製造などの業種用途にあわせて、適切な表現をおこなうことが出来ます。また、環境には、あらかじめ設定されているシーン背景の画像「環境イメージ」を表示させることも出来るので、用途に合わせて表示/非表示を切り替えることも可能です。

Forge Viewer JavaScript ライブラリでは、環境の切り替えを Viewer3D.setLightPreset メソッドで、環境イメージの表示切替を Viewer3D.setEnvMapBackground メソッドで、それぞれ指定することが出来ます。Viewer3D.setLightPreset メソッドで指定するパラメータは、設定パレットに表示される環境名に並び順のインデックス値です。

Forge Viewer の設定パネルの画面。環境イメージの設定や光源プリセットの選択ができる。

3D モデルを表示した際、マウスカーソルをオブジェクト上にホバーさせると、選択可能なオブジェクトを知らせる目的で、当該オブジェクトがハイライトします。場合によっては、このハイライトが 3D モデルの閲覧時に邪魔になることがあります。そのような場面では、Viewer3D.disableHighlight メソッドでハイライトの挙動を無効化することが出来ます。

左側の3Dモデルは、マウスホバー時にハイライトが無効化された状態を示し、右側はハイライトが有効な状態を表示しています。

マウス左ボタン クリックでのオブジェクト選択も同様です。クリック時のオブジェクト選択は、Viewer3D.disableSelection メソッドで無効化することが出来ます。

左側はマウスクリックでのオブジェクト選択無効化のコード例を示し、右側は有効化のコード例を示す2つの電車の3Dモデルが表示された画像

なお、オブジェクト選択時のハイライト色は、Viewer3D.setSelectionColor メソッドで変更出来ます。

_viewer.setSelectionColor(new THREE.Color(0xffff00));
3Dモデルのカラフルな列車がレールの上に表示されているシーン

ビューアで表示中にのシーンは、State API と呼ばれている API を利用することで、ビューとして記録したり、復元することが出来ます。ここで記録、復元出来るのは、カメラ視点だけではなく、環境やオブジェクト選択の状態も含まれます。State API については、過去のブログ記事 Forge Viewer の State API とビュー でご紹介しています。

Forge Viewer インスタンスを作成すると、標準のツールバーや ViewCube が表示されます。

_viewer = new Autodesk.Viewing.GuiViewer3D(document.getElementById('viewer3d'));
3Dモデルの赤い電車が線路の上に表示されているシーン。ツールバーが画面下部に配置され、環境設定やオブジェクト操作のアイコンが見える。

これらを一切表示させないことも出来ます、Viewer3D インスタンス作成時のメソッド呼び出しを少し変更するだけです。この方法で作成されるビューアは、ユーザ インタフェースの表示に消費されるメモリ消費を抑止するだけでなく、3D モデル表示までの時間も短縮することが出来るので、オーバーヘッドのない、あるいは、少ないビューア、という意味で、ヘッドレス ビューアと呼ばれています。

_viewer = new Autodesk.Viewing.Viewer3D(document.getElementById('viewer3d'), {});
3Dモデルの赤い列車が浮かび上がっているシーン。背景は薄いグレーで、列車はレールの上に置かれています。

環境、ハイライト、オブジェクト選択、State API とも、ヘッドレスビューアでも利用可能です。標準ツールバーなどのユーザ操作を抑止して、独自のインタフェース経由での操作をさせたい場合には有効と思います。

By Toshiaki Isezaki

Discover more from Autodesk Developer Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading