Omniverse Kit App Templateを使ったアプリ開発の流れ - cloneからアプリ起動まで-

# NVIDIA Omniverseとは？

NVIDIA Omniverseは、様々な業界で活用される3Dワークフローをリアルタイムかつコラボレーティブに進めるためのプラットフォームです。ピクサーが開発したUSD（Universal Scene Description）をベースとし、複数のアプリケーションやツールを統合して同じ3Dシーンを扱えるのが最大の特徴です。CADデータやDCCツール（Maya、Blender、3ds Max など）と連携し、物理ベースレンダリングやAIシミュレーションにも対応することで、デザイン検証やデジタルツインの構築、アニメーション制作など、幅広い分野のプロジェクトを効率化します。

# Kit App Templateとは？
Omniverse Kitは、Omniverse上で動作するカスタムアプリや拡張機能を開発するためのSDK（Software Development Kit）です。Kit App Templateは、Omniverse Kitを使ったアプリ開発のひな形（テンプレート）として用意されており、プロジェクトの基本構造・ビルドスクリプト・サンプルコードなどが一式揃っています。これを利用することで、開発者はゼロから環境を構築する手間を省き、コードの書き方やディレクトリ構成などのベストプラクティスを取り入れやすくなります。より素早く、安定したアプリケーション開発をスタートできる点が大きなメリットです。今後OmniverseではKit App Templateを使った開発者によるアプリ開発が主な使われ方となっていきます。本記事ではこのKit App Templateを使ったOmniverseアプリの開発の流れについて簡単にご紹介していきます。

# kit-app-template GitHubリポジトリのclone

 Omniverseでご自身のアプリやエクステンションを開発する上では
「kit-app-template」を使うことになります。公開済リポジトリにアクセスし、
git cloneを行ってください。
https://github.com/NVIDIA-Omniverse/kit-app-template

![スクリーンショット 2024-12-30 23.05.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111483/26344e65-0e08-b0a6-5601-3d7a82d5cf6b.png)


コマンドはリポジトリのreadmeよりコピーできます。
git環境がない場合はzipをダウンロードして展開してください。

VS codeなどでコマンド実行のためのターミナルを開きます。

![スクリーンショット 2024-12-30 23.08.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111483/88343d88-caeb-08a8-5dbe-f07f338f3729.png)

先ほどのgit cloneコマンドを実行します。

```
git clone https://github.com/NVIDIA-Omniverse/kit-app-template
```


すると、ご自身のローカルフォルダに
プロジェクトが展開されます。

![スクリーンショット 2024-12-30 23.11.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111483/5cd68c8c-c892-9aec-f183-5d399d2bd815.png)



続いてkit-app-templateディレクトリに移動します。
```
cd kit-app-template
```

# Omniverseアプリテンプレートの作成とビルド

下記のコマンドを実行し新しいテンプレートを作成します。

```
repo.bat template new
```

するとコンソールに、新しいtemplateを作るための
ナビゲーションが表示されるので入力していきます。

![スクリーンショット 2024-12-30 23.18.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111483/17478a98-a47d-74fe-6421-c2e9a5787a4a.png)

- EULAを確認した上で、同意する場合はYesを選択します。
- 作成対象の選択です。今回はアプリケーションを作成するために「Application」を選択してください。
- 対象のテンプレートを選択します。(このチュートリアルではUSD Explorerを選択します。)
- アプリケーションに必要となる.kitファイルを作成します。
- ファイル名を入力してください。
- 次にアプリケーション名を入力してください。
- アプリケーションのバージョンを入力してください。

USD ExplorerテンプレートではExtensionも必要なるため、
必要なセットアップを行います。

- Extensionの名前を入力してください。
- UI上でのExtensionの表示名を入力してください。
- バージョンを入力してください。

ApplicationとExtensionを作成できました！

![スクリーンショット 2024-12-30 23.18.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111483/57cc27d1-323d-7ea1-1674-587ddc576206.png)


エクスプローラーを見ると、sourceの下にappとextensions
ディレクトリがあることを確認できます。

![スクリーンショット 2024-12-30 23.20.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111483/33c0151f-d813-69f2-f9b7-c3c989fafca5.png)

app以下の.kitファイルにはApplicationを構成するのに
必要なプロパティやextensionなどの依存関係が記述されています。

![スクリーンショット 2024-12-30 23.21.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111483/628ca24b-e2db-c0b5-f3ea-61a7588fe3d9.png)


テンプレートがセットアップできたので、ビルドします。
```
repo.bat build
```

BUILD  SUCEEDEDとでればビルド完了です。


# アプリケーションの起動

それではApplicationを起動してみましょう。
```
repo.bat launchを実行します。
```

対象となる.kitを選択します。

![スクリーンショット 2024-12-30 23.24.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111483/3e38c23f-c686-5e54-8de7-3a3fd83233ea.png)


するとPC上にApplicationが表示されます。
まずはnewを選択し、新しく3Dモデルを作ってみましょう。


![スクリーンショット 2024-12-30 23.24.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111483/3283ef72-7bc7-e705-a5b8-d85375751712.png)


3D空間を編集できるLayoutビューが表示されます。
3Dモデルを作成してみましょう。右クリックを押し、CreateメニューからMeshを選択し
好きな形状を選択します。

![スクリーンショット 2024-12-30 23.24.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111483/b46fba3b-e9b5-b4ac-3037-39fd49b49563.png)


すると選択した形状のメッシュが作成されます。Move Toolを選択すると、作成した3Dモデルを
好きな方向に移動できます。Scale Toolを選択すると、3Dモデルの大きさを
変えることができます。

![スクリーンショット 2024-12-30 23.25.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111483/17620325-587b-0bbf-e34b-d48ce3419e6e.png)


編集が終わったらFile > Saveを押し、3Dモデルをusd形式で保存します。

![スクリーンショット 2024-12-30 23.25.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111483/af45690b-b61c-809f-27d6-b14a5825608d.png)

ここまでKit App Templateを使ったテンプレート作成とアプリビルド・起動までの基本的な操作についてご紹介しました。今後の記事では下記のような内容をご紹介できればと思います。

- Extensionについての説明と独自のExtension開発の流れ
- UIでの簡単な3D操作を行うためのサンプル実装

なお上記の内容までは下記のYouTubeでご紹介しています。Omniverse kit app templateを使ったアプリ開発の流れについての基本的なチュートリアルを紹介してますので、ぜひご確認ください！

<iframe width="560" height="315" src="https://www.youtube.com/embed/KaBGfy6xDks?si=k-s70p6rSfhOlkX0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>