TOPTOP ... PostPost ... ReplyReply ... QuoteReply/Quote ... EmailEmail Reply ... DeleteDelete ... EditEdit
PreviousPrevious ... NextNext ... Previous TopicPrevious Topic ... Next TopicNext Topic ... Entire TopicEntire Topic
Topic: Keeping User defined Object Properties through instancing and Xref (1 of 15), Read 63 times New
Conf: Game development
From: Nick Jensen nick@runestone.dk
Date: Tuesday, April 12, 2005 05:42 AM

We're a bit puzzled as to why the User Defined data in the Objects Properties is not updated between instanced objects - nor does it get updated through Xref's.

We rely heavily on those user defined properties in our pipeline, but where we could improve our workflow dramatically, we're set back because we can't get MAX to treat the user defined data logically.

We're currently storing lots of properties to be used in the game engine, in the user defined object properties - this being if the object is collideable, visible, LODinfo etc.
- but this is not updated with instances or Xref.
I know MAX does not use this data, but it seems odd to me, that it isn't properly omplemented for those that really use it. Or are we the only ones? I know that TurnTool also uses a similar method to describe object properties to the engine.

Is there a way around this? I'm headed over to Scriptspot, to see if i can look something up.

Any help/tips/info would be greatly appreciated.

Cheers,
Nick

TOPTOP ... PostPost ... ReplyReply ... QuoteReply/Quote ... EmailEmail Reply ... DeleteDelete ... EditEdit
PreviousPrevious ... NextNext ... Previous TopicPrevious Topic ... Next TopicNext Topic ... Entire TopicEntire Topic
Posted via Email
Topic: Re: Keeping User defined Object Properties through instancing and Xref (2 of 15), Read 59 times New
Conf: Game development
From: Jan Klima dorgh@bistudio.com
Date: Tuesday, April 12, 2005 10:16 AM
Originally Posted 12-Apr-2005 06:00

I`ve had the same trouble, So, I`ve made a script that pass this and update
the user defined properties... mail me at dorgh@seznam.cz... if you want
this

TOPTOP ... PostPost ... ReplyReply ... QuoteReply/Quote ... EmailEmail Reply ... DeleteDelete ... EditEdit
PreviousPrevious ... NextNext ... Previous TopicPrevious Topic ... Next TopicNext Topic ... Entire TopicEntire Topic
Topic: Re: Keeping User defined Object Properties through instancing and Xref (3 of 15), Read 56 times New
Conf: Game development
From: Alan Noon anoon@day1studios.com
Date: Tuesday, April 12, 2005 06:16 AM

We used to do the user properties thing as well, but in addition to the issues you mention, that method is prone to errors such as typos, syntax, etc. I ended up writing a maxscripted modifier plugin that stores all of the data we need, and it worked out really well. I highly recommend going that route. You can instance modifiers, cut, copy and paste them, access them via maxscript, etc... everything you can do with a regular modifier.

-------------
Alan Noon
Day:1:Studios, LLC.
820 West Jackson Blvd.
Suite 350
Chicago, IL
60607

TOPTOP ... PostPost ... ReplyReply ... QuoteReply/Quote ... EmailEmail Reply ... DeleteDelete ... EditEdit
PreviousPrevious ... NextNext ... Previous TopicPrevious Topic ... Next TopicNext Topic ... Entire TopicEntire Topic
Topic: Re: Keeping User defined Object Properties through instancing and Xref (4 of 15), Read 54 times New
Conf: Game development
From: Nick Jensen nick@runestone.dk
Date: Tuesday, April 12, 2005 06:22 AM

Hey guys
Thanx for your feedback.
Jan : I've sent you an email. Looking forward to checking your script out.

Allan : You make a good point. What it really boils down to, is to get the user defined properties to update through xref, similar to how it works with modifiers through xref and materials through xref.

Typos will always be an issue when humans are involved - but if we were to only define the properties in a "master" file pr. object, and then have that follow the xreffed object it would solve quite a bit for us.

Cheers

TOPTOP ... PostPost ... ReplyReply ... QuoteReply/Quote ... EmailEmail Reply ... DeleteDelete ... EditEdit
PreviousPrevious ... NextNext ... Previous TopicPrevious Topic ... Next TopicNext Topic ... Entire TopicEntire Topic
Topic: Re: Keeping User defined Object Properties through instancing and Xref (5 of 15), Read 54 times New
Conf: Game development
From: Chris Subagio
Date: Tuesday, April 12, 2005 09:00 AM

I think the issue here is that object properties are per object, and each instance is an object. Obviously each object has it's own portion of data, e.g. it's transform controller. The User Properties text just happens to also be a per object thing.

As mentioned, custom attributes are a better place to store this sort of data, as they can be bound to base objects, or modifiers, the stuff that is instanced. So those would propagate as you expect.

TOPTOP ... PostPost ... ReplyReply ... QuoteReply/Quote ... EmailEmail Reply ... DeleteDelete ... EditEdit
PreviousPrevious ... NextNext ... Previous TopicPrevious Topic ... Next TopicNext Topic ... Entire TopicEntire Topic
Topic: Re: Keeping User defined Object Properties through instancing and Xref (6 of 15), Read 47 times New
Conf: Game development
From: Nick Jensen nick@runestone.dk
Date: Tuesday, April 12, 2005 01:10 PM

Indeed Chris. But one could argue if an object is or is not properly instanced, if the object properties are not instanced as well. In my oppinion it fails to be a proper instance.

But as Alan (and now you) stated, a modifier based solution is probably better. I did get Jan's script to work - even Xref's inside a group - but if used together with LOD groups, it too failed.

Which again brings us back to the modifiers - unless the scriptmonkeys at work (praise their wits) can modify Jan's script to fit our requirements.

Now - regarding the modifier solution. I am curious as to how that data would be incorporated into an exported format.
Would the data from the modifier be added 100% like data stored in the User defined object properties? If so thats just peachy - if not, it would probably also mean a rewrite of our exporter.
I'm just trying to find the balance between it being worthwhile having the coders work extra to get this up and running, vs. the extra time we'd have to spend without an "automated" solution.

Thanx for your inputs though - appreciate it.

Cheers

TOPTOP ... PostPost ... ReplyReply ... QuoteReply/Quote ... EmailEmail Reply ... DeleteDelete ... EditEdit
PreviousPrevious ... NextNext ... Previous TopicPrevious Topic ... Next TopicNext Topic ... Entire TopicEntire Topic
Topic: Re: Keeping User defined Object Properties through instancing and Xref (7 of 15), Read 49 times New
Conf: Game development
From: Alan Noon anoon@day1studios.com
Date: Tuesday, April 12, 2005 02:47 PM

When you write a scripted modifier, you'll set up what is called a parameter block, which is basically a bank of settings that you want saved within the modifier and linked to the modifier UI.

There will be a trivial amount of exporter work that needs to be done so that it knows to look for those modifiers, then seek out the settings stored in those parameter blocks.

-------------
Alan Noon
Day:1:Studios, LLC.
820 West Jackson Blvd.
Suite 350
Chicago, IL
60607

TOPTOP ... PostPost ... ReplyReply ... QuoteReply/Quote ... EmailEmail Reply ... DeleteDelete ... EditEdit
PreviousPrevious ... NextNext ... Previous TopicPrevious Topic ... Next TopicNext Topic ... Entire TopicEntire Topic
Topic: Re: Keeping User defined Object Properties through instancing and Xref (8 of 15), Read 48 times New
Conf: Game development
From: Alan Noon anoon@day1studios.com
Date: Tuesday, April 12, 2005 02:49 PM

...and FWIW, the extra bit of work it took to get this going was invaluable. We're bringing this functionality forward into our next gen games.

-------------
Alan Noon
Day:1:Studios, LLC.
820 West Jackson Blvd.
Suite 350
Chicago, IL
60607

TOPTOP ... PostPost ... ReplyReply ... QuoteReply/Quote ... EmailEmail Reply ... DeleteDelete ... EditEdit
PreviousPrevious ... NextNext ... Previous TopicPrevious Topic ... Next TopicNext Topic ... Entire TopicEntire Topic
Topic: Re: Keeping User defined Object Properties through instancing and Xref (9 of 15), Read 42 times New
Conf: Game development
From: Nick Jensen nick@runestone.dk
Date: Wednesday, April 13, 2005 12:16 AM

Good stuff Alan. Your words and experience with this, will weigh heavily with my persuasion of the coders.

Thanx again to everyone.

Cheers

TOPTOP ... PostPost ... ReplyReply ... QuoteReply/Quote ... EmailEmail Reply ... DeleteDelete ... EditEdit
PreviousPrevious ... NextNext ... Previous TopicPrevious Topic ... Next TopicNext Topic ... Entire TopicEntire Topic
Topic: Re: Keeping User defined Object Properties through instancing and Xref (10 of 15), Read 41 times, 1 File Attachment New
Conf: Game development
From: Alan Noon anoon@day1studios.com
Date: Wednesday, April 13, 2005 05:59 AM

I attached an image of my Properties modifier.
In the Node Type rollout is a drop down that lets the user specify a particular type of object: Default LOD, Facing, Anim, etc.
The Common Properties Rollout contains settings that are applicable to all nodes.
The Last Rollout is dynamic and changes to reflect specific properties of the node type as chosen in the Node Type Drop down list.

-------------
Alan Noon
Day:1:Studios, LLC.
820 West Jackson Blvd.
Suite 350
Chicago, IL
60607

Image DAY1PROPS.JPG (73KB)

TOPTOP ... PostPost ... ReplyReply ... QuoteReply/Quote ... EmailEmail Reply ... DeleteDelete ... EditEdit
PreviousPrevious ... NextNext ... Previous TopicPrevious Topic ... Next TopicNext Topic ... Entire TopicEntire Topic
Topic: Re: Keeping User defined Object Properties through instancing and Xref (13 of 15), Read 11 times New
Conf: Game development
From: Josh Jones
Date: Thursday, April 14, 2005 07:11 AM

Alan,

What are the advantages of the Modifier approach over using a Custom Attribute? For me, a good workflow would be to have a Floater that would list in table format all my objects and their custom attributes. (I don't know if Max 7 can do that easily with its additional CA management or not, since I'm still on Max 5.) That way, I could see an overview of my objects and make changes from the table (in a similar approach as the Light Lister).

The downside I see to the modifier approach is that eveytime you want to edit your object you have to continually select your base object.

-josh

TOPTOP ... PostPost ... ReplyReply ... QuoteReply/Quote ... EmailEmail Reply ... DeleteDelete ... EditEdit
PreviousPrevious ... NextNext ... Previous TopicPrevious Topic ... Next TopicNext Topic ... Entire TopicEntire Topic
Topic: Keeping User defined Object Properties through instancing and Xref (11 of 15), Read 32 times New
Conf: Game development
From: Simon Feltman
Date: Wednesday, April 13, 2005 11:26 AM

The modifier solution is great but you might also consider using MAXScript Custom Attributs. Custom attributes can be attached to any level of objects. User Props are only stored at the Node level along with transform and visibility... You want to attach these properties to the object level of a node. This is what gets instanced when you instance an object in max.

Use the existing "Parameter Editor" utility found in the Animation menu. This is a generalized utility that allows you to attach properties onto a node object (or base level) It also allows UI creation that shows up when the object is selected. These parameters are then accessible through MAXScript or the SDK for when you export.

Hope this helps,
-Simon

TOPTOP ... PostPost ... ReplyReply ... QuoteReply/Quote ... EmailEmail Reply ... DeleteDelete ... EditEdit
PreviousPrevious ... NextNext ... Previous TopicPrevious Topic ... Next TopicNext Topic ... Entire TopicEntire Topic
Topic: Keeping User defined Object Properties through instancing and Xref (12 of 15), Read 20 times New
Conf: Game development
From: Nick Jensen nick@runestone.dk
Date: Thursday, April 14, 2005 12:17 AM

Simon : Thanx - we're already looking into that possibility.

Cheers

TOPTOP ... PostPost ... ReplyReply ... QuoteReply/Quote ... EmailEmail Reply ... DeleteDelete ... EditEdit
PreviousPrevious ... NextNext ... Previous TopicPrevious Topic ... Next TopicNext Topic ... Entire TopicEntire Topic
Topic: Keeping User defined Object Properties through instancing and Xref (14 of 15), Read 9 times New
Conf: Game development
From: Alan Noon anoon@day1studios.com
Date: Thursday, April 14, 2005 11:10 AM

Josh, your floater idea sounds pretty good actually. Great suggestion.

In truth, I went with the modifier approach because it seemed to be the most simple.

For one, all of our artists are familiar with the Stack workflow. I would doubt that any in my shop have tried out Custom Attributes.

For two, I already had experience scripting a modifier plugin, so I could reuse code. It only took me a couple hours to put the whole thing together.

Also, the parameters are stored directly in the modifier paramter blocks and are immediately accessible via the modifier panel UI. With the light lister type approach, wouldn't the floater have to be refreshed all the time to reflect any changes? Wouldn't the floater be prone to getting out of sync, as Light Lister does?

I was just thinking... if you went the CA route, what would happen if you decided you needed another setting? How would you update the scenes that you created previously? Wouldn't you have to open each scene, select each object and create the new CA? How would you be sure you got every object? With the modifier, the plugin script gets modified, then the next time a files gets opened, the change is automatically propegated to each object already containing that modifier.

FWIW, At one point I had considered creating a floater that would apply or change parameters within the Day1Properties modifier en masse, so I guess that would be a similar idea to what you suggest. I just never got around to it during the last project. Perhaps I should. Sounds like it might be the right mix of the best of both worlds.

Great discussion
-------------
Alan Noon
Day:1:Studios, LLC.
820 West Jackson Blvd.
Suite 350
Chicago, IL
60607

TOPTOP ... PostPost ... ReplyReply ... QuoteReply/Quote ... EmailEmail Reply ... DeleteDelete ... EditEdit
PreviousPrevious ... NextNext ... Previous TopicPrevious Topic ... Next TopicNext Topic ... Entire TopicEntire Topic
Topic: Keeping User defined Object Properties through instancing and Xref (15 of 15), Read 5 times New
Conf: Game development
From: Chris Subagio
Date: Thursday, April 14, 2005 11:40 AM

If your modifier's parameters are exposed in a paramblock, then it should be reflected in the Maxscript. If it's not quite that straightforward, you'll need to expose them yourself.

At that point, you could write exactly a light lister style inspector for your objects, which is rather nice to have. Actually just Maxscript access in general is gold, to do things like select any arbitrary set of objects and convert them all from fliberdigibbets to bandicoots, while setting their life fields to 16, but only where they were 42 before hand. You know, arbitrary stuff.

The modifier solution is actually the desirable one because it supports over and above what you get with CAs. If I read Alan's thing correctly, the modifier loads it's dynamic properties from a script, which is the equivalent of saying that you have your CA _definitions_ xrefed from a central source. So rather than making new CAs for everything, you just update your script, and voila, every instance of that modifier has the new controls on it. Because it's your modifier, you also have the option of determining how you store the data, and what other data masking you do, e.g. any value not changed from it's default is assumed to be default, so if you change any central default values (say in your modifier config script) they'd all change!

Much, much better.


Post New Topic | Reply to: "Keeping User defined Object Properties through instancing and Xref"
Watch this Topic