Search - User list
Full Version: Looking for a way to get vray proxies to work with the houdini engine
Root » Houdini Engine for Maya » Looking for a way to get vray proxies to work with the houdini engine
arjanM
Hi,

I want to use an houdini asset to scatter plants and trees om geometry in maya.
These plants and trees are vray proxies. The problem is that houdini doesn't accept the proxies as input geometry, which is kind of logic, as it isn't actually geometry.
I could connect the proxies manually to the maya instancer that the houdini asset creates, but I belief this connection could be reset everytime I reload or update the asset.
Or I could only output the particles/points with the asset and connect a maya instancer to it, but it doesn't seem to pass trough the particle attributes to the instancer.

Does anybody has experience with this and found a good workflow to use houdini engine with vray proxies?

thanks,
Arjan
juliap
Not too much experience with this workflow, but a couple of questions about what we might do to support it better:

1. Yes, there are a number of things which will trigger rebuilding of the asset ouputs (and thus a loss of connections, setAttrs on the output). Reloading the asset, modifying any of the asset options that change the number of outputs. If SyncWhenInputConnects is on, if an input connection or parm value changes. If AutoSyncOutputs is on, if the cook determines that the number of outputs has changed. Would it be useful to have a preSync and postSync callbacks that you could register, so that you would have the option to save and restore any information that you feel should survive the sync?

2. Which particle attributes are not being passed to the instancer, and how did you want to use them? If you are using age to cycle though the input hierarchies, note that age is a computed output of the Maya particle system based on birthTime. Note that only a subset of the particle attributes are passed to the instancer from the particleShape (for controlling the transform and cycling - see the Maya node reference doc for the precise list of attrs. If you want to perform one of those mapping functions with a different attribute you may need to rename it
arjanM
Thanks for the fast response.

A preSync and postSync scripting option would be very handy. Also for adding any other maya connections to the houdini asset.
So this way I could connect other objects to the maya instancer and in the presync script I could save the connections to the instancer and restore them in the post sync script?

Is there also a way to be able to use the objectIndex atribute of the instancer? This way I would be able to use one instancer for multiple objects.

In the second question I meant that, when I only output the points in the asset it will create a particle system in maya, but the rotation and scale attributes (@scale and @orient or @up and @N) are not present in the particle system.
I could save the scale and rotation in other attributes like the force and velocity and then get them from the particle system in maya and convert them into dynamic arrays with the soup plugin. But I think that is not really the most flexible workflow.
juliap
I will add an RFE for pre/post Sync callbacks.

As for objectIndex, for a packed primitive, we should be converting the name attribute to an appropriate index and outputting it in the instancer data, but if you're experiencing a bug there, let me know.

For particles, we stuff all the available numeric attributes (includingObject instance) from the particle system into the outputPartParticleArrayData. This attr is connected as a particleCache to the output nParticleShape. So if you added a point attribute, it should come through in the data. However, if we have failed to create the corresponding dynamic particle attribute on the output nParticleShape, I don't think it gets created based on the cacheArrayData input. I will try that and enter a bug if appropriate, but in the meantime, you could try adding the attribute by hand on the output nParticeShape and see if the data magically materializes.
arjanM
Wow, the objectIndex attribute works! I didn't know it puts through the attributes to the instancer as is.
This way I only have to reconnect one connection to instancer. With a pre/and post Sync callback it would be pretty doable.
Thanks!

How should I setup the packed primitives with one instancer?
When copy different packed primitives to different points it creates a path attribute on the primitives.
I tried adding a name attribute to the primitive and/or the points, but I still get a different instancer for the points for each different packed primitive in maya.
juliap
Darn - that's more of a Houdini question than a Maya question - I may need to play with that for a bit.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB