シーンの表示¶
シーン¶
Choreonoidでは、3次元コンピュータグラフィックス(3DCG)として表示可能な情報を「シーン(Scene)」と呼んでいます。ロボットや環境のモデル、およびそれらを複数含む仮想世界もシーンとして扱われる情報となっています。
シーンビュー¶
シーンを表示するビューとして「シーンビュー」が用意されており、これを用いることでロボットモデルや環境モデル等の状況を3DCGを通して視覚的に確認することが可能となっています。さらにシーンビューはシーンを編集するためのインタフェースとしても使えるようになっています。
以下ではシーンビューの基本的な操作方法を説明します。
空のシーンと座標系¶
シーンビューはデフォルトでは以下のような表示になっています。
左下に表示されている3つの矢印の組は、現在の視点から見た3次元空間の座標系を表しています。赤、緑、青の3色の矢印がそれぞれX軸、Y軸、Z軸に対応しています(RGB=XYZ)。Choreonoidにおいては、通常Z軸正方向が鉛直上向きであることを想定しており、シーンビューにおいてもそれを前提とした表示・操作体系となっています。これはロボット工学においては比較的一般的な座標系のとり方なのですが、他にY軸正方向を鉛直上向きに対応させる座標系も(特にCG分野においては)一般的となっているので、それとは異なるという点には注意が必要です。
また、格子状のワイヤフレームは Z=0 となる面を表しています。ロボットのモデルを扱う際にはZ=0の床面を想定することが多いため、これに対応する面をデフォルトで表示しています。
以上の表示のON/OFFについては、後述する設定ダイアログで切り替えることが可能です。
対応アイテム¶
Choreonoidでは、シーンとして扱うことが可能な情報についても、その多くはアイテムとして定義されています。そのようなアイテムとしては以下のようなものがあります。
アイテム型 |
概要 |
|---|---|
ボディアイテム |
ロボットや環境のモデル(ボディモデル)に対応するアイテム。モデルの形状や姿勢がシーンとして表示される。 |
ワールドアイテム |
複数のボディモデルをひとつの仮想世界としてまとめるアイテム。モデル間の干渉情報等がシーンとして表示される。 |
シーンアイテム |
シーンとして表示する目的に特化したアイテム。3DCGデータの単なる閲覧や、シーンの見た目を整えるといった目的で使用する。 |
ポイントセットアイテム |
点群(ポイントクラウド)データを格納・表示するためのアイテム。 |
これらの他にも、プラグインによって追加されるアイテムの中に、シーンとして表示可能なアイテムが含まれる場合があります。
対応アイテムの表示¶
シーン表示対応アイテムについては、基本的にはアイテムツリービュー上でチェックを入れることにより、シーンビュー上に表示されるようになります。
例えば前節 プロジェクトとアイテム で紹介した "SR1Walk" プロジェクトでは、アイテムツリービューは以下のような状態になっていました。
ここで BodyItem型である "SR1" にチェックが入っているので、このロボットのモデルがシーンビュー上に表示されています。
しかしこのチェックを外すとロボットの表示も消えることになります。また、このプロジェクトでは他に"Floor"もBodyItem型となっていて、このチェックを入れると床のモデルが表示されます。
シーンバー¶
シーンビューの操作を補助するツールバーとして、以下に示す「シーンバー」が用意されています。
このバーに装備されている機能は左から以下のようになっています。
編集モードへの切り替え
一人称視点制御
投影法/カメラの選択
視点回復(シーン全体/選択したアイテムに視点をフィット)
描画(頂点/ワイヤフレーム/ポリゴン)
表示するモデルタイプの切り替え
干渉線の表示
設定ダイアログ
これらの機能の使い方について以下で説明します。
閲覧モードと編集モード¶
シーンビュー全体の操作のモードとして「閲覧(ビュー)モード」と「編集(エディット)モード」があります。
閲覧モードはシーンビューに表示されているモデルやデータの閲覧を行うためのモードで、モデルやデータ自体をシンプルに表示しつつ、操作としては主に視点変更を行うモードとなっています。
編集モードはビューに表示されているモデルやデータの編集を受け付けるモードです。例えばモデルをマウスでドラッグすることで姿勢を変更したりすることができます。
Choreonoid起動直後は閲覧モードになっています。モードの切り替えは以下のいずれかの方法で行います。
シーンバーの「編集モードへの切り替え」ボタンを押す。これがOFFの時は閲覧モードで、ONにすると編集モードとなる。
シーンビューにフォーカスがある状態で、ESCキーを押す。(押す度にモードが切り替わります。)
シーンビュー上でダブルクリックする。(ただし編集モードの時にはダブルクリックが他の操作に割り当てられる場合もあります。)
現在のモードは、シーンバーの「編集モードへの切り替え」ボタンが押し込まれているかどうかで分かります。また、編集モードの時にはモデルに編集用のマーカー等が表示される場合があり、そのような表示があるかどうかで判別することもできます。
具体的な編集操作は対象となるモデルやデータによっても変わってくるので、ここでは詳細を解説しません。(ロボットモデルの操作方法については、 ロボット/環境モデルの基本 - 位置・姿勢の変更 で解説します。)以下では、主に閲覧モードでの操作方法について解説します。
視点の変更¶
閲覧モードでは、シーンビュー上でマウスを操作することにより視点の変更を行うことができます。変更する視点要素とマウス操作との対応は以下のようになっています。
左ボタンドラッグ: 視点の回転
真ん中ボタンドラッグ: 視点の平行移動
ホイール: 視点のズーム(前後移動)
どの操作についても、操作を行う際にシーンビュー上でマウスカーソルが指している位置によって挙動が変わるようになっており、その位置に着目した視線変更となります。
視点の回転操作においては、ドラッグ開始時にカーソルが指している位置が回転中心となるように回転します。例えばSR1ロボットで、ロボットの右手先部分からドラッグを開始すると右手先を中心として(画面上で手先の位置は変わらないように)視点が変わりますし、左手だと左手中心となりますので、試してみてください。
視点の平行移動においては、ドラッグ開始時に指している位置がその後のドラッグ位置に追従するように平行移動を行います。これは後述のPerspectiveカメラを用いて遠近法で表示している際(デフォルト状態)に効果があります。この場合、近くの物体を指しているときは移動量が少なくなり、遠くの物体を指しているときには移動量が大きくなることになります。
視点のズームについても、近くの物体を指しているときはズーム量(前後移動量)が少なくなり、遠くの物体を指しているときは大きくなります。
なお、マウスカーソルがシーン上で何も無い部分を指している場合は、直前に指していた部分に着目した操作となります。
シーンバーの「シーン全体に視点をフィット」ボタンを押すと、視点の方向は変えずに、シーン上の全ての物体が見えるように並進位置とズームを調節します。これは視点変更操作を行っている間にどこを見ているか分からなくなった場合に有用です。
視点変更の修飾キー¶
視点変更においては、以下の修飾キー操作が可能です。
Shiftキー + 回転操作: 視点方向を各軸にスナップします。真横や真上といった方向からの画像を得たい場合に使用します。
Shiftキー + ズーム操作: ズーム量の変化を少なくします。ズーム位置を細かく変更したい場合に使用します。
Ctrlキー + 並進操作: ズーム操作にします。ズーム位置を連続的に変更したい場合に使用します。
なお、真ん中ボタンが無い環境で真ん中ボタンを使う操作を行うために、スペースキーを真ん中ボタンの代わりに使えるようになっています。ただし、スペースキーの入力を受け付けるためには、シーンビューにキーボードフォーカスが入っている必要がありますので、ご注意ください。
一人称型視点変更モード¶
上記の視点変更操作は、マウスが指している物体を中心に回転する等、シーンビュー上の物体を中心とした操作となっていました。これに対して、視点を中心とした操作体系も用意されており、これを「一人称型視点変更モード」と呼んでいます。このモードに切り替えるには、以下のいずれかの操作を行います。
シーンバーの「一人称視点制御」ボタンをONにする
シーンビューにフォーカスがある状態で、キーボードの"1"キーを押す(デフォルトのモードに戻すには"3"キーを押す)
このモードでは、視点の回転、並進の操作が以下のように変わります。
回転:マウスカーソルの位置によらず、常に視点を中心とした回転となる
並進:マウスをドラッグした方向に移動する
このような「一人称型視点変更モード」は、例えば建物の中に入り込んで内部を探索するように閲覧するといった状況で有用です。
描画用カメラの変更¶
シーンビューにおけるシーン画像の描画は、仮想的なカメラを用いて行われます。このカメラを切り替えることにより、デフォルトとは異なる遠近感や視点での画像を得ることができます。
カメラの切り替えはシーンバーの「描画用カメラ選択コンボ」で行うことができます。このコンボボックスをクリックすると、利用可能なカメラの一覧が表示されますので、そこで選択を行なってください。
デフォルトでは"Perspective(透視投影)"というカメラが選択されています。このカメラでは遠近感のついた画像を得ることができます。
一方で、"Orthographic(正射影)"を選択すると、遠近感を排除した正射影の画像を得ることができます。これは形状や寸法を正確にを把握したい場合などに使用すると便利です。
なお、PerspectiveカメラとOrthographicカメラではズーム操作の内容が多少異なるので注意が必要です。Perspectiveカメラにおいてはカメラの位置を前後に移動させる操作となりますが、Orthographicカメラにおいては位置はそのままで視野を拡大・縮小させる操作となります。Orthographicカメラの場合、カメラの前後位置によっては見たい物体を全て表示できない場合があります。そのようなときには、一旦Perspectiveカメラに切り替えてズーム操作で前後位置を変更(後方に移動)してから、再度Perspectiveカメラに切り替えるようにしてください。
デフォルトで用意されている上記の2つのカメラに加えて、シーンが追加のカメラを含んでいる場合は、それも選べるようになります。例えば、カメラが搭載されているロボットのモデルをシーンに追加すると、そのカメラを選択できるようになります。これによってロボット搭載カメラの視点での画像を得ることができますし、ロボットが動けばそれに伴ってシーンビュー上の画像も変化することになります。ただしこの場合視点はロボットの位置で決まるので、シーンビュー上の通常のマウス操作による視点変更はできません。
ワイヤフレーム表示¶
シーンバーの「ワイヤフレーム描画」ボタンをONにすると、シーンがワイヤフレームで描画されるようになります。これはモデルのポリゴン構成を見たい場合や、物体の重なり具体を見たい場合などに便利です。シーンの描画方法を変更する要素は他にもいくつかあり、以下で説明する設定ダイアログで設定することが可能です。
設定ダイアログ¶
シーンビューの描画方法や挙動については他にも設定可能な項目があり、 シーンバー の「設定ダイアログ表示」ボタンを押すと表示されるダイアログで細かく設定することが可能です。このダイアログは「カメラ」「ライティング」「背景」「描画」の4つのパネルと、その下にあるオプション領域で構成されています。各パネルからアクセス可能な主な設定項目の概要を以下に示します。
カメラパネル¶
項目 |
内容 |
|---|---|
視野角 |
Perspectiveカメラの視野角を設定します。値が大きいほど広角になります。 |
方向 |
視野角の基準とする方向を「自動」「縦」「横」から選択します。「自動」ではビューのアスペクト比に応じて自動決定されます。 |
近方/遠方 |
視点から見た描画範囲(クリッピング距離)を設定します。描画に問題がなければ特に指定する必要はありません。 |
全カメラの遠方を無限遠にする(OpenGL 4.5以降) |
すべてのカメラの遠方クリッピング距離を実質的に無限遠として扱います。OpenGL 4.5以降の環境で有効です。 |
カメラロールを制限 |
視点回転時のロール(光軸回りの回転)を抑制し、画面の上下方向が崩れないようにします。 |
垂直軸 |
鉛直上向きとみなす軸をX、Y、Zから選択します。Choreonoidでは通常Zを上向きとして使います。 |
上下反転 |
シーンビューの画像を上下反転して表示します。 |
ライティングパネル¶
項目 |
内容 |
|---|---|
ライティングモード |
描画に用いるライティング処理を「標準」「最小限」「ソリッドカラー」から選択します。「最小限」は軽量のライティング、「ソリッドカラー」はマテリアルの色のみで描画するモードです。 |
スムーズシェーディング |
スムーズシェーディングのON/OFFを切り替えます。OFFにするとフラットシェーディングになります。 |
裏面除去 |
ポリゴン裏面のカリングを「有効」「無効」「強制」から選択します。「強制」はモデル側の指定によらず常にカリングを行います。 |
ワールドライト |
シーン上に固定されたライト(通常上方から照射される)のON/OFFを切り替えます。「照度」で明るさを、「影」でこのライトによる影の生成を設定できます。 |
ヘッドライト |
常に視点位置から照射されるライトのON/OFFを切り替えます。「照度」で明るさを設定できます。 |
環境光 |
環境光(アンビエントライト)のON/OFFを切り替えます。「照度」で強さを設定できます。「マテリアル環境光を正規化」をONにすると、各マテリアルの環境光成分を一様化して描画します。 |
追加のライト |
シーン上に読みこまれたモデルがライトを有する場合、そのON/OFFを切り替えます。「影:ライト」のチェックをONにすると、指定した番号のライトによる影が描画されます(最大2つまで)。 |
テクスチャ |
テクスチャ表示のON/OFFを切り替えます。 |
フォグ |
シーン中に定義されたフォグ(霧)効果のON/OFFを切り替えます。 |
影のアンチエイリアシング |
影の輪郭にアンチエイリアシング処理を施します。 |
背景パネル¶
項目 |
内容 |
|---|---|
背景色 |
シーン上で何も物体が無い領域の色を設定します。 |
座標軸 |
シーンビューの左下に表示される座標軸のON/OFFを切り替えます。 |
XY (床) グリッド/XZグリッド/YZグリッド |
それぞれの平面に対応するグリッド線の表示ON/OFFと、グリッド全体の「長さ」(範囲の大きさ)、線の「間隔」、線の「色」を設定します。 |
描画パネル¶
項目 |
内容 |
|---|---|
デフォルト色 |
色の指定がない物体を描画する際の色を設定します。 |
デフォルト線幅 |
線描画におけるデフォルトの線幅を設定します。 |
デフォルト点サイズ |
点描画におけるデフォルトの点サイズを設定します。 |
干渉ハイライト色 |
モデル間の干渉箇所をハイライト表示する際の色を設定します。 |
干渉線色 |
干渉線の色を設定します。 |
アンチエイリアシング(MSAA) |
マルチサンプルアンチエイリアシングのレベルを「システム設定」「オフ」「2x」「4x」「8x」「16x」から選択します。「システム設定」を選んだ場合は、メインメニューの「オプション」-「OpenGL」-「MSAAレベル(システム設定)」で設定したレベルが用いられます。 |
法線の表示 |
ポリゴンの各点の法線を表示します。法線の長さも設定できます。 |
軽量視点変更 |
視点をマウスで操作している間、描画を一時的に簡易表示(バウンディングボックス表示)に切り替えて応答性を高めます。ただしこの切り替えが行われるのは、シーン中で軽量描画に対応しているモデル(例えばシーンアイテムのプロパティ「軽量レンダリング」をONにしたもの)に限られ、その部分のみが簡易表示になります。重いシーンを軽快に閲覧したい場合に有用です。 |
FPSテスト |
「FPSテスト」ボタンを押すと、現在のシーンをどれくらいのフレームレートで描画できるかを計測します。試行回数も指定できます。 |
その他¶
ダイアログの末尾には「対象アイテム選択用の専用のチェックをアイテムツリービューに追加」のチェックがあります。シーンビューは複数生成して、それぞれのビューに別のオブジェクトを表示することもできます。その場合、このチェックをONにしておくとアイテムツリービューの右側に対象シーンビュー専用のチェックが表示されますので、それでシーンビューへの表示のON/OFFを行なってください。なお、シーンビューが複数ある場合、設定ダイアログの対象ビューはダイアログを表示したときに最後にフォーカスのあたっていたシーンビューとなります。
シーンビューの状態・設定内容の保存¶
プロジェクトの保存 にて述べたように、ビューの状態や設定はプロジェクト保存時にプロジェクトファイルに保存されます。シーンビューの視点位置や各種設定についても、プロジェクト保存時に同時に保存され、次回読み込みの際に同じ状態に戻るようになっています。