softtips.html 7.9 KB

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