Coming soon: RPC API

Started by Matt, October 26, 2022, 02:13:19 PM

Previous topic - Next topic

Matt

Quote from: digitalguru on November 17, 2022, 05:35:23 PMGotcha.
I've got the RPC working to assemble a group of tiled heightfields and plug them into the scene. It's hard coded to plug into the Compute Terrain for now.
Works really well.

SuperLike!
Just because milk is white doesn't mean that clouds are made of milk.

digitalguru

I'll post a video of it working tomorrow :)

digitalguru

Currently working on exporting a camera with animation via RPC, which works ok when I export a .chan file at the same time and set the "import_filename" to .chan path.
Terragen then displays the prompt "Do you want to import this file now" and clicking yes imports the animation.
Would be nice if this import was automatic without the prompt.

I don't think this is implemented or if the below are exposed parameters, but will it possible to export animation keys via RPC directly?

I can get this into the clip file by constructing the animationData with the proper formatting in the XML.For instance for a simple position key in XML (indents not formatted):

<animationData param = "position" componentIndex = "0" >
<curve mode = "tcb" >
<key t = "1" value = "278.1521504" tension = "0" continuity = "0" bias = "0" />
</curve>
</animationData> <animationData param = "position" componentIndex = "1" >
<curve mode = "tcb" >
<key t = "1" value = "243.9800755" tension = "0" continuity = "0" bias = "0" />
</curve>
</animationData> <animationData param = "position" componentIndex = "2" >
<curve mode = "tcb" >
<key t = "1" value = "-1308.861239" tension = "0" continuity = "0" bias = "0" />
</curve>

I tried this though knew it wouldn't work:

camera_node.set_param('animationData param', "position")
camera_node.set_param('componentIndex', "0")
camera_node.set_param('mode', "tcb")
camera_node.set_param('key t', "1")
camera_node.set_param('value', "278.1521504")
camera_node.set_param('tension', "0")
camera_node.set_param('continuity', "0")
camera_node.set_param('bias', "0")

I guess there's no way for the "key t", "value", "tension" values etc to know they should be under the component index "0"?

Would be ideal to be able to create a camera with animation / or just update an existing cameras animation bypassing the creation of cip files and .chan files.