++scenes;

CGメイキング,Terragen 4の使い方,その他お知らせ

(Terragen 4) Terragen RPCを試す、の前振り

本記事の対象Terragen 4バージョン:Professional (Educational含む)

Terragen 4.6において、(個人的に)とても興味深いアップデートがありました。

Coming soon: RPC API

RPC (Remote Procedure Call)とは、動作中のプログラムに対して外部からの操作を加えたり、プログラムからの応答を返したりする、いわゆる遠隔操作をするための規約のことを指します。 RPCのやり方にも多数ありますが、TerragenではJSON-RPCと呼ばれる手法を使っています。

JSON (JavaScript Object Notation)のことで、JavaScriptにおけるオブジェクトの書き方を基にした、データ構造の書き方のことです。 まあこの辺りはそのうち実例を示します。

このTerragen RPCにより、動作中のTerragen 4のノードを外部から参照したり、編集したりできるようになりました。 これによって、従来はできなかったいろいろな拡張が可能となります。 たとえば、以前私が作成したPBR Node Generatorも、今はコピー操作やTGCファイル経由でTG4にノードネットワークを追加していましたが、
・オブジェクトの一覧を表示・選択し、
・任意のオブジェクトに対してテクスチャ類を一括指定
・結果が即座にTG4側に反映される

のようなことが可能になります。 また、外部のアプリケーションとのリアルタイムの同期を行うようなスクリプトを作成すれば、他アプリケーションを使ったワークフローの効率化が可能となるでしょう。

JSON-RPC自体は言語に寄らず使用することができますが、Terragen RPCでは、PS社からPythonによるAPIラッパライブラリと、サンプルが公開されています。(バージョン0.9現在) Pythonコードにより簡単にTerragen 4を外部から操作することができます。

GitHub - planetside-software/terragen-rpc

(ここから少し専門的になりますが)

APIはHigh Level APIとLow Level APIに分かれています。
High Level APIは、例えばノードを作るとか、削除するとか、パラメータを更新・参照するとか、我々が普段GUI上でやっている操作をプログラムから行うための関数群です。
Low Level APIは、よりRPCの通信部分に近いところであり、(おそらく)アプリケーション側からは通常触ることがないものです。

(ここまで)

Terragen RPCのドキュメントはこちらにまとまっています。 また、チュートリアルとして、地球上の位置と時刻を指定することで太陽の位置を求めて設定するチュートリアルが用意されています(便利では!?)

Terragen RPC — Terragen RPC 0.9.1 documentation

次回以降、Terragen RPCを実際に試していきます。 最終的には、上で例示したPBR Node Generatorに組み込んでいきます(NodeベースからPythonベースに移植する決意がつきました)

本業はC++屋なのでC++でのAPIラッパ書くのもいいですね(やるとは言っていない)

今日は以上!

(個人的に今引っ越し中で遊べねえ〜〜〜うわ〜〜〜。次回更新は11/20あたりを狙っています)とか言いながら書いてしまいました。

次回:(Terragen 4) Terragen RPCを試す その1(準備・サンプル実行) - ++scenes;