I pored over the docs again looking for things that might help and
experimented some more for a while. Eventually I found that having both the
weapon and biped rig be refmodels allows the constraint binding to occur
correctly on scene reload. Something about the constraint target being a
local model seems to mess it up, from what I can tell. The manual doesn't
point out any issues with refmodels constained to local models, which seems
like a reasonable thing to do, but it does say "The easiest way is to export
the two models before you apply any constraints, envelopes, or other
deformations between them. Import both referenced models into a scene and
then apply the operators. In this way, the connections are stored in the
delta and are reconnected properly whenever you load the scene.". I tried
that, and it worked. 

 

 

From: Eric Cosky [mailto:e...@cosky.com] 
Sent: Thursday, September 19, 2013 9:58 PM
To: 'softimage@listproc.autodesk.com'
Subject: RE: 2014

 

Hi Raffaele,

 

I appreciate your response and since you are saying they work I will take
that at face value and I apologize for jumping the gun by saying they are
broken. That being said, there are clearly usability issues that make them
hard to use effectively and this has left a lot of people thinking they are
broken (it wasn't that long ago they were implicated in crashes on a regular
basis, too).

 

I'm not about to advocate dumbing down the ref model system; I'd much rather
learn the tricks and make it work for me. Unfortunately the docs don't
explain much about how to work through problems when ref models don't work
as expected. We really don't have many clues to work with when things don't
work as we think it should - things just stop working as previously
configured without any indication beyond the visual results which can easy
to overlook. If I could make one suggestion, some error messages when a
scene is loaded and deltas can't be applied for some reason would be really
helpful. 

 

Here's a practical example of what I'm trying to do, it seems pretty simple
and maybe there is a simple explanation of what I did wrong and how to
correct it that would make the process more clear. 

 

I have a scene two top level models: a local model of a weapon (a rifle),
and a referenced model of a biped rig. The biped rig has one nested model
inside of it which contains the mesh of the game character and the null
hierarchy it is enveloped to. In the biped rig scene that creates the biped
rig EMDL, the mesh model deformers are constrained to the biped rig. Back to
the weapon scene: the weapon model was created first, and then the biped rig
(and in turn it's nested mesh model for the character) was imported as a
referenced model. I then constrained the hands of the biped rig to the
weapon so that moving the weapon around would cause the biped rig to track
it. Looks good so far, saved it, loaded it and tried moving the weapon
around. The constraints were no longer active. They are visible in the
delta, but not doing anything. 

 

Any idea what might make those hand constraints work in this scenario? This
seems pretty straightforward, but it's not working and I have no idea why.
It seems like the order of model creation is correct, assuming that's
relevant here for dependencies which I'm not sure is the case here. One
thing I want to point out is I expect that the use of nested models here is
a non-issue; I don't actually manipulate the mesh model at all here, I'm
only adding constraints and position deltas to the biped rig at the topmost
level. The mesh is basically a passive preview of the game character, not
being directly manipulated at all although it does have a StoredPositions
delta due to the hands of the biped rig moving onto the weapon.

 

Despite having used Softimage for several years now (mostly on the
technical/api/custom exporter side of things) I always feel like I have a
lot to learn and I appreciate any suggestions you might have. I wouldn't be
surprised if I completely overlooked something dumb, but I reproduced the
same exact steps except one which was to convert the biped rig to a local
model and that scene loaded with the constraints intact and active.

 

Thanks for any insights,

 

Eric

 

 

 

From: softimage-boun...@listproc.autodesk.com
[mailto:softimage-boun...@listproc.autodesk.com] On Behalf Of Raffaele
Fragapane
Sent: Thursday, September 19, 2013 8:45 PM
To: softimage@listproc.autodesk.com
Subject: Re: 2014

 

They aren't broken, referencing references is a million miles away from a
trivial problem.

 

The key to it is order of execution, which is neigh impossible to guarantee
without responsabilizing users well beyond what your average seat warmer can
deal with from a technical stand point.

 

The way Soft deals with name spaces and hierarchies and referencing within
models when you have nested models you assume an order of operations that is
simply not guaranteed.

 

So it's perfectly possible, in example, that a model depending on its father
receives a namespace and before the parent does.

When you factor in deltas and cross dependencies the problem becomes even
worse.

 

It's simply an incredibly hard problem to solve generically in the context
of a pipeline (end user's) which the provider client (Soft) can't have any
notion of.

 

We and others spend untold amount of hours to develop tools and procedures
to allow cross model connections, and they are a brittle, nasty thing to
deal with, and it only works because we're extremely well serviced on the
asset dynamicism and management side of the pipe, and everything users do
that establishes those cross namespace connections is managed by wrappers
that also take care of establishing order of stashes and stacking within the
stash.

 

Offering the same thing arbitrarily in a DCC client would be exceedingly
hard, or would greatly restrict what you could do with those namespaces and
referencing.

 

This isn't to say ref models are perfect, but refs of refs is one of those
things people take for granted is just buggy when it's actually an
exceedingly hard problem to work out generically if you want the app to
remain friendly to all levels of technical competence.

 

On Fri, Sep 20, 2013 at 1:03 PM, Eric Cosky <e...@cosky.com> wrote:

 

Matt, it looks like you are right, as usual. The delta positions and
constraints are silently failing to be applied on scene load. The deltas are
there, just not being applied. Using the "Models to reconnect to" has no
apparent effect. Re-adding the constraints just adds another entry in the
delta which is ignored just like the first one when the scene is loaded. At
least it doesn't crash which is what I think it used to do.. looks like I'm
back to embedding models though, at least on the animation authoring scenes.
So that's a slight improvement.

 

I am really surprised something as potentially useful as referenced models
remain so broken after so many years. Is there some trick to making it work?
External deltas perhaps? I'm going to give up again on these unless I hear
of something that might work. 

 

Out of curiosity, does max or maya have truly functioning refmodels? Or any
app?

 

 

 

--------------------------
To unsubscribe: mail softimage-requ...@listproc.autodesk.com with subject 
"unsubscribe" and reply to the confirmation email.

Reply via email to