#HW3: HBJSON Parsing tool to edit base game Houdini VFX exported to Niagara.

20 messages · Page 1 of 1 (latest)

uneven pulsar
#

Homeworld 3 Niagara Systems such as engines or RCS VFX effects are using the coordinates given by a Houdini Point Cache Asset.

To modify a base game effect to fit a ship you are rigging, you would need to edit his Point Cache. Except you will notice that you can't do that in the editor. Doing Right click > Export on the asset will give you a binary "HBJSON" file, containing the list of parameters that defines the effect coordinates in a non human-readable format.

In order to edit this file, I made a parsing and encoding tool allowing for HBJSON -> JSON and JSON -> HBJSON conversion. The workflow would then be to export the HBJSON of the effect you want to edit, convert it to JSON using the tool (you want to edit the Cd (= coordinates), the Pscale (scale) and the "InitialSpriteSizeX/Y" of the data points. You can then convert you edited JSON back into HBJSON and import it in the editor.

#

Usage :

py HBJSON_Transcoder.py <PATH TO HBJSON/JSON FILE>
#

If the provided file is a .json, it will be converted to a .hbjson.
If the provided file is a .hbjson, it will be converted to a .json.
Watch out : this was only tested on engines cache points for now. Should work on something else, but it may not.

lament imp
#

This is excellent for custom engine VFX configs

#

@next cargo can we get this pinned? and Suggestion @uneven pulsar to add this to Mod.io in a guide with the links.

uneven pulsar
# lament imp <@140623380620640256> can we get this pinned? and Suggestion <@13832335950191001...

Thank you !
Sure, I'll do that when I have time.
I mostly made it to enable an internal blender add-on to automatically generate an HBJSON for our meshes, as they have dedicate engines "sources" meshes I could utilize, so I don't really have a complete workflow for engine edition, but I could figure that out and maybe publish the blender plugin in a better package as well so you can just create circles in blender on your ship mesh and have that be your engine "source" with all the size and coordinates parameters figured out for you.

lament imp
#

Could you test with the Idle lights and the Vector thrusters next? Those ones are also controlled through the Houdini Point Caches

peak wadi
#

Tom this is a valuable post. Thank for sharing!!

uneven pulsar
#

I'm unable to visualize the vector thruster in the editor, any tricks to do that ?

lament imp
#

not 100%, I don't think it shows because it's firing needs the vector data from the engines thats pushed to it in game

uneven pulsar
#

Yeah, but I don't see it in the system inputs.. I'll continue investigating

uneven pulsar
#

Note: some point caches are actually imported (and so can/will be exported) as human readable hjson instead of a hbjson binary.
Doesn't seem to be any pattern, look like they were used interchangeably.

uneven pulsar
#

Update : finally got it fully working with engines !

peak wadi
#

dayum that looks awesome 😎😎

lament imp
#

It looks amazing my friend ❤️

uneven pulsar
#

(and the lights are straight forward)

uneven pulsar
uneven pulsar