[WF-General] Re: [WF-Media] Modelling stuff (sec: unclassified)

Alistair Riddoch alriddoch at zepler.org
Tue Jul 13 04:30:20 PDT 2004

On Tue, Jul 13, 2004 at 02:22:52PM +1000, McGinnes, Damien wrote:
> After working on modelling for a little while there are some things that
> need to
> be implemented.
> 1. rigid mesh attachment
> 2. animation control
> mesh attachment is implemented by crystalspace and soya.
> Crystalspace uses a concept of a socket to which you link a Cal3d submesh
> Soya is scripted so you link a coordinate system to a bone, then put an
> object
> into the coordinate system
> What do we want? - apart from simplicity ;)
> simplest requirement is to hold a tool (left or right handed)
> harder is to move tool from belt to hand
> double handed things?
> what about carying a box?
> Now there are a few ways to link things to a character.
> - to a vertex, to a face, to an edge, to a bone
> the main requirement is for the linked item to move with the thing it is
> linked too.
> the differences:
> A bone can move in isolation, but a face, edge or vertex move based on
> multiple
> weights from multiple bones, so are a bit more complex - but also more
> flexible.
> Linking an empty to a bone is very easy in Blender
> but I'm unsure how you link to a vertex - you could create a mesh with the
> same 
> weights as that vertex and use that to generate the attachment point, but
> its a bit
> convoluted - lets stick to bone for now.
> >From the media side, the modeller should simply add some "empties" (thats
> what
> blender calls them - essentially a coordinate system with a location and
> orientation
> relative to their parent)
> and name them something like Att_01_RHand. The exporter script could dump
> out
> attachments: (in dodgy pseudo xml)
> <attachment>
> <number> 01 </number>
> <name> RHandAtt </name>
> <parent> RHandBone </parent>
> <loc> x y z </loc> # relative to parent default pos
> <orientation> x y z w </orientation> #relative to parent default orientation
> </attachment>
> If a tool can be held different ways, then it requires attachment points -
> eg a staff
> might have 4 or 5 different hand positions
> then each client needs to implement this, or extend cal3d to do it.

munin and I and others discussed this a while back. The cal3d format has
names for all bones, and provides a mechanism in the API to query
a bone by name. All that is required to implement rigid mesh attachment
is provide a way to specify which bone is that attachment point, and then
write code in the client to query this bone, discover its position and
orientation, and render the attached mesh at this position. If a special bone
has been carefully placed for this purpose, there should be no need
for additional information.

Alistair Riddoch
alriddoch at zepler.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://mail.worldforge.org/pipermail/general/attachments/20040713/7162ad99/attachment.bin

More information about the General mailing list