![見出し画像](https://assets.st-note.com/production/uploads/images/166736099/rectangle_large_type_2_49a0596fae5dea3963fe83eb29d42ded.png?width=1200)
OmniverseでAction Graphを使ってみる
Omniverse Action Graph は、NVIDIA Omniverse プラットフォーム内で利用される視覚的なプログラミングツールです。特にシミュレーションやアニメーションの自動化に役立つノードベースのグラフシステムで、アクションの作成や制御を簡単に行えるよう設計されています。
ノードをドラッグ&ドロップして繋ぐだけで複雑な動作を構築可能。プログラムの知識がなくても高度な挙動を設定可能なことがメリットです。
Isaac Sim環境で試してみます。
環境設定の詳細はこちら・・・
Sphereメッシュにアクショングラフ機能を付与します。
ActionGraphを使う準備
Create/Mesh/SphereでStage上に球を追加します。
![](https://assets.st-note.com/img/1734845544-IVGH18sfNOioucRlyDFZKtbL.png)
Create/Visual scriptingからAction Graphを選択します。
![](https://assets.st-note.com/img/1733452345-K9kYmjVEOhcsgaCSR1UeldWG.png)
Action Graphを右クリックしOpen Graphを開くと、ヴィジュアルスクリプト画面が表示されます。
![](https://assets.st-note.com/img/1734845700-DEG7H91stAiqzPexOMJKInSv.png?width=1200)
Omniverse画面の下中央にActionGraphのフィールドが用意されます。
ActionGraphを作成する。
ActionGraphにNodeを追加し下記のように組んでみます。
![](https://assets.st-note.com/img/1734845959-brKcQ9UHLV8JOFEXdM02hiew.png?width=1200)
・左側の検索画面で「ON Keyboard Input」を検索
→ドラック&ドロップでアクショングラフ上に置く。
※A"ON Keyboard Input" ノード は、キーボード入力をトリガーとしてイベントを発生させるためのノードです。このノードを使用することで、特定のキーの押下や離す動作に応じてアクションを実行できます。
プロパティーのパラメーター、Key inでJを選択します。これによりキーボード上の「J」を押すことでアクションが起動することになります。
![](https://assets.st-note.com/img/1734846809-YXJx28rt6A5Q1R0GbnT34m9L.png?width=1200)
・「Flip Flap」を検索→アクショングラフ上に置く。
”Flip Flap ノード ”は、オン・オフの切り替え動作や、特定の値をトグルするために使用される便利なノードです。スイッチのように動作し、入力が与えられるたびに内部状態を反転させるのが主な機能です。
・「Write Prim Attribute」を検索→アクショングラフに置く→同じ作業を2回おこなう。
※Write Prim Attribute は、USD (Universal Scene Description) の Prim(オブジェクト)の属性値を設定・更新するために使用されます。このノードを利用することで、Omniverse のシーン内に存在する Prim の動的な変更が可能になります。
プロパティーのパラメーターのPrimに最初に置いたSphereを設定します。
Attribute Nameに「xformOp:translate」を選択します。
※xformOp:translate は、USD (Universal Scene Description) フォーマットで使われる属性の一つで、Prim(オブジェクト)の**位置(平行移動)**を定義するためのプロパティです。この属性を使うことで、シーン内のオブジェクトの 3D 空間における座標を指定できます。
![](https://assets.st-note.com/img/1734846904-NeSran4FLPHz5ZGuj0162lYw.png?width=1200)
・「Constand point 3d」を検索→→アクショングラフ上に置く。→同じ作業を2回行う。
※Constant Point 3D は、3次元空間内の固定された座標(3D ベクトル)を提供するために使用されます。このノードは、シーン内で一貫した位置情報を参照したり、他のノードに入力として使用する際に便利です。
プロパティーでX,Y,Zそれぞれの値を変更します。
値は何でも構いませんが2つのノードの値が異なるようにしてください。これはPrimの座標位置を示しているので、「J」ボタンを押すたびに2つの座標を切り替える、つまりPrimの位置が切り替わることになります。
![](https://assets.st-note.com/img/1734847054-QPdUb1Z5sShykiO98pRTE4vB.png?width=1200)
・それぞれのノードを以下のようにつなぐ
![](https://assets.st-note.com/img/1734845959-brKcQ9UHLV8JOFEXdM02hiew.png?width=1200)
スタートボタンを押し開始すると、「J」ボタンを押すたびにSphereの位置が「Constand point 3d」に入力された値を元に変わるようになります。
![](https://assets.st-note.com/img/1734847290-MSPqkQ8NDLBYTRFvsHOwnjdr.png?width=1200)
今回の一連の作業は以下のOmniverseのチュートリアルを参考にしています。