サポートチケットを作成する
フォローする

Q100443:カタナでのスクリプティングとプログラミング

概要

Katanaは、アプリケーションにカスタムコードを追加するための3つの言語をサポートしています。Python、Lua、およびC ++です。この記事では、Katanaでのスクリプト作成とプログラミングの開始方法、および各言語が最も適しているタスクについて概説します。

詳しくは

Katanaで使用可能な各言語にはそれぞれ独自の長所があるため、特定の使用例に最も適しています。

パイソン

Pythonはときに、ユーザーが、例えば、アプリケーションをカスタマイズすることを可能にするために、特に、APIのコンテキストにおいて、迅速なアプリケーション開発のために広く使用されているプロジェクトで作業し ノードでの作業 ノードタイプのカスタマイズ ユーザインタフェースのカスタマイズ 、または Pythonベースのパラメータ表現

その他の例は、Pythonを使用したスクリプティングに関するKatanaオンラインヘルプ、およびさまざまなPythonワークフローについて詳しく説明している次の記事で説明されています

ピトン - 性能に関する考慮事項

より速いパフォーマンスが要求されるところでは、Pythonは常に理想的な選択ではありません(恐らくGILのせいで)。

パラメータ式の文脈では、ノードまたはパラメータを参照する単純な式には、Pythonの式に代わるより速い選択肢があります。これは参照式と呼ばれます。詳細についてはKatana開発者ガイドへのリンクをたどってください。

Katanaの以前のリリースでは、いわゆるKatana ProcessManagerを使用してPythonベースのAttributeScriptおよびアセットプラグインをアウトプロセスで実行する際の安定性の問題がありました。

ProcessManagerの安定性が刀2.5リリースで改善されたが(中にTP 128448参照Katana 2.5v1リリースノートを 、特にシーン評価の文脈でのPythonの性能が問題です)。

Luaはより優れたパフォーマンスを提供するため、 OpScript ノードを使用したシーングラフ処理操作に適したスクリプト言語となっています

LUA

LuaはKatanaのOpScriptノード内で使用されています。 OpScript / Luaを使用すると、Pythonより高速で強力なOp APIにアクセスできます。特に、OpScriptノードを使用すると、位置の削除、新しい子位置の作成、属性の設定や編集など、シーングラフの階層構造を変更できます。

Luaはシーングラフ上で操作を開発するための速い開発ターンアラウンドタイム(後にOp Typesとして実装されることが計画されているより複雑な操作をプロトタイピングするため)と、シーンを調理することの一部としての速い実行時間と安定性の間の妥当なバランスを表します。

状況によっては、OpScript / Luaを使用する代わりに、カスタムOpタイププラグインを実装することをお勧めします。これが有利であるかどうかは、当面の実際のユースケースによって異なります。プロジェクトとその資産の複雑さ、実行される操作の数、ターゲットとするシーングラフの場所の数です。 OpScript / Luaではなく、Ops / C ++でのパーティクルシミュレーションのようにFXデータを処理することをお勧めします。

OpScriptとOp APIの使い方の概要については、KatanaのHelp > Example Projects メニューにあるOpScriptチュートリアルをご覧ください

Op APIの詳細については、 KatanaオンラインヘルプおよびKatana開発者ガイドを参照してください

次の記事にも興味があるかもしれません。

C ++

大きなデータセットを扱う場合など、パフォーマンスが重要な場合は、Lua OpScriptをC ++ Opタイプのプラグインに移植できます。

インターフェースのドキュメントについてはKatana開発者ガイドを参照してください。そしてKatanaソースコードと共に出荷された例“ HelloWorld”を参照してください。 $ KATANA_ROOT / plugins / Src / Ops / HelloWorld

構築手順はここにあります: $ KATANA_ROOT / plugins / Src / README.md

サンプルOpのコンパイルに関するヒントと手順については、次の記事を参照してください。Q100326:カスタムOpsの作成とテスト

次のコンテンツにも興味があるかもしれません。

Q100351:C ++ Opで現在のフレーム(および他のシステムのグラフ状態)を照会する

参考文献

各言語のガイドと詳細なリファレンスについては、Katanaオンラインヘルプと開発者ガイドを参照してください。

Python

ルア

C ++

この記事は役に立ちましたか?
/

We're sorry to hear that!

Please tell us why.
0人中0人がこの記事が役に立ったと言っています

コメント