VRED Python API v2

これは、Qt for Python に基づく、新しい VRED Python API v 2 のドキュメントです。VRED Python API v1 のドキュメントにはこちらからアクセスできます。

タイプ

新しいインタフェースの一部の関数は、パラメータまたは戻り値の型に Qt タイプを使用します。これらのタイプは Python ネームスペースに自動的に読み込まれるため、PySide2 モジュールから読み込まなくても使用できます。

その他の Qt クラスは、次のように読み込むことができます。

from PySide2.QtCore import QLine
from PySide2.QtGui import QBrush

line = QLine(0,0,100,100)
brush = QBrush()

オブジェクト

新しいインタフェースのシーン オブジェクトは vrdObject から派生します。これらのオブジェクトのクラス名は、vrd で始まります (例: ノード オブジェクトの場合は vrdNode)。

サービス

オブジェクトにはプロパティを照会および変更する関数が多数ありますが、主なエントリ ポイントとして、サービスを通じて使用するオブジェクトを取得します。

サービスを使用して、既存のシーン オブジェクトの検索、新しいオブジェクトの作成、オブジェクトの削除、関連する VRED モジュールで使用できるその他の機能へのアクセスを行うことができます。

サービス クラスと同じ名前を持つオブジェクトを通じてサービス関数を呼び出します。 次に例を示します。

camNode = vrCameraService.createCamera("new camera")

サードパーティ モジュールをインストールする

VRED は Python 3 に移行したため、サードパーティ モジュールを簡単にインストールできます。Python のインストール全体は、lib/python のインストール フォルダ内にあります。pip を使用して、公式の Python リポジトリからインストールできます。「numpy」をインストールする場合は、次の手順を実行します。

python.exe -m pip install numpy

pip は Python とは別に開発されています。pip を新しいバージョンにアップグレードする場合は、次の手順を実行します。

python.exe -m pip install --upgrade pip

追加された pip が動作を停止した場合は、Python のブストラップ メカニズムを使用して復元できます。

python.exe -m ensurepip

また、モジュールを Lib/site-packages に手動でインストールすることもできます。Python API を使用して独自の C または C++ 拡張機能をコンパイルする場合は、必ず互換性のあるコンパイラを使用してください。オートデスクは、公式の Python 3 バイナリを再コンパイルしないで、VRED に使用しています。そのため、VRED 付属のディストリビューションと同じバージョン番号を持つ Python ディストリビューションを python.org から取得してコンパイルすると、機能します。

Web インタフェースを介して Python API を使用する

このインタフェースは、Python または Web インタフェースを介して使用できます。アクセスするには、JavaScript を使用します。関数の呼び出しは非同期で実行されます。次の例では、このような呼び出しが Web ページからどのように見えるのかを示します。すべてのパラメータと戻り値のタイプは、JavaScript タイプにマッピングされます。たとえば、QVector3D と QMatrix4x4 は 3 個または 16 個の数値からなる配列にマッピングされます。

<script type="module">
  import {api} from '/api.js';

  // reacting on a signal
  api.vrClusterService.started.connect(() => {console.log('Started')});
  // calling a function
  api.vrClusterService.start();
  // changing the position of the camera
  api.vrNodeService.findNode("Perspective")
      .then((node) => node.setTranslation([10,20,30]));
</script&gt>

API v1 と v2 を一緒に使用する

API v と API v の両方の関数を同じスクリプトで使用できます。

API v1 では、ノード オブジェクトのタイプは vrNodePtr です。vrNodePtr をパラメータとして取得する API v1 の関数で vrdNode オブジェクトを使用できます。その逆も同様で、vrNode をパラメータとして取得する API v2 の関数で vrNodePtr オブジェクトを使用することもできます。これらは自動的に変換されます。

vrdNode を明示的に vrNodePtr オブジェクトに変換するには:

oldNodePtr = toNode(newVRDObject.getObjectId())

vrNodePtr を vrdNode に変換することもできます。

newVRDObject = vrNodeService.getNodeFromId(oldNodePtr.getID())

シーングラフの用語

このドキュメントでシーングラフを参照する方法の概要については、「VRED のシーングラフ」を参照してください。

Python サンプル スクリプト

VRED Python API のさまざまな機能を紹介するサンプル スクリプトのコレクションです。

インデックスとテーブル

VRED Python API v2

VRED Python API v2 のコマンドのリストです。