Jump to content

Importing character models: Difference between revisions

*finally* updated the import/export instructions; corrected the information on the -noidle pose to reflect what OniSplit does now
m (-template (I never said that stuff anyway); what's here is pretty good except the parts that are marked as out of date)
(*finally* updated the import/export instructions; corrected the information on the -noidle pose to reflect what OniSplit does now)
Line 1: Line 1:
This article covers the importing of new character models into Oni, but also how to export models from Oni. Generally speaking, you are going to want to use [[wikipedia:COLLADA|COLLADA]] as the "passthrough" format between your 3D program and Oni, as this is exactly what COLLADA was designed for. In this article, COLLADA is referred to as "Collada" (because who enjoys being shouted at?), or by ".dae file" (because that is the file suffix for COLLADA).
==Modding tools==
==Modding tools==
===OniSplit===
===OniSplit===
The program that we use to get models into Oni (and out of it as well). It is a command line tool. There are GUI extensions for OniSplit that cover its most basic functions, but modders typically have to call it from the command line to take full advantage of it.
This is the program that we use to get models into and out of Oni. It is a command line tool. There are GUI wrappers for OniSplit that cover most of its functions (see [[Vago (tool)]], but modders sometimes have to call it from the command line (or use the direct command line input feature in a GUI) to take full advantage of OniSplit's abilities.
 
===3D programs===
===3D programs===
====XSI====
====XSI====
A powerful free tool available on PC only is {{ModTool}}. It has very detailed documentation, and is very versatile, whether working with characters or levels. More or less free equivalents thereof probably exist on the Mac platform. The latest versions of the Mod Tool can no longer export OBJ, or
A powerful free tool available on Windows only is {{ModTool}}. It has very detailed documentation, and is very versatile, whether working with characters or levels. More or less free equivalents thereof probably exist on the Mac platform. The latest versions of ModTool can no longer export OBJ.
 
====Blender====
====Blender====
[http://www.blender.org/ Blender] is mostly OK, but it is not as flexible as ModTool when it comes to manipulating objects in different frames of reference. [[User:geyser|AFAIK]], there is not much control over local translation and rotation (i.e., relative to the parent), as opposed to global translation and rotation (in world space). Also, [[User:geyser|IIRC]], in Blender objects have "centers", but those centers are points, with no information on rotation. This means that the center does not really define a local frame of reference at all. The general workaround is to use skeletons, rather than a bunch or meshes parented to each other. [[User:geyser|I]] am using only XSI when working with characters.
[http://www.blender.org/ Blender] is mostly OK, but it is not as flexible as ModTool when it comes to manipulating objects in different frames of reference.


Blender rocks when it comes to [[Lightmapping levels|lightmapping levels]], though. XSI is closed source and can only lightmap one mesh at a time with one lightmap texture per mesh. Blender is more flexible because of its free-for-all scripting API, and a nice touch is that it supports radiosity (i.e., emissive materials - and that's exactly how Oni's lighting was done initially, see [[OBLS]]).
Note from geyser: "AFAIK, there is not much control over local translation and rotation (i.e., relative to the parent), as opposed to global translation and rotation (in world space). Also, IIRC, in Blender objects have 'centers', but those centers are points, with no information on rotation. This means that the center does not really define a local frame of reference at all. The general workaround is to use skeletons, rather than a bunch or meshes parented to each other. I am using only XSI when working with characters."
 
Blender rocks when it comes to [[Lightmapping levels|lightmapping levels]], though. XSI is closed source and can only lightmap one mesh at a time with one lightmap texture per mesh. Blender is more flexible because of its free-for-all scripting API, and a nice touch is that it supports radiosity, i.e., emissive materials -- and that's exactly how Oni's lighting was done initially (see [[OBLS]]).


===File converters===
===File converters===
====Autodesk FBX====
====Autodesk FBX====
Check out {{AutodeskFBX}} (primarily the FBX converter) if your tool can reliably import/export FBX but has trouble with COLLADA.
Check out {{AutodeskFBX}} (primarily the FBX converter) if your tool can reliably import/export FBX but has trouble with Collada.
 
====3D Exploration====
====3D Exploration====
A convenient little program, which used to be free (nagware) before turning into Deep Exploration. The free version is still available, and is very useful, although it does not support COLLADA.
A convenient little program, which used to be free (nagware) before turning into Deep Exploration. The free version is still available, and is very useful, although it does not support Collada.
====MeshLab, Blender etc====
 
MeshLab is a recent converter and editor, apparently more focused on 3D scanning and printing. Support a lot of formats including COLLADA, but not flawlessly. Blender has a rather complete set of import/export scripts, and in many cases it will do the job as a last resort.
====MeshLab, Blender, etc.====
MeshLab is a recent converter and editor, apparently more focused on 3D scanning and printing. Supports a lot of formats including Collada, but not flawlessly. Blender has a rather complete set of import/export scripts, and in many cases it will do the job as a last resort.


==Basic importing and exporting==
==Basic importing and exporting==
{{update}}
===Exporting from Oni to Collada===
===Exporting from Oni to COLLADA===
OniSplit allows you to export .dae files from both [[TRBS]] and [[ONCC]]. Though all the 3D data is in the TRBS, the textures are listed in the [[TRMA]] file, which is only visible from the ONCC, not the TRBS. Thus, if you want to use the textures while editing the model, convert the ONCC, not the TRBS, into Collada. The instructions below assume that you want the textured model, and thus illustrate how to export the ONCC.
Onisplit allows you to export .dae files from both [[TRBS]] and [[ONCC]] (with or without a -noanim tag in the case of ONCC). Examples:
:*after having globalized all the characters, go to the '''Oni\edition\GameDataFolder\level0_Final''' folder
:*enter '''..\..\install\OniSplit.exe -extract:dae collada -noanim ONCCmuro_generic.oni'''
::or '''..\..\install\OniSplit.exe -extract:dae collada ONCCgriffin_generic.oni'''
::or '''..\..\install\OniSplit.exe -extract:dae collada TRBSkonoko_body_high.oni'''
Of course the relative paths used here are only an example. Mac users should adapt command-line syntax as necessary.


This will create the files '''ONCCmuro_generic.dae''', '''ONCCgriffin_generic.dae''', and '''TRBSkonoko_generic.dae''' in the folder '''Oni\edition\GameDataFolder\level0_Final\collada'''.
First, you need to find the class name for the character you want to export. You can accomplish this by going into Oni, loading the level in which the desired character appears, and then enabling the shapeshifter cheat -- but you have to do this by turning on [[Developer Mode]], not by entering the "shapeshifter" cheat code, because the regular cheat code does not display the console output that you need. Once Dev Mode is on, press F8 until you reach the desired character. You should see the message "character class ''number'' '''''string'''''". The number is unimportant, but write down the string, because that is the class name which provides the basis for the names of the ONCC and TRBS.
The difference between '''ONCCgriffin_generic.dae''' and '''ONCCmuro_generic.dae''' is that Griffin will appear with an idle pose, whereas Muro will be in the default animation state (standing upright, arms extended sideways at about 70°). As for '''TRBSkonoko_body_high.oni.dae''', she will be in her default animation state ''and'' will have no materials/textures set up. See the notes below for explanations.


The textures are listed in the [[TRMA]] file, which is only visible from the [[ONCC]], not the [[TRBS]]. If you want to use the textures while editing the model, extract the .dae from an ONCC, not from a TRBS.
In this example, we'll export one of Konoko's models. For Konoko, we don't even need to open Oni to find the name of an ONCC because we have [[Konoko#Appearance_during_storyline|this handy table]]. Let's use Konoko in her police uniform; you can see from the table that this is ONCCk3 and that it's found in level2_Final.
===Importing from COLLADA into Oni===
When importing characters, the simplest is to generate a whole body set ([[TRBS]]) from one .dae file. For the above characters it goes as follows:
:*after the example above, go to the '''Oni\edition\GameDataFolder\level0_Final''' folder
:*enter '''..\..\install\OniSplit.exe -create:trbs collada collada\ONCCmuro_generic.dae'''
::or '''..\..\install\OniSplit.exe -create:trbs collada collada\ONCCgriffin_generic.dae'''
::or '''..\..\install\OniSplit.exe -create:trbs collada collada\TRBSkonoko_body_high.dae'''
This will create '''TRBSmuro_generic.oni''', '''TRBSgriffin_generic.oni''', and '''TRBSkonoko_body_high.oni''' in the folder '''Oni\edition\GameDataFolder\level0_Final\collada'''.


You can rename these TRBS appropriately so that they are used by either some of the old ONCC or some new, cloned ones. Finally, rebuild the level to test the model.
Next, you need to decide on the pose in which your character will be exported. See the "Poses" section below for guidance. Without making this example more complicated, we only have two choices for pose: default (folded) and -noanim (standing at attention); we are going to use the second option, for a more visually pleasing result. Here are the steps for getting your desired character in .dae format. Substitute backward slashes for forward ones if you are in Windows.


Because they were imported from a single .dae file, each of these TRBS will contain 5 identical levels-of-detail (LOD). You can specify a different .dae for every LOD by importing from XML (as detailed elsewhere).
:1. Create a couple of folders in a convenient place. One folder will receive a whole bunch of files, and the second folder will hold the exported model. We'll call these paths "splitOutput/" and "modelOutput/" respectively.
:2. On the command line, go to the directory "Oni/GameDataFolder/", where "Oni/" means the path to your game.
:3. Split the desired level's data into its component resources with OniSplit. Where you see just "onisplit" in the following commands, you should take that to mean "C:\path\to\OniSplit.exe" in Windows or "mono /path/to/OniSplit.exe" on Macs (Mono is a third-party package that you need to run .NET applications in macOS):
::<tt>onisplit -export splitOutput/ level2_Final.dat</tt>
:4. Convert the desired character's model data into Collada:
::<tt>onisplit -extract:dae modelOutput/ -noanim splitOutput/ONCCk3.oni</tt>


Textures are currently ignored upon creating the TRBS (however, the TRBS will of course retain the changes you may have made to the UV coordinates). Possibly future versions of OniSplit will automatically generate a TRMA if the .dae file has textures.
This will create the file '''ONCCk3.dae''', and its supporting textures in TGA format, in modelOutput/. Note that only the highest level of detail (LOD) model will be exported using this method. See [[XML:TRBS]] for a method which exports all 5 LOD models.


An [[ONCC]] contains much more information than links to TRBS and TRMA and thus can not be generated automatically ATM.
Note that if you want to extract the model with a pose besides folded or -noanim, you need to have the animation data (the [[TRAC]] and [[TRAM]] .oni files) in the same folder as the model data (the ONCC and its related files). In vanilla (un-modded) Oni, animations for many characters (including Konoko) are only in level0_Final, and, as you saw above, model data is found in whichever level that character appears in. Extracting a model in the pose of your choice will be simpler if you have the [[AE]] installed, as it globalizes character data, placing it all in the level0_Final files in the AE's GameDataFolder. With vanilla Oni, you will have to split both level0_Final and level''x''_Final and then combine their files into one folder before you can perform the "-extract:dae" operation using the "-anim" tag that is discussed below.
The easiest way to try out an imported character in Oni is to rename the imported TRBS so that it replaces an existing one. Eventually, you can clone an ONCC (in XML) and make it link to the new TRBS.


The authoring of the new ONCC can be done either in binary (with a hex editor), with [[OUP]], or in XML (see, e.g., [[OBD_talk:ONCC|HERE]]).
===Importing from Collada into Oni===
When importing characters, the simplest method is to generate a whole body set ([[TRBS]]) from one .dae file. To convert your 3D model, let's say that you saved it in Collada format with the name "TRBSnewchar.dae". Run the command:
:<tt>onisplit -create:trbs DAEtoONI/ TRBSnewchar.dae</tt>
 
This will create '''TRBSnewchar.oni''' in the folder DAEtoONI. Because it was created from a single .dae file, this TRBS will contain 5 identical models for the 5 levels of detail (LOD) that Oni supports for each character. You have to import by XML in order to specify a different .dae for every LOD; see [[XML:TRBS]] for more info.
 
Textures are currently ignored upon creating the TRBS (however, the TRBS will of course retain the changes you may have made to the UV coordinates if you were editing a model exported from Oni). Possibly a future version of OniSplit can automatically generate a TRMA and TXMPs if the .dae file has textures.
 
Note that your file should be named appropriately if you want it to be looked up by name from one or more of Oni's existing ONCCs, or a new one of your own creation.
 
To actually test the model in-game, you should [[Making a mod package|create a mod package]] for it, place the package in Oni/AE/packages/, and select it in the AE Installer. The older method of testing your work is to rebuild the level by running "onisplit -import" on a folder containing your TRBS and all the other .oni files for a level, but this only creates a set of level files that you can use on your computer, and is inherently a disorganized approach to keeping track of your work. Creating an AE package will allow you to share your work with other players.
 
Please note that a final character mod package should contain multiple LOD models for your character. Filling all 5 slots with distinct models is not necessary; many modders create only two or three LOD models and fill the lower LOD slots with the simpler model(s) and the highest slot with the full-detail model, e.g.:
:# TRBSnewchar_low.dae
:# TRBSnewchar_low.dae
:# TRBSnewchar_mid.dae
:# TRBSnewchar_mid.dae
:# TRBSnewchar_high.dae
 
An ONCC contains much more information than just links to TRBS and TRMA, and thus can not be generated automatically. See [[XML:ONCC]] on how to create such a file, and then import the character with this class data into Oni. The easiest way to try out an imported character in Oni is to name your imported TRBS so that it replaces an existing one and no ONCC editing is needed. The next step up is to clone an existing ONCC (in XML) and modify it to link to your new TRBS file(s).


==Poses==
==Poses==
===Oni' s default orientation===
===Oni's default orientation===
The primary axis of a body part, in its own frame of reference, is X. When you move down an arm or leg, or up the spine, you are moving along the positive X direction of every body part.
This pose, where the body parts are all at zero rotation, is usually referred to in the community as the "folded pose". The primary axis of a body part, in its own frame of reference, is X. When you move down an arm or leg, or up the spine, you are moving along the positive X direction of every body part.
When all the bones are aligned with their parents, you get something like this:
When all the bones are aligned with their parents, you get something like this:
  14-o-13-o-12-o-11-o 3-o-2-o-1-o      ^ z
  14-o-13-o-12-o-11-o 3-o-2-o-1-o      ^ z
Line 62: Line 79:
This is a conventional reference used in all of Oni. For any animation of any character in Oni, the rotations of the body parts are calculated with respect to a default pose such as this one. This allows the characters to share animations, even if their "skeletons" ([[TRTA]]) have slightly different proportions.
This is a conventional reference used in all of Oni. For any animation of any character in Oni, the rotations of the body parts are calculated with respect to a default pose such as this one. This allows the characters to share animations, even if their "skeletons" ([[TRTA]]) have slightly different proportions.


In the default pose, the XYZ axes of all the bones are oriented the same way. Thus, on the default pose, you can directly see the translations of every body part with respect to its parent, as stored in the "translation array" [[TRTA]]. For example, in Konoko's case, the "mid" section (part 7), is translated by 1.67 WU along X (i.e., 16.7 cm towards the top of the spine), and by 0.25 along Y (i.e., 2.5 cm towards the front of the spine). Remember that this translation is ''in the "local" frame of reference of the pelvis'', i.e., with respect to the ''origin'' of the pelvis ''and'' to its local XYZ axes (which are generally different from the world axes). Basically, the local X of the pelvis always points up the spine, the local Y points forward, the local Z points left), and the same goes for "mid", "chest", "neck" and "head".
In the default pose, the XYZ axes of all the bones are oriented the same way. Thus, in the default pose, you can see the "true" translations (offsets) of every body part with respect to its parent, as stored in the "translation array" (TRTA). For example, in Konoko's case, the "mid" section (part 7), is translated by 1.67 WU along X (i.e., 16.7 cm towards the top of the spine), and by 0.25 along Y (i.e., 2.5 cm towards the front of the spine). Remember that this translation is ''in the "local" frame of reference of the pelvis'', i.e., with respect to the ''origin'' of the pelvis ''and'' to its local XYZ axes (which are generally different from the world axes). Basically, the local X of the pelvis always points up the spine, the local Y points forward, the local Z points left, and the same goes for "mid", "chest", "neck", and "head".
 
===-noanim pose===
===-noanim pose===
[[Image:Konoko_bodyparts.png|thumbnail|right|283px]]
[[Image:Konoko_bodyparts.png|thumbnail|right|283px]]
A less awkward default pose than the one above is exported by OniSplit with the '''-noanim''' tag:
Supplying the '''-noanim''' switch to OniSplit yields the "standing at attention" pose, a much less visually awkward pose than the default "folded pose". Note that "-noanim" goes in between the destination directory and the source file name:
:*after having globalized all the characters, go to the '''Oni\edition\GameDataFolder\level0_Final''' folder
:'''onisplit -extract:dae modelOutput/ -noanim ONCCkonoko_generic.oni'''
:*enter '''..\..\install\OniSplit.exe -extract:dae collada -noanim ONCCkonoko_generic.oni'''
::or '''..\..\install\OniSplit.exe -extract:dae collada TRBSkonoko_body_high.oni'''
The result will look something the picture on the right, but not quite, because Kuchum ripped the model on his own.


In the "noanim" pose extracted by OniSplit as of 20:14, 3 October 2010 (UTC), all rotations are 0 except:
The result will look something the picture on the right, but the model will have her legs together and her arms by her side.
:(0,90,90) for the pelvis,
 
:(0,180,0) for both thighs,
To produce this pose, these rotations are used:
:(40,60,140) for the left shoulder
:(0,90,90) for the pelvis
:(-40,-60,140) for the right shoulder
:(0,180,0) for both thighs
:(40,60,140) for the left shoulder
:(90,90,90) for the left shoulder
:(-90,-90,90) for the right shoulder
:(0,90,0) for the left biceps
:(0,-90,0) for the right biceps
:(-90,0,0) for the left hand/fist
:(-90,0,0) for the left hand/fist
:(90,0,0) for the right hand/fist
:(90,0,0) for the right hand/fist
:(0,0,0) for all other parts
The placement of the pelvis is adjusted for Konoko, so that the soles of her feet are at Y=0. For male characters the feet will be at Y<0.
The placement of the pelvis is adjusted for Konoko, so that the soles of her feet are at Y=0. For male characters the feet will be at Y<0.
A very close alternative to this pose is (0,70,180) for the left shoulder and (0,-70,180) for the right shoulder. Try setting it in XSI.
The intuitive (0,0,180) rotation doesn't work as well with the arms as with the legs. The orientation is correct, but because of the narrow spacing of the shoulder joints the arms end up inside the body.


===Idle pose===
===Idle pose===
If you use '''-extract:dae TargetFolder ONCCkonoko_generic.oni''' (with ONCC rather than the TRBS , and without '''-noanim'''), OniSplit will look up the idle animation from the [[ONCC]]'s [[TRAC]]. Rotations (relative to the reference layout of the joints) are applied to the body parts.
If you use '''-extract:dae TargetFolder ONCCkonoko_generic.oni''', taking care that you have the TRAC/TRAM files next to the ONCC, OniSplit will look up the idle animation from the ONCC's TRAC and apply the rotations from the first frame of the animation to the body parts.


Keep in mind that this idle pose exported by OniSplit is just an arbitrary natural-looking pose, as opposed to the default orientation or the "standard" '''-noanim''' pose. The first frame of an idle animation is certainly ''not'' a standard pose for you to match when importing a new model (unless you are swapping body parts between Oni characters that use the same idle pose, in which case you don't have to match anything anyway).
Keep in mind that this idle pose exported by OniSplit is just an arbitrary natural-looking pose, as opposed to the default "folded" orientation or the "at attention" '''-noanim''' pose. A frame from an idle animation is certainly ''not'' a standard pose for you to match when importing a new model (unless you are swapping body parts between Oni characters that use the same idle pose, in which case you don't have to match anything anyway).


===Any pose===
===Any pose===
When exporting from ONCC, you can use the '''-anim''' tag to specify any [[TRAM]], as long as it can be found in the character's [[TRAC]] (and as long as it's not an overlay animation). Or, you can just start from the -noanim or idle pose, and tweak the rotations to match any pose you like.
When exporting from ONCC, you can use the '''-anim''' tag to specify any TRAM, as long as it can be found in the character's TRAC (and as long as it's not an overlay animation). Or, you can just start from the -noanim or idle pose, and tweak the rotations to match any pose you like.


==Things to do==
==Things to try==
===Bastardizing===
===Bastardizing===
This is possibly the easiest kind of modding, that doesn't require texturing skills or even, in most cases, attentive handling of poses and joints. The idea is to:
This is possibly the easiest kind of modding, that doesn't require texturing skills or even, in most cases, attentive handling of poses and joints. The idea is to:
Line 132: Line 147:
#*All the other body parts are done the same way. Be sure to proceed from the root of the hierarchy to the extremities, and check your results from time to time. Make sure you don't match the posing body parts to the new body parts instead of the other way round. In other words, look carefully at the first steps detailed above, and make sure that you know what you're doing.
#*All the other body parts are done the same way. Be sure to proceed from the root of the hierarchy to the extremities, and check your results from time to time. Make sure you don't match the posing body parts to the new body parts instead of the other way round. In other words, look carefully at the first steps detailed above, and make sure that you know what you're doing.
All of the above is done in ModTool. I have no idea about how you'd do this in Blender, never tried. [[User:Geyser|AFAIK]], not only is Blender incapable of matching transforms in the local sense, but manual setting of transforms can be done in the global sense only. This means that you would probably need to reduce the new model to Oni's neutral pose, or use a skeleton.
All of the above is done in ModTool. I have no idea about how you'd do this in Blender, never tried. [[User:Geyser|AFAIK]], not only is Blender incapable of matching transforms in the local sense, but manual setting of transforms can be done in the global sense only. This means that you would probably need to reduce the new model to Oni's neutral pose, or use a skeleton.
====Making joints look nice====
====Making joints look nice====
Apart from the consideration regarding the pose (see above), you should be aware of the specific nature of Oni's body parts.
Apart from the consideration regarding the pose (see above), you should be aware of the specific nature of Oni's body parts.
Line 143: Line 159:
As for the spine, large overlaps (and clever overall decomposition into pelvis/mid/chest) are needed to allow for the extreme bending of the spine (think [[Backbreaker]]).
As for the spine, large overlaps (and clever overall decomposition into pelvis/mid/chest) are needed to allow for the extreme bending of the spine (think [[Backbreaker]]).
Feet and fists can be resolved rather easily (you just extrude them a bit towards the calf/wrist), but you should also mind such things as two-handed aiming overlays.
Feet and fists can be resolved rather easily (you just extrude them a bit towards the calf/wrist), but you should also mind such things as two-handed aiming overlays.
====Working example====
====Working example====
{|align=right
{|align=right
Line 187: Line 204:
#*Now that you've gotten the idea, do the same for all the other body parts (reparent Gally's, and then match Gally's centers to Konoko's). Make sure you do one mesh at a time, and progress from the root of the tree (the pelvis) towards the extremities. Try not to forget any mesh, especially early on, or you will have to start over.
#*Now that you've gotten the idea, do the same for all the other body parts (reparent Gally's, and then match Gally's centers to Konoko's). Make sure you do one mesh at a time, and progress from the root of the tree (the pelvis) towards the extremities. Try not to forget any mesh, especially early on, or you will have to start over.
#When the reparenting and matching is over, you should get something like [http://geyser.oni2.net/edition/characters/gally/GLB_matched.zip THIS]. You can check that everything is OK simply by enabling the drawing of centers (either with the "eye" menu of a viewport, or with the "Center" filter), and then by alternatively middle-clicking "pelvis" and "pelvis2" (this selects the whole tree of either Gally, which we are unsure about, or the "compact Konoko", which we know to be OK because we only tweaked her [[TRTA]] a bit). If the centers and the local axes look the same for both Gally and Konoko, then Gally is OK too.  
#When the reparenting and matching is over, you should get something like [http://geyser.oni2.net/edition/characters/gally/GLB_matched.zip THIS]. You can check that everything is OK simply by enabling the drawing of centers (either with the "eye" menu of a viewport, or with the "Center" filter), and then by alternatively middle-clicking "pelvis" and "pelvis2" (this selects the whole tree of either Gally, which we are unsure about, or the "compact Konoko", which we know to be OK because we only tweaked her [[TRTA]] a bit). If the centers and the local axes look the same for both Gally and Konoko, then Gally is OK too.  
#And that's it, we're done. Now select all of Gally's meshes (as a tree, with Ctrl+T or middle-click), export to Collada ("selection only"), import into Oni (DAE to TRBS, TGA to TXMP, ONCC from '''konoko_generic''' and TRMA from '''ninjabot_tx''') and it should Just Work. And indeed it does. [http://geyser.oni2.net/edition/characters/gally/GLB_ready.zip HERE] is the input and [http://geyser.oni2.net/edition/characters/gally/level0_GUNNM.zip HERE] is the Oni-ready plugin (PC only).
#And that's it, we're done. Now select all of Gally's meshes (as a tree, with Ctrl+T or middle-click), export to Collada ("selection only"), import into Oni (DAE to TRBS, TGA to TXMP, ONCC from '''konoko_generic''' and TRMA from '''ninjabot_tx''') and it should Just Work. And indeed it does. [http://geyser.oni2.net/edition/characters/gally/GLB_ready.zip HERE] is the input and [http://geyser.oni2.net/edition/characters/gally/level0_GUNNM.zip HERE] is the Oni-ready plugin (Windows only).
#If there's a problem with any of these steps, just say so. I'm not sure how I could explain it any better without screenshots.
#If there's a problem with any of these steps, just say so. I'm not sure how I could explain it any better without screenshots.
#This can be done in well under an hour - if you don't have to type a tutorial as you go, that is. Once you get the hang of this, you can save some time by completely skipping the "compact Konoko" part, and placing the new character's centers directly where you want them -- especially if the pose is as simple as this one, and/or if the model comes with a skeleton, or very clear anatomy, such as a [[robot]]. challenges such as the [[AE:Iron Demon]] or the [[AE:BGI|BGI]] troopers/mecha come readily to mind, and could both use a tutorial.
#This can be done in well under an hour - if you don't have to type a tutorial as you go, that is. Once you get the hang of this, you can save some time by completely skipping the "compact Konoko" part, and placing the new character's centers directly where you want them -- especially if the pose is as simple as this one, and/or if the model comes with a skeleton, or very clear anatomy, such as a [[robot]]. Challenges such as the [[AE:Iron Demon]] or the [[AE:BGI|BGI]] troopers/mecha come readily to mind, and could both use a tutorial.
 
[[Category:Modding tutorials]]
[[Category:Modding tutorials]]