Itoo Software Forum

Author Topic: Writing User data into instantiated xrefs  (Read 488 times)

ITCodies

  • Newbie
  • *
  • Posts: 6
Writing User data into instantiated xrefs
« on: March 09, 2023, 04:17:56 PM »
Hi

We're looking to do more with railclone within our game engine natively. Taking an example of a wall. I can make a wall along a spline using xref parts for the wall. When I'm happy with it I can use the railclone tools to instantiate and if unchanged they show as the original xrefs again. So far so good. However our engine uses a combination of 3ds Max's User defined Object properties and selection sets in order to tag the xref parts game side to do certain things. If we want the end part of the wall to be tinted red then we'd set up a game material and a User property string or selection set that would say e.g.(Wall=red.material).
So I was looking to be able to tag a segment in railclone to have a user property so that when instantiated. The xref would inherit such a tag. (Either Max user property or selection set)

The problem is that of course I can tag the xrefs after they have been instantiated but unfortunately if I then have to adjust the railclone wall again. This tagging is wiped out.

So questions?
Is there any node trick or method that I can achieve this within Railclone at the moment?
Is it possible to do such a thing via editing the railclone API or maxscript?
Is the Railclone tool utility able to be edited consumer side to help? The current ('Move to layer' is similar to moving to our desire to 'move a selection set')

Thanks for any advice

Jus
« Last Edit: March 09, 2023, 04:19:28 PM by ITCodies »

iToo

  • Administrator
  • Hero Member
  • *****
  • Posts: 4388
    • iToo Software
Re: Writing User data into instantiated xrefs
« Reply #1 on: March 10, 2023, 01:30:40 PM »
Hi,

I'm not sure if i understand well your suggestion. Do you want that:

a) User properties of source segments are propagated to the instances of RailClone Tools.
Currently, user properties are not preserved, but i think that would be easily fixable.

b) Create and assign new user properties in the style workflow, and export them in RailClone Tools.
For example, instead to change material ID, assign a user property with the color (or any other thing).

This is more complex, because RailClone has not any operator or mechanism to handle user properties/tags.

Quote
Is the Railclone tool utility able to be edited consumer side to help? The current ('Move to layer' is similar to moving to our desire to 'move a selection set')

No. RailClone Tool is written in C++, and integrated in the core of RailClone. It's not possible to customize it.
Anyway, if you need some specific feature which may be useful for other customers, we'll add it to the wishlist.

Carlos Quintero
iToo Software

ITCodies

  • Newbie
  • *
  • Posts: 6
Re: Writing User data into instantiated xrefs
« Reply #2 on: March 14, 2023, 11:42:06 AM »
Hi Carlos

Thank you for your reply. Essentially on points a) and b). I’d like to see both. 😊

a)   Being able to tag Max User properties data in the xref segment and then retrieve it after the instantiate stage is essential when using Railclone for instance tagging as is the norm in the games industry field. That would be something we could work with.

I can see that you do add some User properties data to the instantiated object for Octane already.

Found as:

octane_movable_proy = True

in the User properties in the Object properties of the instance.

b)   Even better would be the ability to tag segments with User properties data within the node graph so that after the instantiate stage and as instances of the original xref’s they would inherit those properties and the data could be retrieved.

Railclone and Forest pack seem to be missing some features that the games industry need. I know that these tools are render and modelling centred but if it were helpful I’ll write a wider post related to what we’ve found to be missing in Forest pack and Railclone when wanting to use the tools as an instance objects manager at a games studio. Much of this would normally be done in Unreal as a blueprint or if your games engine has Houdini engine integrated. You'd make it do the tagging as a Houdini tool within the engine. For studios using their own engines and using Max. I feel Itoo are missing some simple but essential user data tooling that means Railclone and Forest pack would fill a gap missing from the Max to proprietary games engine work pipeline.
« Last Edit: March 14, 2023, 11:44:27 AM by ITCodies »

iToo

  • Administrator
  • Hero Member
  • *****
  • Posts: 4388
    • iToo Software
Re: Writing User data into instantiated xrefs
« Reply #3 on: March 15, 2023, 08:34:11 AM »
Hi Jus,

a) Agreed. We'll make the changes to RailClone 6 to inherit user properties correctly.
As you pointed out, actually it handles an unique property (octane_movable_proy). This is required to support instancing in Octane. It should not be difficult to inherit the other ones.

b) I have some ideas to handle custom properties within the graph. But this will require more coding, and probably a custom operator. I will discuss it with our team.

Although our plugins are mostly used in Architecture, we are very interested to expand it to other industries (VFX and gaming, specially).
We'll be pleased to hear your suggestions, to integrate better our plugins with custom engines. Usually we don't receive this type of feedback, which is very interesting.

Thanks !
Carlos Quintero
iToo Software