Archived

This topic is now archived and is closed to further replies.

SpittingTrashcan

Platonic Design: a clever idea?

Recommended Posts

Good forum readers, Let me begin by saying that although this idea is a tad gearheaded, I am posting it here because, first, I am not particularly interested in the details of its implementation, and second, I am interested in how people might use it. In 3D games, objects are represented by 3D models. These models are usually stored as collections of absolute measurements: height, width, circumference, etcetera. Thus a complex object, such as a human being, is considered to be a collection of many measurements. Each separate human-type object shares some behaviors, but in general has many different exact measurements, so it is functionally a different "kind" of thing. An alternate method which I have been considering is this: 1. Create the "perfect average" version of a thing, such as a person. Call this thing the Platonic object. 2. Store each separate example of that object as a set of deviations from the Platonic object. Now, the efficiency of this method is not greater than that of the usual method, as each deviation set would include the same number of deviations as the measurement set would include measurements. So why do this at all? The strength of this approach is that you can then _change the Platonic objects themselves_ and then recalculate the appearance of each example much more efficiently. Thus from one "scene" to the next you could radically alter the entire "look" of the game without having to create new measurement models for all objects. One could have a "scene" where a set of people are rendered with normal proportions. Then one could have another "scene" where the same people are rendered with childlike or cartoonish figures, or distorted into elfin thinness... but _retaining their distinguishing features_. By creating Platonic ideals for basic forms, and building objects like trees, rocks, buildings, or whatever from deviation sets on collections of Platonic forms, one could apply the same transformations to the whole world. The expressive possibilites are, in my humble opinion, endless. Besides the fact that this is a beast to implement, what merits and flaws does the basic idea have, and to what use could you put it? I''d love to see what you think. You can''t have "civilization" without "civil".

Share this post


Link to post
Share on other sites
Nice (re)expression.

This is the basis of my character database for a sports game I''m cooking slowly on the backburner: the human body is intrinsically represented as a number of measurements of proportions, so creating a unique body is simply a case of passing different proportions/specifications (e.g. 25" biceps, 40" waist, 6''6" height, "stocky" build, etc).

The more interesting part of what I''m working on is a "target-based" animation system, where there are a fixed number of basic transformations (basic rotations around the x-, y- and z-axes, etc) which are concatenated in not necessarily integral multiples to yield any arbitrary motion. Tie that in with a hierarchical bones system and you have some fascinating possibilities, if you can ever get it to work.

Oh, well. Back to work...

Share this post


Link to post
Share on other sites
Definately an interesting idea. I like it.

Problems:
The first is that I think it''d have much higher requirement on the artists. Instead of modeling things the way they are used to, they''d have to model things as a change from a basic model. About the only way I can think of to alleviate this (aside from teaching an entirely new set of techniques) would be to either define everything as variations on easily set parameters on an object, like WWF Smackdown 2.
Unfortunately, this can lead to a lot of things looking alike, and a lot of texturing and posing work will be needed to differentiate different characters/personalities. However, when instant recognition of a character is less important, say for generic townspeople in an RPG, I can see little problems.

The second problem is simply that we havn''t established what these variations are on. If it''s on a limb by limb basis, it''ll take a lot more work to make things look less alike. If it''s on a vertex by vertex basis, then there could be a lot of difficulties making sure everything lines up. "Sorry, there''s no way we can give you an extra 20 polygons for a Klingon nose. Do it with textures."

The third, though easily avoided is worth a quick mention. If you alter the norm, all things relating to that norm are altered. So, if you happen to have one dwarf in your party, but the dwarf base entry gets changed, he''d change too, unless you make a special case out of it.

Now, on to some good points:

First, this would be a boon for all of us sorta artists out in the world. Flip a few parameters, and we''ve got a big, brawny guy. The tools would allow for a lot more rough work quickly, and that''s always good.

Second, random variations. Ever need a crowd of 100 people that doesn''t have the same six guys repeating over and over? No problem. Just toss a little noise into the parameters of everyone and watch the crowd generate itself. No two enemies exactly alike again.

Third would have to be building your own characters. I mean, the tools are there, why not let the player tweak his/her height, weight, width, etc.

Now, I realized that I absolutely didn''t touch on what you mentioned at all, which is altering the normal parameters to achieve effects. It''s a very interesting idea, but I''m not sure how much I would use it. It makes some things a lot easier, like instant big head mode, but for defintate effects, I''d have a hard time letting everything go by a filter.

Still, a very neat idea.

Share this post


Link to post
Share on other sites
Oh, yeah SpittingTrashcan( Eeew! ), the word you want is "generic" not "platonic."

quote:
Original post by ThoughtBubble
Problems:
The first is that I think it''d have much higher requirement on the artists. Instead of modeling things the way they are used to, they''d have to model things as a change from a basic model. About the only way I can think of to alleviate this (aside from teaching an entirely new set of techniques) would be to either define everything as variations on easily set parameters on an object, like WWF Smackdown 2.

Actually, I thought it would be easier on them (with the proper tools). Imagine a modeler that displays the basic model and has a bunch of controls on the side for variation of the parameters. All the artist has to do is manipulate those controls until [s]he achieves the desired results. In the traditional method the artist would have had to either model from scratch or extrude, stretch and otherwise manipulate the model (still an error-prone process.)

For a pretty close example of this "generic-base modeling," see Poser (formerly by MetaCreations.)

quote:
Unfortunately, this can lead to a lot of things looking alike, and a lot of texturing and posing work will be needed to differentiate different characters/personalities. However, when instant recognition of a character is less important, say for generic townspeople in an RPG, I can see little problems.

Actually, if you allow for variation in build, height, weight, appearance, etc you can come up with convincingly unique (and visually distinctive) models/characters.

quote:
The second problem is simply that we havn''t established what these variations are on. If it''s on a limb by limb basis, it''ll take a lot more work to make things look less alike. If it''s on a vertex by vertex basis, then there could be a lot of difficulties making sure everything lines up. "Sorry, there''s no way we can give you an extra 20 polygons for a Klingon nose. Do it with textures."

Hmm. Good point.

quote:
The third, though easily avoided is worth a quick mention. If you alter the norm, all things relating to that norm are altered. So, if you happen to have one dwarf in your party, but the dwarf base entry gets changed, he''d change too, unless you make a special case out of it.

I agree, and that''s why I don''t think the "relative to the norm" model is such a good idea. I''m advocating parametric representation, but to each his own.

And I agree with everything else you said.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
To echo what someone else said, what exactly are we deviating from? Vertices? Does that mean we need the same number in about the same place?

If we aren''t deviating from vertices, describing the the difference from the norm could actually be more expensive than just describing a new object in full.

It also depends on how similar/different you want people to look.

I would take a look at say PSO (Phantasy Star Online.) You can make your character fat or short, change the shoulder width, give them a belly, etc. What you need are some underlying parameters. Or more concretly you could have a "bone" based structure where "bones" would include a bone between the shoulders, a bone from belly to mid-back, etc. These bones would not all correspond to actual bones in the body but rather to parameters for body change. So by adjusting the thickness and length of the "bone" that goes from shoulder to shoulder I can change the thickness and width of the chest.

To change *every* model in a scene, you would then just need a set of transformations to apply to every bone structure. For example, divide every bone dimension by 2 to shrink people. Basically transform the parameters. This would have the positive you describe (changing everything in a scene) without the negative. (Changing the "normal" changes *all* the models based on it - what happens if I cast a distortion spell and I only want to deform people within a certain radius, or of a certain "race," wearing certain equipment, etc)

IMO using a bone based system it should be possible to work in what looks like paramterization without doing a lot of extra work. For example in a standard bone system you could scale the forearm bone to lengthen or contract the forearm. (Assuming the vertices of the model are mapped to the bones and will grow/shrink with the bone) So if you want to make someone have a fat stomach why not just scale their "stomach" bone, or scale their "crosswise head-bone" to give them a wide head? If you already have a bone system this sounds like it could be done with a minimum of extra work and without weird special-case code.

I would have to think about it a bit more though.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster

quote:

Actually, I thought it would be easier on them (with the proper tools). Imagine a modeler that displays the basic model and has a bunch of controls on the side for variation of the parameters. All the artist has to do is manipulate those controls until [s]he achieves the desired results. In the traditional method the artist would have had to either model from scratch or extrude, stretch and otherwise manipulate the model (still an error-prone process.)

For a pretty close example of this "generic-base modeling," see Poser (formerly by MetaCreations.)


I have used Poser quite extensively actually. It''s great if what you want to deal with is pretty much one of the pre modeled figures. But if you want someone with spikes protruding from their shoulders, or covered in a suit of armor, Poser isn''t going to be the tool. And no matter how you tweak those dials, the figure won''t ever really look like an armored knight.

At some point, an artist is going to have to go back and create all the models in some form of program. Once those models are complete, then it''s possible to change them around.

quote:

Actually, if you allow for variation in build, height, weight, appearance, etc you can come up with convincingly unique (and visually distinctive) models/characters.



Have you ever looked at a large picture of people in military uniform? For the most part, I wouldn''t be able to tell the difference between them. And a simple picture like that is a sort of worst case of this problem in my mind.

Well, been fun trading points.

Share this post


Link to post
Share on other sites
You''re talking about procedural geometry defined by parameters combined with different styles of rendering. Such concepts have been floating around in the computer graphics field for about 20 years.

___________________________________

Share this post


Link to post
Share on other sites
bishop_pass,

Your post was, alas, much too short! I''m glad to hear that ideas like this have surfaced already, and that they''ve been around for so long. At least it won''t be up to me to develop them. However, you leave me intrigued. If these ideas have been around for so long, what has been done with them? Can you give me some examples where these methods were used to create some sort of interesting or notable effect?

And if you intended to dismiss this idea by saying it isn''t new (not that I would suspect that of you, good sir) then you have missed the point. I merely want to bring this idea, new or old as it may be, to the attention of people who could find ways to put it to good use. The same goes for all my other ideas: whether they are new or not doesn''t matter as much as whether people are thinking about or using them now.

Merely a point of clarification... continue in your good ways.


You can''t have "civilization" without "civil".

Share this post


Link to post
Share on other sites
Sounds like some of the non-realtime 3D rendering software like "Poser"...it allowed you to change a few parameters to change the shape of the characters being animated (for example...by changeing the size of a womans breasts, head, and waist...you could end up with a "cartoony" figure)...also most 3D rendering software has "deformers" which are basied on a simular idea...non-uniform scalesing, warping, morphing, etc...

But those are 3D rendering tools that arn''t really designed for game use...

Share this post


Link to post
Share on other sites
There''s a theory of creating distinct ai personalities using this ''ideal with individualizing variables plugged in'' scheme. If you could combine the two methods you would be able to generate whole populations of individual PCs.

Share this post


Link to post
Share on other sites