To run a test, just go to any halflife site and grab a textured human,
translate it using 3dexploration into a 3ds file and import it using the
Starfire loader.
I don't use 3dmax myself, but our modellers do. Here is a note from one of
them describing to me how he did our dragonman figure, hope this is helpful:
> Peter, as usual you are awsome. If you have the time to tell us step by
> step how you do this, I for one would be quite pleased.
Humm, well, sure.
First step is having some sort of concept drawing, preferably in digital
form. I load that up in the Front viewport, set align to bitmap and lock
zoom/pan in the Background Image. If it wasn't for Julie's piccy's I'd still
be staring at a few vertexes.
Then I create an object, the kind is irrelevant, as the first thing done is
converting it to an editable mesh and killing off all vertexes in the
object. Leaving a nice 0 vertex, 0 poly work area.
then I start by creating 5 vertexes along the waist/abdomen making a
compromise between the muscles and ease of texturing. Then another 5
slightly above it where the waist begins to bulk out in the sides. Another 5
where the pectorals need accent, and another set mid pectoral to provide for
proper bulk of them, finishing off with 5 more following the silhouette of
the shoulders.
Now we got a lot of 25 vertexes and 0 polygons, and I build the faces so as
to maximise symmetry, the centre abdomen being built as a diamond, and the
faces above and to the sides in a V-shape. Each face consists of two
polygons, and its vital to select the correct direction of the edge between
those two polygons to secure a good visual impression on a low poly,
particulary around where the bulk of the chest is defined.
So far, we got a flat definition of the front chest, and I then hide the two
lines of vertexes on either edge, leaving the 3 centre vertexes of each row.
in the side view, I then pull them out to describe the side profile of the
chest. that leaves us with a moderate description of the actual front chest.
I then hide the center vertex column, and select the two columns of vertexes
left. I then scale them disproportinally along the width of the mesh,
causing them to symmetrically increase/decrease the distance to the center
vertexes until I get the degree of squareness I want. I then move them
inwards slightly, selecting the vertexes under the pectorals and move them
further in, to increase the definition of bulk. I then turn on all the
vertexes, select the faces and create a named selection, Front Chest.
Then I hide them again, and create a set of 3 vertexes along the backside
waistline, above it where it changes direction, and yet again beneath the
shoulder blades. then one more at the top, where the shoulder turns close to
the top. Faces built, and adjusted in a manner similar to the chest, I turn
on all vertexes, and connect the back with the front by building the faces,
leaving a hole for the arms, and the head.
Shoulders are done by selected the top edges of the arm-holes and extruding
them twice, rotating them down and "stair-building" the missing faces. The
arms are created in the same way as the chest and the back, with a line of
vertexes just above and below each joint.
Legs are created in the exact same way, and connected to the central mesh,
each time making sure a named selection (that eases later decomposition,
texture-selections, etc) is created.
>
> Now some questions:
>
> 1. The loin cloth and shoulders, are they part of the "base" mesh? Might
be
> hard to put stuff on top of it if its all one.
the base mesh is the naked creature.
>
> 2. When you do this, do you have to break the mesh into pieces when you
> attach the bones to the mesh points or is it done all on one piece?
The mesh is not physically cut to seperate objects, but uses sub-set
selections
>
> 3. A problem I hear people have in "poorly" defined meshes is what heppens
> when you fold or bend the mesh. "tight-ass" syndrome I think it is called
> for the effect caused by sitting a poorly built model down, where the ass
> collapses. How do you make sure there are enough vertices and in the
right
> places so that this does not happen? Any tricks?
>
a line of vertexes above and below each joint, except in the case of butts,
where you have to have a line of vertexes that are beyond the falloff point.
> 4. When we are done will we have options to export the animation in
> different ways? The first thing I will be doing is keyframe morphing,
where
> each frame has normals and vertices and I morph between the keyframes (10
or
> so to a frame).
>
We can do regular 3ds, obj's, with or without full keyframing, etc.
> 5. The animation sequences... I know some people attach "time" to
keyframes,
> so X second for full animation first to last frame, as well as the ability
> to tag certain keyframes with a different time delta. For example the
> animation might need more precision between the 10 and 20th keyframes, so
> they are tagged at X ms per frame, but the other frames might be ok with a
> different scale. Is that something that gets exported with the model?
>
Depends on the exported filetype. Generally, in max terms, you create so and
so many frames of animation (ie, 10 seconds at 20 fps, yielding 200 frames),
create your movements, and check the key frames. It can be some work,
depending on what the target is.
> 6. Can you attach animation seqences to portions of the model? And does
> this require splitting the mesh up into different groups? So basically I
> would be able to mix and match sub-animations, like head movement versus
leg
> movement.
>
In max, no, not per se. But I did plan to make some sort of scheme for that,
like turning your head, or get punched in it, sort of like that. Export
options can include whatever data you want (well, close to, anyways). Or an
offhand attack as opposed to a shield bash or "tight" shield.
> Some of these techniques I know are done for Halflife models and quake
> models, but am not sure if this is post-processing or done in Character
> studio.
The animation compositing is post-processing, but the animation themselves,
well.
>
> I apologize in advance is these questions are ignorant.
Hey, no question can be truly ignorant, unless you choose to ignore the
answer *grin
Peter
----- Original Message -----
From: Rudolf J.C. Buijs <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, January 17, 2001 7:08 AM
Subject: Re: [JAVA3D] How to REALLY get humanoid content into a Java3D
application?
Hi Dave, John et al. -
Thanks for all the replies. They are very helpful. I gather that you are
using 3dmax to define your models. And either StarFire's 3ds loader or a
custom file loader to get them into Java3D.
Is there any way I could get my hands on a sample humanoid model (incl
textures) to see if I can actually import it? I can only justify purchasing
max if I can demonstrate that it's suitable for our purpose and worth the
investment.
How do you like 3dmax for this purpose? Will I need any other add-ons or
tools? Or does anyone have other good (& cheaper) experiences?
Any feedback is greatly appreciated.
Many thanks - Rudolf
-----Original Message-----
From: Discussion list for Java 3D API
[mailto:[EMAIL PROTECTED]]On Behalf Of John Wright
Sent: Tuesday, January 16, 2001 14:35
To: [EMAIL PROTECTED]
Subject: Re: [JAVA3D] How to REALLY get humanoid content into a Java
3Dapplication?
Dave,
>From what I experienced in Everquest their zones outright crash with 175
to 200 players (they did a year ago, they seem better now). I'm not
sure how much level of detail they are doing to know how many humanoids
might actually be visible at a time. I'd agree with you that even with
a top end machine if there are about 30-40 humanoids within view the
frame rate becomes "unacceptable". I'm hoping that with good level of
detail adjustments we could actually support a player seeing an "army"
of 50 or 100 marching. Again I agree that communications issues are
more likely a limitation than our 3D rendering.
- John
"Yazel, David J." wrote:
>
> Yes true. We have hopes to do level of detail and dynamically adjust the
> smoothness of the animation as the number of animated characters increase.
> Already our own "shapes" have built in progressive meshing in that for any
> shape we can ask for it to adjust to N percent of its total complexity.
> Since the progressive mesh collapse order is pre-calculated and the
vertices
> re-ordered to match, it is extremely fast. In my experience everquest
can't
> handle more than about 40 characters at one time with exceptable frame
> rates, and you have to turn off particles. But what we are thinking is
that
> the limiting factor of many characters being near each other will be comm
> lag from the server rather than graphics.
>
> Dave
>
> > ----------
> > From: John Wright[SMTP:[EMAIL PROTECTED]]
> > Reply To: Discussion list for Java 3D API
> > Sent: Tuesday, January 16, 2001 9:42 AM
> > To: [EMAIL PROTECTED]
> > Subject: Re: [JAVA3D] How to REALLY get humanoid content into a
Java
> > 3Dapplication?
> >
> > Dave,
> >
> > Sure, for a single 500 vertex model it isn't a concern (with decent
> > hardware). My concerns are if those models shift up to say 1000 vertices
> > (better quality) and you put 100 or 200 of them in a scene! (not to say
> > that we won't have problems with our method either). Quake, Halflife,
> > etc all use low polygon count models and rarely have more than a few
> > models in the scene at a time. It sure would be nice if Verant would
> > comment on how they do this with Everquest.
> >
> > I agree, at this point there isn't much choice than to just make an
> > educated guess and try it out.
> >
> > - John
> >
> > "Yazel, David J." wrote:
> > >
> > > Its too early to tell on speed, but since the vertex delta's are
> > > pre-computed on a per key-frame bases, the only calculation is the
> > > interpolation per frame for each vertex. On a 400-500 vertex model
this
> > > time is negligible. This is the same method used by quake and
halflife
> > to
> > > great effect. We are in fact experimenting with half-life models
> > converted
> > > using 3d Exploration. As always we are just plodding along trying
> > different
> > > things. Our thought is also to attempt to "attach" items to the model
> > using
> > > control vertices, where for example you can specify two of the hand
> > vertices
> > > as anchors for items that are held, then use a single transformation
on
> > the
> > > item to synchroize with the animated char. That way we can have
smooth
> > > animations of flexible characters, with rigid objects attached. But
like
> > > John said, we will have to see if its fast enough.
> > >
> > > Dave
> > >
> > > > ----------
> > > > From: John Wright[SMTP:[EMAIL PROTECTED]]
> > > > Reply To: Discussion list for Java 3D API
> > > > Sent: Tuesday, January 16, 2001 8:34 AM
> > > > To: [EMAIL PROTECTED]
> > > > Subject: Re: [JAVA3D] How to REALLY get humanoid content into a
> > Java
> > > > 3Dapplication?
> > > >
> > > > As David said, it's not exactly a simple task. Our 3DS loader
> > certainly
> > > > can import excellent looking models (there are some quirks and my 3D
> > > > modelers are getting better and better at making models that work)
but
> > > > animating them is possible in a couple different ways.
> > > >
> > > > To animate in real time you are going to have to sacrifice some
> > quality
> > > > until the hardware gets a LOT faster. Moving a few joints (what we
> > > > intend to do) shouldn't be too bad but won't do the nice
deformations
> > of
> > > > a "Hollywood" style animation (keep in mind that we can't do in real
> > > > time what takes Max hours to generate a couple minute clip). I'm
> > > > intrigued that David states they are going with morphing (my
intuition
> > > > tells me that is going to be too slow / CPU intensive).
> > > >
> > > > - John Wright
> > > > Starfire Research
> > > >
> > > > David wrote:
> > > > >
> > > > > There are a few people here with real-world experience, and they
are
> > > > > probably all different experiences :) www.roboforge.com is an
> > > > application
> > > > > using Java3d and has quite nice animation. You can bring a
> > non-animated
> > > > > humanoid into Java3d very easily using Starfire Lab's 3ds loader.
I
> > > > would
> > > > > stay away from VRML in java3d as a primary loader unless you plan
on
> > > > writing
> > > > > your own loader. Java3d does not have complex humanoid animation
> > built
> > > > in.
> > > > > Even if you want to do something as simple as single skin keyframe
> > > > morphing
> > > > > you have a job ahead of you. We have just started work on this
> > > > ourselves.
> > > > > The path we are starting to experiment with is to model in 3dmax,
> > use
> > > > > character studio to define the animation, use 3d exploration to
read
> > in
> > > > the
> > > > > model and animations and then use the 3d exploration sdk to write
> > out
> > > > our
> > > > > own file format. Inside of java3d we would be using a loader
which
> > can
> > > > > read our own file format and then creating animation classes which
> > morph
> > > > > between keyframes using geometry by reference and the geometry
> > updator
> > > > > callbacks. If you want to do skin and bones directly inside
java3d
> > then
> > > > it
> > > > > is more difficult because you need to handle the transformations
> > > > yourself.
> > > > > I think it would be slow to set up an animation using a hierarchy
of
> > > > > transform3d's but you could try.
> > > > >
> > > > > Good luck. I know there are people on this list who have this
> > working,
> > > > but
> > > > > no one can/will post their code on it, so you will have to figure
it
> > out
> > > > > unfortunately.
> > > > >
> > > > > Dave Yazel
> > > > >
> > > > > ----- Original Message -----
> > > > > From: Rudolf J.C. Buijs <[EMAIL PROTECTED]>
> > > > > To: <[EMAIL PROTECTED]>
> > > > > Sent: Tuesday, January 16, 2001 6:24 AM
> > > > > Subject: [JAVA3D] How to REALLY get humanoid content into a Java
3D
> > > > > application?
> > > > >
> > > > > Hi everyone -
> > > > >
> > > > > We are considering Java 3D for development of a new application
> > which
> > > > > involves animation of humanoids with motion capture data.
> > > > >
> > > > > This is a must-have: the humanoids MUST look good and realistic!
> > > > >
> > > > > I would think that it would be best to use a 3rd party tool to
> > define
> > > > > texture-mapped geometry, export this to VRML (or .3DS etc) and use
> > any
> > > > of
> > > > > the loaders.
> > > > >
> > > > > What's a good way of going about this? I am thinking of content
> > creation
> > > > > packages like Poser or 3D Studio Max and exporting to VRML, but I
> > don't
> > > > know
> > > > > for a fact that it will work.
> > > > >
> > > > > Does anyone have REAL-WORLD experience with this? What software
are
> > you
> > > > > using that will actually allow creation of humanoids and import
them
> > > > into a
> > > > > Java 3D application? Preferably in the H-ANIM 1.1 standard if
that's
> > > > > possible. Which loaders to use for Java 3D? Any gotcha's?
> > > > >
> > > > > This is what I have so far: I've searched the web for loaders
(found
> > and
> > > > > tried latest X3D) and VRML models (H-ANIM 1.1 preferably), but so
> > far I
> > > > have
> > > > > been unsuccessful in importing even one humanoid (every single
VRML
> > > > model I
> > > > > managed to find runs into problems with PROTO's, I have some
models
> > > > > available if anyone else cares to try, the demo VRML runs fine on
my
> > > > > system).
> > > > >
> > > > > Many thanks in advance and many regards - Rudolf
===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST". For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".
===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST". For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".