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

Q100358:Geolib3クライアントを使用してPythonでシーングラフの位置の属性を照会する方法

概要

この記事では、Pythonを使用して、場所属性などのシーングラフデータを作成および照会する方法について説明します。

詳しくは

ユーザーはシーングラフの位置の属性の値を問い合わせるPythonスクリプトを書きたいと思うかもしれません。これを可能にするために、シーンは最初に調理されなければなりません。クックはシーングラフの評価を表します。つまり、シーンデータを計算するにはノードグラフを評価する必要があります。この手順が実行されない場合、属性データは存在しないため、照会できません。

これは、シーンデータの作成を要求できるGeolib3クライアントを作成することによって実現できます。 次の例を参照してください http://tomcowland.com/katana/archives/748 から ):

# We first need to get a hold of the runtime the UI is using
runtime = FnGeolib.GetRegisteredRuntimeInstance()

# Transactions are used to batch together actions
txn = runtime.createTransaction()

# Make a client, and attach it to an Op in the tree, we get the Op from a reference to a Node.
client = txn.createClient()
op = Nodes3DAPI.GetOp(txn, NodegraphAPI.GetNode('Render'))
txn.setClientOp(client, op)

# Commit the transaction to the runtime, if we don't the client will exist, but won't yet be pointing to an Op
runtime.commit(txn)

その後、クライアントを使用して場所を作成し、その属性値を調べることができます。たとえば 、カメラの場所の centerOfInterest 属性 を取得し ます。

location = client.cookLocation('/root/world/cam/camera')
attrs = location.getAttrs()
COI = attrs.getChildByName('geometry.centerOfInterest')
print COI.getValue()

Geolib 3と ランタイムの詳細については 、Katanaオンラインヘルプの「Geolib 3の基本概念」セクションと 上記のブログ記事を参照してください。

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

We're sorry to hear that!

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

コメント