21
edits
(→General workflow of animating for Oni using Rigify: - Added info regarding BlenderOni) |
(Update notice w/ summary) Tags: Mobile edit Mobile web edit |
||
(9 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{update|This article contains links to the now defunct Oni Central Forum. Sections: Required Tools and commands -> Brief overview on TRAMs.}} | |||
==Introduction== | ==Introduction== | ||
This article is intended to explain the workflow of using the [http://mods.oni2.net/node/388 Rigify-based animation rig for Blender] (made by geyser) for the purpose of making Oni animations, and also how to use it, and what are the Oni-specific additions to it that we've made. | This article is intended to explain the workflow of using the [http://mods.oni2.net/node/388 Rigify-based animation rig for Blender] (made by geyser) for the purpose of making Oni animations, and also how to use it, and what are the Oni-specific additions to it that we've made. | ||
==Prerequisite tutorials== | ==Prerequisite tutorials== | ||
I highly recommend watching the tutorials below if you feel you're lacking knowledge in any of these subjects: | As this rig is now intented to be used together with BlenderOni, it is necessary to be familiar with either: | ||
* [[BlenderOni|BlenderOni's documentation,]] | |||
* [https://www.youtube.com/watch?v=pA_Y8QBCvPI BlenderOni's explanatory video,] particularly time ranges from 0:00 - 3:07 and 21:24 - 48:05 (that's part 1 and 3 of the video). | |||
Besides that, I highly recommend watching the tutorials below if you feel you're lacking knowledge in any of these subjects: | |||
General Blender basics: | General Blender basics: | ||
Line 26: | Line 32: | ||
==Required tools and commands== | ==Required tools and commands== | ||
There are several things worth knowing before you start | There are several things worth knowing before you start using the rig, tools to get and tutorials to have ready to reference for commands. | ||
===Tools and relevant tutorials=== | ===Tools and relevant tutorials=== | ||
* '''[[BlenderOni|BlenderOni]]''' - this Blender addon is an integral companion tool for this rig - it contains a number of scripts which automate a lot of operations required to make any use out of the rig. Without those scripts, these operations (e.g. constraining the model to the rig and vice versa) would have to be done manually, which takes a ridiculous amount of time. | |||
[[Image:Cmder.png|200px|right|thumb|Screenshot showing Cmder's capabilities within the context of modding Oni]] | [[Image:Cmder.png|200px|right|thumb|Screenshot showing Cmder's capabilities within the context of modding Oni]] | ||
* [http://mods.oni2.net/node/38 '''Current version of OniSplit.'''] This is the tool needed to import and export assets out of Oni. '''DO NOT USE OniSplit GUI or Vago for importing Oni assets into Blender''' - neither of these weren't updated in a long time, and thus they don't support OniSplit's v0.9.99.2 -blender option. You can still use them for other purposes though, such as sounds and converting .oni files to XMLs, etc. | * [http://mods.oni2.net/node/38 '''Current version of OniSplit.'''] This is the tool needed to import and export assets out of Oni. '''DO NOT USE OniSplit GUI or Vago for importing Oni assets into Blender''' - neither of these weren't updated in a long time, and thus they don't support OniSplit's v0.9.99.2 -blender option. You can still use them for other purposes though, such as sounds and converting .oni files to XMLs, etc. | ||
* [https://docs.google.com/document/d/175uJGklYASAgrFjxuUG4-kJRDoMTjjP7GvNxSj1GscU/edit '''Oni-Blender tutorial'''] by EdT. Please read this in entirety to know likely-to-happen issues and refer to this as your guide for OniSplit commands relating to Blender. | * [https://docs.google.com/document/d/175uJGklYASAgrFjxuUG4-kJRDoMTjjP7GvNxSj1GscU/edit '''Oni-Blender tutorial'''] by EdT. Please read this in entirety to know likely-to-happen issues and refer to this as your guide for OniSplit commands relating to Blender. | ||
* [http://oni.bungie.org/forum/viewtopic.php?pid=23230#p23230 '''Brief overview on creating TRAMs'''] by EdT - while this was written with XSI in mind, this is still relevant as the process for preparing the XML files for Oni is still the same. Also the next post in that thread, called '''Brief walk through on modifying a TRAM,''' is an example of that overview put into practice. | * [https://web.archive.org/web/20211202215118/http://oni.bungie.org/forum/viewtopic.php?pid=23230#p23230 '''Brief overview on creating TRAMs'''] by EdT - while this was written with XSI in mind, this is still relevant as the process for preparing the XML files for Oni is still the same. Also the next post in that thread, called '''Brief walk through on modifying a TRAM,''' is an example of that overview put into practice. | ||
* | |||
===Optional tools and tutorials=== | |||
* [https://cmder.app/ '''Cmder'''] (Windows only) - because OniSplit is a command line tool, it is highly recommended to get any upgrade to Windows' Command Prompt. As shown in the screenshot on the right, Cmder allows you to start it from the context menu in any selected folder, and it also remembers your most recently used commands, vastly improving your workflow when you're forced to use any command line tools. | |||
* [https://docs.blender.org/manual/en/2.81/addons/rigging/rigify.html '''Rigify documentation'''] - it's a plugin for Blender designed to automate a lot of rigging work. The rig described here is generated using Rigify. Take a look if you're interested and want to learn more, but you don't have to know Rigify's documentation to use this rig. | |||
==General workflow of animating for Oni using Rigify== | ==General workflow of animating for Oni using Rigify== | ||
The most common way to animate characters is to create an armature (also known as a rig) to which the character model is constrained, usually through vertex weights specifying how much a given vertex is controlled by the given controller on a scale from 0 to 1, with all weights summing up to 1. The rig contains a number of controller bones that allow to animate more easily. Then, the animations are usually imported into the game along with the armatures, therefore the animation is stored along with the armature. An example of a game storing animations this way is Halo: Combat Evolved. | |||
Oni character models are divided into 19 rigid body parts organized in a parent-child relation, with the pelvis bone being the root bone, which effectively forms an FK rig. The animations are stored in TRAM files, containing rotation data for each of the 19 body parts, and also location data for the pelvis. There is no armature stored within the game files, therefore in order to use a rig on Oni characters, it is necessary to constrain each of the 19 body parts to the rig bones individually instead of mesh vertices. Also, this automatically means that Oni's way of storing animations is a destructive one - the data stored in the rig bones that are not direct functional equivalents to Oni character body parts will get lost once the animation is baked into body parts with Visual Transform. | |||
The general workflow of making animations using this rig is the following, assuming you want to make a single animation (i.e. you don't want to make a throw animation): | The general workflow of making animations using this rig is the following, assuming you want to make a single animation (i.e. you don't want to make a throw animation): | ||
Line 71: | Line 83: | ||
# Import the animation into Blender ('''MAKE SURE YOU CHECK THE ''Import Unit'' BOX EACH TIME''', otherwise you will import the model with arbitrary units which will break everything and will be basically unadjustable later)) | # Import the animation into Blender ('''MAKE SURE YOU CHECK THE ''Import Unit'' BOX EACH TIME''', otherwise you will import the model with arbitrary units which will break everything and will be basically unadjustable later)) | ||
# Import the -noanim model into Blender ('''ALSO MAKE SURE YOU CHECK THE ''Import Unit'' BOX''') | # Import the -noanim model into Blender ('''ALSO MAKE SURE YOU CHECK THE ''Import Unit'' BOX''') | ||
# Move the animated model to either Pose1 or Pose2 collection | # Move the animated model to either Pose1 or Pose2 collection. | ||
# If you've imported the textured model, [[Blender# | # If you've imported the textured model, [[Blender#Lack_of_textures_on_animated_models|apply textures to the animated models and fix the alpha transparency issue]]. | ||
==Added functionalities== | ==Added functionalities== |
edits