forked from panda3d/panda3d
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsofttips.html
More file actions
158 lines (157 loc) · 7.89 KB
/
softtips.html
File metadata and controls
158 lines (157 loc) · 7.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Mozilla/4.61C-SGI [en] (X11; U; IRIX64 6.5 IP19) [Netscape]">
</head>
<body>
<center>
<p><b><font size=+1>SoftImage Tips and Tricks</font></b>
<p><font size=-1>gregw@wdi.disney.com</font>
<br><font size=-1>updated 2/26/2002</font></center>
<p><br>
<br>
<br>
<br>
<p>The following document contains certain advice for getting models and
animations through the
<br>soft2egg converter in one piece. Some of these restraints are
due to differences between Panda
<br>and SoftImage and some are workarounds for SoftImage idiosyncrasies.
The first section is advice
<br>for set-up, modelling, and animation. The second section describes
some frequently seen problems
<br>after conversion attempts. If you have any questions please don't hesitate
to ask.
<br>
<br>
<p><b><u>Section I - Set-up</u></b>
<br>
<p> <u>Hierarchy naming:</u>
<p> The converter needs to ignore
most of the constraint hierarchies and they are not always
<br> flagged invisible so the
code will ignore any nodes (and anything below them) with the
<br> following strings in their
names:
<p>
con-
<br>
con_
<br>
fing-
<br>
eyes-
<br>
faces-
<br>
head-
<br>
camRIG
<br>
bars
<p> If you don't do this, the
converter will make geometry for the sliders and the camera. I freely
<br> admit there is some kruft
in this keyword list.
<br>
<p> <u>Model naming:</u>
<p> Try to make the models have
consistent names through the revision process. SoftImage is
<br> terrible about appending
version numbers onto everything in the scene file (null12_1_1, etc.)
<br> Each time a model name changes
it's highly likely that a makefile or the show code will break.
<br> While it is possible to
"fix" this with wildcards (null12*) it is undesirable as this is no longer
<br> unique and can cause other
problems.
<br>
<p> <u>NURBS Textures:</u>
<p> Textures applied to closed
NURBS surfaces in Soft will have problems in Panda. This is because
<br> Soft uses phantom vertices
in their NURBS representation and this seems to affect where they
<br> start and stop applying
the texture. This can be fixed by shifting the NURBS parameterization.
<br> You can do this on the surface
in question through the Soft GUI, or you can do for all surfaces
<br> in the scene upon conversion
with the "-x" option to soft2egg.
<br>
<p> <u>Model scale:</u>
<p> It seems the general convention
here in the VR Studio has been for the animators to scale the
<br> character models up by a
factor of four while animating. I believe this is because Soft has limited
<br> precision. Thus models should
be scaled by a factor of one fourth to look right in Panda.
<br>
<p> <u>Non-uniform scaling of joints:</u>
<p> A non-uniform scale is one
that is not the same in all three axes (ie x=1, y=1, z=0.5). If an
<br> animation puts a non-uniform
scale on any joint then you must place the key word "scale-" in
<br> the name of the joint that
does that scale.
<br>
<p> <u>Face shape trickiness:</u>
<br>
<p> Currently SAAPHIRE (the SoftImage
API) is broken when it comes to reading expressions
<br> which determine shape weights.
Because of this you MUST put the expressions in strict order
<br> of the shape numbers they
affect (ie the expression for shape 0 must be before 1, etc.)
<br>
<p> <u>Animating Nulls:</u>
<p> When constructing a skeleton
for the player the converter looks at the skeleton nodes in Soft.
<br> If you are animating a null
directly through some relationship you need to make the converter
<br> aware of that by flagging
the null with the prefix "joint-" in its name. Alternatively, you
can
<br> do a "GroupAsSkeleton" on
the null in question to make it actually part of the skeleton. It will
<br> then have a tiny "Skel"
above the node in the Soft's schematic view.
<br>
<p> <u>The Minus One Frame:</u>
<p> Our animation system works
by computing offsets from a neutral pose in the -1 frame of the
<br> scene file. If the character
is not in the "jesus pose" at frame "-1" all bets are off. Animation
<br> should not start on anything
in the scene until frame "1".
<br>
<br>
<p><b><u>Section II - Known Pathologies</u></b>
<br>
<p> <u>Part not where it should be:</u>
<p> Frequently Soft does not
update the position of parts that are moved and skinned. It will look
<br> right in Soft until you
cut it out of the hierarchy. If the geometry stays where it is after cutting
<br> it is fine. If it
pops to a different position it will be problematic. We never did find
a way to make
<br> Soft update its position
but we did find a fix: do a "duplicate immediate" on the geometry while
<br> it is in the correct position;
cut out the old geometry and delete it; skin up the new copy you just
<br> made.
<br>
<p> <u>Part stretched out while animating:</u>
<p> If you put a non-uniform
scale on a joint and don't tag it as described above it will most likely
<br> be extremely stretched out
and creepy looking on playback (like Edward Scissorhands). There are
<br> other things that can cause
this too (like scaling an egg model and not the egg anim channel and
<br> vice versa). But when in
doubt, throw in the "scale-" flag.
<br>
</body>
</html>