Mod Tool: Difference between revisions

1,186 bytes added ,  19 September 2012
m
exchange of meshes in hierarchies
mNo edit summary
m (exchange of meshes in hierarchies)
Line 10: Line 10:


There's also the possibility to get files that extent Mod Tool's range of functions.
There's also the possibility to get files that extent Mod Tool's range of functions.
: Those are scripts (*.vbs, js), toolbars (*.xsitb) and addons (*.xsiaddon).
: Those are scripts (.vbs, .js), toolbars (.xsitb) and addons (.xsiaddon).
: They can be create on one's own and also shared with other users.
: They can be create on one's own and also shared with other users.


Line 72: Line 72:
* extracting a polygon from an object: select polygon, right-click, "Extract Polygons (Delete)"
* extracting a polygon from an object: select polygon, right-click, "Extract Polygons (Delete)"
* copying an polygon from an object: select polygon, right-click, "Extract Polygons (Keep)"
* copying an polygon from an object: select polygon, right-click, "Extract Polygons (Keep)"
* merging two objects: select one of them, goto Model>Modify>Poly.Mesh>Boolean>Union, select second object
* '''merging two objects''': select one of them, goto Model>Modify>Poly.Mesh>Boolean>Union, select second object
: (this makes a copy of the second object and attaches it to the first one, the merged objects must be '''freezed''' before the original second object can be removed)
: (this makes a copy of the second object and attaches it to the first one, the '''merged objects must be freezed''' before the original second object can be removed)
* filling a hole: select all edges surrounding the hole and choose one of the following methods
* filling a hole: select all edges surrounding the hole and choose one of the following methods
** A) goto Model > Modify > Poly.Mesh > Weld Boundary Points/Edges
** A) goto Model > Modify > Poly.Mesh > Weld Boundary Points/Edges
** B) goto Model > Modify > Poly.Mesh > Bridge Boundary Points/Edges (if blue lines appear try to disable the checkbox "Angle > 90")
** B) goto Model > Modify > Poly.Mesh > Bridge Boundary Points/Edges (if blue lines appear try to disable the checkbox "Angle > 90")
* merging two objects at blue lines: merge the objects at first, then proceed with the point above "filling a hole"
* merging two objects at blue lines: merge the objects at first, then proceed with the point above "filling a hole"
* '''merging two objects with UVs''': Create > Poly. Mesh > [http://cryrid.com/images/temp/XSI/merge_materials.jpg Merge]
* hiding some polygons: select polygons and hit [H], use [Control]+[H] to unhide all
* hiding some polygons: select polygons and hit [H], use [Control]+[H] to unhide all
* mirroring an object: select object, Edit > Duplicate/Instantiate > Duplicate Symmetry (center rotation might need to be changed afterwards)
* mirroring an object: select object, Edit > Duplicate/Instantiate > Duplicate Symmetry (center rotation might need to be changed afterwards)
Line 84: Line 85:
** click on Sym buttom (in Transform area) to enable/disable symmetry mode
** click on Sym buttom (in Transform area) to enable/disable symmetry mode
** changing the Symmetry plane: Explorer [8] > unfold object > Polygon Mesh > Cluster > delete SymmetryMapCls; then add a new symmetry plane
** changing the Symmetry plane: Explorer [8] > unfold object > Polygon Mesh > Cluster > delete SymmetryMapCls; then add a new symmetry plane
====exchange of meshes in hierarchies====
Let's say you loaded an Oni character with his 19 body parts into the scene, something is wrong and you want to fix it.
To destroy the hierarchy you must be sure the model is not animated. If there are keyframes the model will be one big mess after breaking the hierarchical links.
So, save the model with the settings "Selection Only [X]" and "Animation [ ]". Then reload the model.
Next, disable the red "Auto" button under "Animation" (if enabled). Keyframes affects also the creation of hierarchies, that's why we don't want new keyframes.
Now you can move and rotate meshes and their centers without creating new keyframes, and finally rebuild the hierarchy.




Line 166: Line 179:


* The commands are not case-sensitive, e.g. you can write "LogMessage" or "logmessage".
* The commands are not case-sensitive, e.g. you can write "LogMessage" or "logmessage".
* Some common vbs functions can be found [http://www.w3schools.com/vbscript/vbscript_ref_functions.asp HERE.]
* Vbs functions can be found [http://www.w3schools.com/vbscript/vbscript_ref_functions.asp HERE.]


  ' while it is possible to use + in strings,
  ' while it is possible to use + in strings,
Line 196: Line 209:
| Logs the material name.
| Logs the material name.
|-
|-
|valign=top| logmessage selection(0).Material.CurrentImageClip.Name
|valign=top| logmessage selection(0).Material.CurrentImageClip.source.filename.value
| Logs the texture name. All "." inside the texture file name will be replaced by "_". Also a number might follow after the file suffix. Output example:
| Logs absolute path of the texture. Output example:
: INFO : grid_part_8_tga4
: ''C:\Users\RRM\Desktop\TV_tex.png''
|-
| logmessage selection(0).sclx.value
| Logs object's X scaling.
|-
| logmessage selection(0).scly.value
| Logs object's Y scaling.
|-
| logmessage selection(0).sclz.value
| Logs object's Z scaling.
|-
| logmessage selection(0).rotx.value
| Logs object's X rotation.
|-
| logmessage selection(0).roty.value
| Logs object's Y rotation.
|-
|-
| logmessage selection(0).rotz.value
|valign=top| logmessage selection(0).Material.CurrentImageClip.source.Parameters("XRes").Value<br>logmessage selection(0).Material.CurrentImageClip.source.Parameters("YRes").Value
| Logs object's Z rotation.
| Logs the horizontal (X) and vertical (Y) pixel length of the texture. Output example:
: ''512''
|-
|-
| logmessage selection(0).posx.value
| logmessage selection(0).sclx.value<br>logmessage selection(0).scly.value<br>logmessage selection(0).sclz.value
| Logs object's X position.
|valign=top| Logs object's scaling (X, Y, Z).
|-
|-
| logmessage selection(0).posy.value
| logmessage selection(0).rotx.value<br>logmessage selection(0).roty.value<br>logmessage selection(0).rotz.value
| Logs object's Y position.
|valign=top| Logs object's rotation (X, Y, Z).
|-
|-
| logmessage selection(0).posz.value
| logmessage selection(0).posx.value<br>logmessage selection(0).posy.value<br>logmessage selection(0).posz.value
| Logs object's Z position.
|valign=top| Logs object's position (X, Y, Z).
|-
|-
|valign=top| logmessage selection(0).rotorder.value
|valign=top| logmessage selection(0).rotorder.value
Line 752: Line 751:




  ' '''[26] getting the rotation and position of selected objects'''
  ' '''[26] getting the scaling, rotation and position of selected objects'''
   
   
  logmessage "mesh name: " & selection(0)
  logmessage "mesh name: " & selection(0)
logmessage selection(0).sclx.value
logmessage selection(0).scly.value
logmessage selection(0).sclz.value
  logmessage selection(0).rotx.value
  logmessage selection(0).rotx.value
  logmessage selection(0).roty.value
  logmessage selection(0).roty.value
Line 763: Line 765:




  ' '''[27] getting the rotation and position of not selected objects'''
  ' '''[27] getting the scaling, rotation, and position of not selected objects'''
   
   
  ' GetValue("NAME.kine.global.rotx")
  ' GetValue("NAME.kine.global.rotx")
  ' NAME must be the exact mesh name
  ' NAME must be the exact mesh name
  ' let's say you want the data of one chracter's pelvis
  ' let's say you want the data of one chracter's pelvis
logmessage GetValue("pelvis.kine.global.sclx")
logmessage GetValue("pelvis.kine.global.scly")
logmessage GetValue("pelvis.kine.global.sclz")
  logmessage GetValue("pelvis.kine.global.rotx")
  logmessage GetValue("pelvis.kine.global.rotx")
  logmessage GetValue("pelvis.kine.global.roty")
  logmessage GetValue("pelvis.kine.global.roty")
8,452

edits