ここでは、NVIDIA Omniverse ( https://www.nvidia.com/ja-jp/omniverse/ ) のスクリプトのサンプルを貯めていってます。
Omniverseは、データ構造としてOpenUSDを使用してます。
3Dモデルやシーンのファイルへの保存、読み込みでUSDが使用されるだけでなく、
Omniverse Kitをベースとしてアプリ(USD ComposerやIsaac Sim)のビュー上の制御もUSDを介して行われます。
形状の表示/非表示の切り替えや移動など、これらはUSDの汎用的な操作を介して行います。
ここでは、OmniverseアプリであるOmniverse USD ComposerのScript Editorで試せるスクリプトのサンプルを用途別に列挙します。
Omniverse Kit 110.0.0で確認(WIP: 検証中、、、)しました。
Omniverse開発環境は kit-app-template を使います。
このGitHubのリポジトリの手順に従ってOmniverse Kit環境を構築することができます。
kit-app-templateは、Omniverse Kitをベースとしてひな型アプリを作成することができます。
検証にはこのkit-app-templateからビルドできる"USD Composer"がよく使用されます。
シミュレーション環境に特化した Isaac Sim (5.1.0)は以下のURLをご参照くださいませ。
https://docs.isaacsim.omniverse.nvidia.com/5.1.0/index.html
Isaac SimもOmniverse Kitをベースに開発されています。
https://docs.omniverse.nvidia.com/dev-overview/latest/index.html
Omniverse開発の入口となるサイトです。
全体的に何ができて何が重要か、というのは俯瞰して見ることができます。
OpenUSDを学ぶサイトです。
https://docs.nvidia.com/learn-openusd/latest/index.html
https://docs.omniverse.nvidia.com/kit/docs/kit-app-template/latest/docs/intro.html
Omniverse Kit SDKのトップページです。
Omniverse USD Composerで、メインメニューの [Developer] - [Script Editor]を選択して、Script Editorを起動します。
この中でPythonを使用してプログラムを書きます。
左下のRunボタンを押すか、[Ctrl] +[Enter]キーを押すことで実行します。
以下、Pythonの初歩的な説明です。
1行のコメントの場合、"#"から行の末尾までがコメントになります。
# comment.複数行の場合は、""" から """ までがコメントになります。
"""
comment.
line2.
"""デバッグ用のメッセージはprintで記載します。
print("Hello Omniverse !")その他の知識は Knowledge に蓄えていく予定です。
| サンプル | 説明 |
|---|---|
| Python | Pythonの文字列処理やクラスなど。 Pythonの標準機能。 |
| サンプル | 説明 |
|---|---|
| Audio | Audioの再生 |
| Animation | Animation関連 |
| Camera | カメラ操作 |
| Geometry | ジオメトリの作成/情報取得 |
| Light | 光源の作成/操作 |
| Material | マテリアルの割り当て |
| Math | ベクトル/行列計算関連 |
| Operation | Ominverseの操作/イベント処理 |
| Event | イベント処理 |
| Physics | Physics(物理)処理 |
| pip_archive | Pythonのよく使われるモジュールの使用 |
| Prim | USDのPrim(ノード)の操作 |
| Rendering | レンダリング画像の取得 |
| Scene | シーン(Stage)情報の取得/読み込みなど |
| Settings | 設定の取得 |
| System | システム関連情報の取得 |
| UI | UI操作 |
| Post Processing | Post Processingのパラメータを変更 (omni.kit.commands.executeを使用) |
| AssetConverter | obj/fbx/glTFファイルなどをUSDファイルに変換 |
| Nucleus | Nucleus上のファイル操作 |
| サンプル | 説明 |
|---|---|
| PLATEAU | Project PLATEAUの3D都市データをOmniverseに読み込み |
| サンプル | 説明 |
|---|---|
| Samples | サンプルスクリプト |
| サンプル | 説明 |
|---|---|
| Extensions | サンプルExtension |
