Blender supports meta-data per-object using Custom Properties, these allow the user to attach any number of key/value pairs to an object. The problem with Custom Props is they only allow for values of numbers or strings, and not pointers to other objects. It becomes very hard to use Custom Props to define all the interconnections and relationships between objects you may need when exporting to an external game engine. Without pointers, your stuck with naming conventions.
Unblender solves part of this problem by making standard common abstractions like: on-spawn-script, on-update-script, on-near-script, and on-collision-script. These are all language neutral and optional, its up to you to define how your engine importer parses each script.
An integrated text editor, and library linking, are two key features of Blender that come in handy with these abstractions. Blender's integrated editor allows you to write code inside of Blender, so you are not dependent on external files to store your code and game logic. The 3D scene, its objects, and hand written code can all be stored in the same .blend file. Library linking allows you to break apart a single .blend file into multiple files which are linked together by a single master .blend file. This allows a programmer/level-scripter to write code in their own .blend file, while at the same time the artist works in another .blend file where they have the 3D objects.
Although Unity and Unreal Engine both have well integrated code editors, it is only used for runtime game logic, and can not be used to script the export and import stages. The stage before importing data into a game engine is perhaps more important, because data is a raw unbaked state, where modifiers and constraints are not yet collasped, there is greater potential for generating geometry, textures and animations.
Comments
Post a Comment