Blender: Difference between revisions

From OniGalore
Jump to navigation Jump to search
mNo edit summary
(copy-edit)
Line 2: Line 2:
   | text = This page should contain information up to date for Blender version 3.1.
   | text = This page should contain information up to date for Blender version 3.1.
   }}
   }}
Blender is a free and open-source 3D computer graphics software toolset used for 3D modeling, animating, rigging, texturing, video editing, digital drawing, etc. It is the community's current 3D software of choice for modding Oni.
Blender is a free and open-source program used for 3D modeling, animating, rigging, texturing, video editing, digital drawing, etc. It is the community's current 3D software of choice for modding Oni.


==History of Blender in Oni community==
==History of modding with Blender==
Up until 2019, the community's 3D program of choice was [[Mod Tool|XSI Mod Tool 7.5]], a free version of Autodesk Softimage from 2009. Softimage itself became discontinued in 2014, so the community was using a horribly outdated software for a long period of time. The reasons for that were two: XSI was the only software that the community could make any sense of (although very limited) and it had no problems handling Oni's assets and animations, unlike other programs.
Up until 2019, the Oni community's 3D program of choice was [[Mod Tool|XSI Mod Tool 7.5]], a free version of Autodesk Softimage from 2009. But Softimage was discontinued in 2014, so the community was using increasingly outdated software. XSI was the only free software that the community could make any sense of (although very limited), and it had no problems handling Oni's assets and animations, unlike other programs. Blender was overlooked because, despite its popularity, its user interface was notoriously bad. Also, attempts at importing Oni's assets to Blender ran into [[#Oni-specific_issues_with_Blender|a number of issues]] with unknown causes.


Blender during that time, although available, was widely considered as a trivia, rather than a serious 3D software. Reasons for that were multiple, with the most known being its infamously notorious user interface used up to Blender 2.79. In case of Oni, another prime reason for not using it was that [[#Oni-specific_issues_with_Blender|importing Oni's assets to Blender was causing a number of issues]], the causes of which were unknown at the time.
However, Blender's user interface received a total overhaul in version 2.80 which was universally praised. The program has become a serious free alternative to industry-standard 3D programs like Maya or 3ds Max. This, along with the considerations that Blender continues to be actively developed, is a light-weight program, supports Macs as well as Windows, and has an abundance of support from the Blender community, eventually made it clear that Oni modders needed to move on from XSI to Blender. The final nail in the coffin was XSI's lack of stability.


However, Blender's user interface received a total overhaul in version 2.80, which was universally praised. This, along with the updates that Blender is receiving to this day, its light weight and countless tutorials on Youtube, made it effectively a serious competitor to the industry-standard 3D programs like Maya or 3DS Max.
From 2020 to 2022, a significant amount of work was done to allow modding Oni in Blender: the <tt>-blender</tt> tag was introduced to [[OniSplit]], and a new [[Using the Rigify animation rig|animation rig]] tailor-fit for making Oni animations was created, along with [[BlenderOni]] – a companion tool for said rig. With all of this done, the community can now create new content for Oni in a modern, free, well-supported 3D modeler.


With Blender having become significantly more user-friendly and popular, it became more and more clear that it was necessary for the community to move on from XSI to Blender. The final straw was that it became clear that using XSI was ridiculously ineffcient, due to outdated methods used to create assets and XSI being bugged.
==Tutorials and resources==
 
With the abundance of tutorials for Blender on YouTube, creating our own introductory material would be reinventing the wheel. So instead we recommend watching some of the tutorials listed below and trying to make small personal projects in order to get familiar with Blender, such as modeling simple objects like teddy bears or tables.
From 2020 to 2022 a significant amount of work was done to allow modding Oni in Blender: the -blender tag was introduced to [[OniSplit]], which allowed to convert Oni assets in a way so that they can be imported to Blender, a new [[Using_the_Rigify_animation_rig|animation rig]] tailor-fit for making Oni animations was created, along with [[BlenderOni]] - a companion tool for the said rig. With all of this done, the community can now create new content for Oni in a modern, free, commonly used and open source 3D software.
 
==How to use Blender? Tutorials and resources==
With the abundance of tutorials for Blender on Youtube, writing down tutorials on the basics of it would be reinventing the wheel, and a worse one at that. So instead, we recommend watching some of the tutorials listed below and trying to do some simple personal projects to get familiar with Blender, such as modeling simple objects like teddy bears or tables.


General Blender basics:
General Blender basics:
* [https://www.youtube.com/watch?v=RG8qK5zPqgM Wolf's 45-Minute Crash Course for Blender Virgins] (yes, seriously - this is one of the best Blender basics tutorials out there, it's particularly good if you know your basics already and you want to find out if you've missed anything)
* [https://www.youtube.com/watch?v=RG8qK5zPqgM Wolf's 45-Minute Crash Course for Blender Virgins] (this is one of the best Blender basics tutorials out there; it's also good if you know your basics already and you want to find out if you've missed anything)


Modelling
Modelling:
* [https://www.youtube.com/watch?v=1jHUY3qoBu8 Learn Low Poly Modeling in Blender 2.83 (Imphenzia)]
* [https://www.youtube.com/watch?v=1jHUY3qoBu8 Learn Low Poly Modeling in Blender 2.83 (Imphenzia)]


Rigging
Rigging:
* [https://www.youtube.com/watch?v=vKgH5zXIYmM Rigify (CGDive)]
* [https://www.youtube.com/watch?v=vKgH5zXIYmM Rigify (CGDive)]


Documentation
Documentation:
* Blender has excellent documentation, available [https://docs.blender.org/manual/en/dev/modeling/meshes/editing/face/index.html HERE]
* Blender has excellent documentation, available [https://docs.blender.org/manual/en/dev/modeling/meshes/editing/face/index.html HERE]


Line 34: Line 30:
You may want to go to the preferences and switch on '''Python Tooltips'''.
You may want to go to the preferences and switch on '''Python Tooltips'''.


Contrary to intuition, the '''Developer Extras''' do not give you additional Python functionality per se. Instead this option enables experimental Blender features.
Contrary to what you might expect, the '''Developer Extras''' do not give you additional Python functionality per se. Instead this option enables experimental Blender features.


Related videos:
Related videos:
* [https://youtu.be/XqX5wh4YeRw?t=46 Python Crash Course for Blender! - Curtis Holt]
* [https://youtu.be/XqX5wh4YeRw?t=46 Python Crash Course for Blender! (Curtis Holt)]
* [https://www.youtube.com/watch?v=uahfuypQQ04 Blender 2.8 Addon Development Tutorial for Beginners - Jayanam]
* [https://www.youtube.com/watch?v=uahfuypQQ04 Blender 2.8 Addon Development Tutorial for Beginners (Jayanam)]


==Animation rig with IK and FK==
==Animation rig with IK and FK==
Currently we have an animation rig available in the form of a Blender scene available [http://mods.oni2.net/node/388 HERE]. The rig was made by Geyser and Delano762, and a tutorial on how to use it is available [[Using_the_Rigify_animation_rig|HERE.]] The rig is based off the Rigify plugin for Blender, and serves as the '''community's modern tool to create new character animations for Oni,''' featuring both Forward and Inverse Kinematics, thus being an enormous improvement over the previous FK-only method of animating.
Currently we have an animation rig available in the form of a Blender scene available [http://mods.oni2.net/node/388 HERE]. The rig was made by Geyser and Delano762, and a tutorial on how to use it is available [[Using the Rigify animation rig|HERE]]. The rig is based on the Rigify plugin for Blender and serves as the '''community's modern tool to create new character animations for Oni''', featuring both Forward and Inverse Kinematics an enormous improvement over the previous FK-only method of animating.


This rig is intended to be used together with [[#BlenderOni|BlenderOni]], a Blender addon designed as a companion tool for it - '''the rig is extremely difficult to set up without it, to the point of being almost useless.'''
This rig is intended to be used together with [[#BlenderOni|BlenderOni]], a Blender add-on designed as a companion tool for it '''without it, the rig is extremely difficult to set up, to the point of being almost useless.'''


The rig has the following capabilities (which come with Rigify by default, unless otherwise noted):
The rig has the following capabilities (which come with Rigify by default, unless otherwise noted):
Line 59: Line 55:


==BlenderOni==
==BlenderOni==
BlenderOni is a Blender addon intented as an integral companion tool for the Animation rig for Blender. It contains functionalities that automate a lot of operations necessary for the rig to function and be used properly. However, vast majority of addon's options can also be used for general Blender purposes.
BlenderOni is a Blender add-on intended as an integral companion tool for the fan-made animation rig for Blender. It contains functionalities that automate a lot of operations necessary for the rig to function and be used properly. However, the vast majority of the add-on's options can also be used for general Blender purposes.


For more information on BlenderOni, please check its documentation page available [[BlenderOni|HERE]].
For more information on BlenderOni, please check its documentation page available [[BlenderOni|HERE]].


==Oni-specific issues with Blender==
==Oni-specific issues with Blender==
===Rotation order issue between Oni and Blender===
===Rotation order===
The previous XSI process allowed us to get to work pretty quickly: you could simply export any animation from Oni as a COLLADA file using OniSplit, then import it to XSI and it would work (mostly) without any quirks. That is not the case with Blender.
The previous XSI process allowed us to get to work pretty quickly: you could simply export any animation from Oni as a COLLADA file using OniSplit, then import it to XSI and it would work (mostly) without any quirks. That is not the case with Blender. If you import any Oni animation into Blender as it is, the rotations will be all wrong.
 
If you import any Oni animation into Blender as it is, the rotations will be all wrong.
 
That's because Oni's rotations are stored in XYZ Euler rotation order, while Blender's XYZ is actually ZYX despite being called "XYZ" - and this is because Blender reads the Euler angles from the bottom of the hierarchy, rather than the top:


{{Quote|Which axis is on top, which one in the middle and which at the bottom, depends on the particular Euler gimbal: there are six types of them, as there are six possible combinations: XYZ, XZY, YXZ, YZX, ZXY and ZYX Euler rotation modes. '''These modes are named using the letters of the axes in order, starting from the axis at the bottom of the hierarchy, and finishing with the one on top.'''|[https://docs.blender.org/manual/en/latest/advanced/appendices/rotations.html Blender Manual, Rotation Modes] }}
That's because Oni's rotations are stored in XYZ Euler rotation order, while Blender's XYZ is actually ZYX despite being called "XYZ"; this is because Blender reads the Euler angles [https://docs.blender.org/manual/en/latest/advanced/appendices/rotations.html from the bottom of the hierarchy] rather than the top. In other words, Oni reads XYZ starting with X, while Blender starts with Z.


In other words, Oni reads XYZ as X first, Y second and then finally Z, while Blender does reverse, it reads XYZ as Z first, Y second and Z as the last angle.
You can demonstrate this by simply switching the rotation order of the body parts from XYZ to ZYX, as shown below. The image on the left shows KONCOMcomb_p imported to Blender without any adjustments, with the rotation order set to Blender's default "XYZ", while the image on the right shows the same animation after switching the rotation order to ZYX.
 
You can prove that by simply switching the rotation order of the body parts from XYZ to ZYX, as shown below – the image on the left shows KONCOMcomb_p imported to Blender without any adjustments, with the rotation order set to Blender's default "XYZ", while the image on the right shows the same animation after switching the rotation order to ZYX.


{| class="wikitable"
{| class="wikitable"
Line 85: Line 75:
|}
|}


Because of this, geyser implemented the '''-blender''' argument in OniSplit, which solves this problem by converting Oni assets' rotation order from XYZ to Quaternions and then to ZYX, and vice versa when exporting assets from Blender to Oni. So that conversion flow looks as follows:
Because of this, geyser implemented the '''-blender''' argument in OniSplit, which solves this problem by converting Oni assets' rotation order from XYZ to quaternions and then to ZYX, and vice versa when exporting assets from Blender to Oni. So that conversion flow looks as follows:


*From Oni to Blender:
*From Oni to Blender:
Line 95: Line 85:
To summarize: '''Always use the -blender argument when you're exporting assets from Oni to Blender''', otherwise you can expect the problem shown in the above screenshots.
To summarize: '''Always use the -blender argument when you're exporting assets from Oni to Blender''', otherwise you can expect the problem shown in the above screenshots.


==="Up" axis problem===
===Differing up-axis===
To be further described, Oni's up axis is Y, for Blender it's Z
To be expanded on later: Oni's "up" axis is Y, Blender's is Z.


===Units===
===Units===
To be further described, Oni's units are actually feet and yards
To be expanded on later: Oni's units are in the imperial system, not the metric one, though the 0.1-meter unit used by OniSplit is a good approximation of Oni's actual world unit of 4 inches.


===Broken alpha transparency and textures on animated models===
===Lack of textures on animated models===
'''Currently there is no option in OniSplit that would allow exporting animated models with textures.''' While you don't need textures for animating, they are very useful, particularly in case of Oni - the models are low detail to a point where you can lose sense of which direction elbows and knees are facing, if you don't have the textures on.  
'''Currently there is no option in OniSplit for exporting animated models with textures.''' While you don't need textures for animating, they are very useful, particularly in the case of Oni; the models are low-detail to a point where you can lose sense of which direction elbows and knees are facing if you don't have the textures on.  


Because there is no option to export animated models with textures, '''the current workaround for that is to import an unanimated model with textures, then import an animated model,''' and either copy materials from the unanimated model to the animated one (the faster method), or set the materials on the animated model manually.
Because there is no option to export animated models with textures, '''the current workaround for that is to import an unanimated model with textures, then import an animated model,''' and either copy materials from the unanimated model to the animated one (the faster method), or set the materials on the animated model manually.


You will also most likely need to set shading settings on some body parts on the unanimated model to fix Alpha transparency issues (much like in XSI) - specifically connect the Alpha parameter of Base Color node to any parameter in Principled BSDF that will work, like Emission Strength (this should be set up differently as that's technically incorrect, but I don't know how at this moment).
===Alpha transparency issue===
You will also most likely need to set the Shading settings on some of the body parts of a non-animated model in order to fix alpha transparency issues (much like in XSI); specifically, you'll need to connect the Alpha parameter of the Base Color node to any parameter in Principled BSDF that will work, such as Emission Strength (this should be set up differently as that's technically incorrect, but I don't know how to do so at this moment).


{| class="wikitable"
{| class="wikitable"
Line 117: Line 108:


==Wanted==
==Wanted==
Except for sounds and textures, blender has the potential to be THE editor for Oni. The vast python support could be used for customization.
Except for sounds, textures and text-oriented resources, Blender has the potential to be THE editor for Oni. Its powerful Python support is very useful for customization.


Additional imports/exports, xml/oni creation and configurations should be automated, and customization should be used to streamline workflows as much as possible. Tools in form of addons should allow users to be artists instead of coders, they should speed up development of the actual projects.
Additional imports/exports, XML/.oni file creation and configurations should be automated, and customization should be used to streamline workflows as much as possible. Tools in the form of add-ons should allow users to be artists instead of coders, speeding up development of the actual projects.


An active modding community requires not one of these points - it needs them all: documentation, tools and tutorials.
A successful modding community requires not one of these points, but all of them: documentation, tools and tutorials.


===Level editor===
===Level editor===
* core geometry
* core geometry
* pathfinding
* pathfinding
* "furniture" (OFGA) creation / placement
* "furniture" (OFGA) creation/placement
* editing of CJBO
* editing of CJBO
* special gunk flag placement
* special gunk flag placement
Line 138: Line 129:


===BSL editor===
===BSL editor===
Most events in Oni are fired from trigger boxes. There should be an editor to open the code of a trigger box as soon as it gets selected in blender.
Most events in Oni are fired using trigger volumes. There should be an editor to open the code of a trigger volume as soon as it's selected in Blender.


Also, character functions should editable when you select a character.
Also, character functions should editable when you select a character.


The editor should context sensitive:
The editor should be context-sensitive to:
* level geometry: atmosphere, save points, win level, lose level
* level geometry: atmosphere, save points, win level, lose level
* objects: scripting of static and animated objects (cut scene editor)
* objects: scripting of static and animated objects (cutscene editor)
* particle scripting
* particle scripting
* character: after selecting a character there should be a button visible to edit ONCC, TRBS, animations and textures (gimp / Photoshop)
* character: after selecting a character there should be a button visible to edit the ONCC, TRBS, animations and textures (GIMP/Photoshop).


===Character editor===
===Character editor===
Line 152: Line 143:
'''Character library'''
'''Character library'''


There should be a possibility to place characters or placeholders so character collections can be written based on character positioning in the level.
There should be a way to place characters or character placeholders so that character collections (BINACHAR) can be saved to disk based on their positioning in the level model.


===Animation editor===
===Animation editor===
The core would be BlenderOni that is called as soon as a user chooses to create or edit an animation.
The core would be BlenderOni that is called as soon as a user chooses to create or edit an animation. It could be extended to edit TRAC.
 
It could be extended to edit TRAC.


===Particle editor===
===Particle editor===
Line 165: Line 154:
There should be some linking to Vago and AEI for package creation and quick starting of levels for testing.
There should be some linking to Vago and AEI for package creation and quick starting of levels for testing.


A secondary Oni installation could serve as developer environment where only one level is present at a time. With OniX it could be made possible to skip the level menu and automatically load the current project.
A secondary Oni installation could serve as a developer environment where only one level is present at a time. With OniX, it could be made possible to skip the menu UI and automatically load the current project.
   
   
[[Category:Bi-platform modding tools]][[Category:Completed modding tools]]
[[Category:Bi-platform modding tools]][[Category:Completed modding tools]]

Revision as of 01:11, 15 May 2022

Blender is a free and open-source program used for 3D modeling, animating, rigging, texturing, video editing, digital drawing, etc. It is the community's current 3D software of choice for modding Oni.

History of modding with Blender

Up until 2019, the Oni community's 3D program of choice was XSI Mod Tool 7.5, a free version of Autodesk Softimage from 2009. But Softimage was discontinued in 2014, so the community was using increasingly outdated software. XSI was the only free software that the community could make any sense of (although very limited), and it had no problems handling Oni's assets and animations, unlike other programs. Blender was overlooked because, despite its popularity, its user interface was notoriously bad. Also, attempts at importing Oni's assets to Blender ran into a number of issues with unknown causes.

However, Blender's user interface received a total overhaul in version 2.80 which was universally praised. The program has become a serious free alternative to industry-standard 3D programs like Maya or 3ds Max. This, along with the considerations that Blender continues to be actively developed, is a light-weight program, supports Macs as well as Windows, and has an abundance of support from the Blender community, eventually made it clear that Oni modders needed to move on from XSI to Blender. The final nail in the coffin was XSI's lack of stability.

From 2020 to 2022, a significant amount of work was done to allow modding Oni in Blender: the -blender tag was introduced to OniSplit, and a new animation rig tailor-fit for making Oni animations was created, along with BlenderOni – a companion tool for said rig. With all of this done, the community can now create new content for Oni in a modern, free, well-supported 3D modeler.

Tutorials and resources

With the abundance of tutorials for Blender on YouTube, creating our own introductory material would be reinventing the wheel. So instead we recommend watching some of the tutorials listed below and trying to make small personal projects in order to get familiar with Blender, such as modeling simple objects like teddy bears or tables.

General Blender basics:

Modelling:

Rigging:

Documentation:

  • Blender has excellent documentation, available HERE

Development

Blender 2.8 Python Tooltips.png

You may want to go to the preferences and switch on Python Tooltips.

Contrary to what you might expect, the Developer Extras do not give you additional Python functionality per se. Instead this option enables experimental Blender features.

Related videos:

Animation rig with IK and FK

Currently we have an animation rig available in the form of a Blender scene available HERE. The rig was made by Geyser and Delano762, and a tutorial on how to use it is available HERE. The rig is based on the Rigify plugin for Blender and serves as the community's modern tool to create new character animations for Oni, featuring both Forward and Inverse Kinematics – an enormous improvement over the previous FK-only method of animating.

This rig is intended to be used together with BlenderOni, a Blender add-on designed as a companion tool for it – without it, the rig is extremely difficult to set up, to the point of being almost useless.

The rig has the following capabilities (which come with Rigify by default, unless otherwise noted):

  • Snapping to Oni animations through bone constraints controlled by the Z location of the objects in the Pose Matching layer (added feature)
  • Inverse and Forward Kinematics (IK and FK)
  • Snapping between IK and FK chains
  • Function to snap IK hand controller rotation to the wrist bone, integrated into rig_ui.py (added feature)
  • IK joint poles for specifying limb joints (elbows and knees) should be facing
  • Sliders specifying how much the neck, head and FK limbs should retain their world space rotation – that is, Neck Follow, Head Follow and FK Limb Follow
  • IK foot pivoting controllers around toes and the heel
  • Root bone

Tutorial for creating animation rig

If you want to create the above rig, and learn a bit about rigs, IK/FK, Rigify, Blender, bone layers, bone constraints, scripts, issues with Oni models and animations such as the rotation order being incompatible with Blender, see Creating an animation rig in Blender.

BlenderOni

BlenderOni is a Blender add-on intended as an integral companion tool for the fan-made animation rig for Blender. It contains functionalities that automate a lot of operations necessary for the rig to function and be used properly. However, the vast majority of the add-on's options can also be used for general Blender purposes.

For more information on BlenderOni, please check its documentation page available HERE.

Oni-specific issues with Blender

Rotation order

The previous XSI process allowed us to get to work pretty quickly: you could simply export any animation from Oni as a COLLADA file using OniSplit, then import it to XSI and it would work (mostly) without any quirks. That is not the case with Blender. If you import any Oni animation into Blender as it is, the rotations will be all wrong.

That's because Oni's rotations are stored in XYZ Euler rotation order, while Blender's XYZ is actually ZYX despite being called "XYZ"; this is because Blender reads the Euler angles from the bottom of the hierarchy rather than the top. In other words, Oni reads XYZ starting with X, while Blender starts with Z.

You can demonstrate this by simply switching the rotation order of the body parts from XYZ to ZYX, as shown below. The image on the left shows KONCOMcomb_p imported to Blender without any adjustments, with the rotation order set to Blender's default "XYZ", while the image on the right shows the same animation after switching the rotation order to ZYX.

KONCOMcomb_p in Blender's XYZ KONCOMcomb_p in ZYX
ARB KONCOMcomb p XYZ.png ARB KONCOMcomb p ZYX.png

Because of this, geyser implemented the -blender argument in OniSplit, which solves this problem by converting Oni assets' rotation order from XYZ to quaternions and then to ZYX, and vice versa when exporting assets from Blender to Oni. So that conversion flow looks as follows:

  • From Oni to Blender:

XYZ → Quaternions → ZYX

  • From Blender to Oni:

ZYX → Quaternions → XYZ

To summarize: Always use the -blender argument when you're exporting assets from Oni to Blender, otherwise you can expect the problem shown in the above screenshots.

Differing up-axis

To be expanded on later: Oni's "up" axis is Y, Blender's is Z.

Units

To be expanded on later: Oni's units are in the imperial system, not the metric one, though the 0.1-meter unit used by OniSplit is a good approximation of Oni's actual world unit of 4 inches.

Lack of textures on animated models

Currently there is no option in OniSplit for exporting animated models with textures. While you don't need textures for animating, they are very useful, particularly in the case of Oni; the models are low-detail to a point where you can lose sense of which direction elbows and knees are facing if you don't have the textures on.

Because there is no option to export animated models with textures, the current workaround for that is to import an unanimated model with textures, then import an animated model, and either copy materials from the unanimated model to the animated one (the faster method), or set the materials on the animated model manually.

Alpha transparency issue

You will also most likely need to set the Shading settings on some of the body parts of a non-animated model in order to fix alpha transparency issues (much like in XSI); specifically, you'll need to connect the Alpha parameter of the Base Color node to any parameter in Principled BSDF that will work, such as Emission Strength (this should be set up differently as that's technically incorrect, but I don't know how to do so at this moment).

Konoko upon importing to Blender Fixed transparency Copying materials Setting materials in Shading
ABR Konoko broken alpha.png
ABR Konoko fixed alpha.png
ABR Copying materials.png
ABR Konoko fixed alpha.png

Wanted

Except for sounds, textures and text-oriented resources, Blender has the potential to be THE editor for Oni. Its powerful Python support is very useful for customization.

Additional imports/exports, XML/.oni file creation and configurations should be automated, and customization should be used to streamline workflows as much as possible. Tools in the form of add-ons should allow users to be artists instead of coders, speeding up development of the actual projects.

A successful modding community requires not one of these points, but all of them: documentation, tools and tutorials.

Level editor

  • core geometry
  • pathfinding
  • "furniture" (OFGA) creation/placement
  • editing of CJBO
  • special gunk flag placement
  • basic level shading (vertex shading)
  • advanced level shading for OniX?

OFGA library

Objects that are used pretty often should be provided either by Blender Asset Browser or by a customized solution.

BSL editor

Most events in Oni are fired using trigger volumes. There should be an editor to open the code of a trigger volume as soon as it's selected in Blender.

Also, character functions should editable when you select a character.

The editor should be context-sensitive to:

  • level geometry: atmosphere, save points, win level, lose level
  • objects: scripting of static and animated objects (cutscene editor)
  • particle scripting
  • character: after selecting a character there should be a button visible to edit the ONCC, TRBS, animations and textures (GIMP/Photoshop).

Character editor

Character library

There should be a way to place characters or character placeholders so that character collections (BINACHAR) can be saved to disk based on their positioning in the level model.

Animation editor

The core would be BlenderOni that is called as soon as a user chooses to create or edit an animation. It could be extended to edit TRAC.

Particle editor

A particle editor has been always missing in the community.

Testing and publishing support

There should be some linking to Vago and AEI for package creation and quick starting of levels for testing.

A secondary Oni installation could serve as a developer environment where only one level is present at a time. With OniX, it could be made possible to skip the menu UI and automatically load the current project.