ANAAA project that aims to develop a system for automatic action and animation control without the artists. NPC's animate themselves based on new AI techniques being developed and researched in this project.
This project also includes a revolutionary filesystem for your data driven apps. A
... [More]
system that had to be made to accommodate the new AI model proposed in the design.
AI ModelTo be posted
FilesystemANAA's filesystem provides an interface for files of any type, any format, and any application to operate together in a non-restrictive environment. At its core the filesystem offers a layer of abstraction to all file types. Each type of file is stored in two parts, firstly as a node to the world tree, secondly as an implementation of a class defined to handle such files. This file system is most effective if you are planning on implementing a scene graph type structure to your engine. Where the operation of individual files such as mesh's, puppets, textures, are non-important to the core engine.
The filesystem is created by xml files processed at runtime for tree information.
Here is a sample of a small world
Main
Big world for which to run tests in
-1000 -1000 -1000
1000 1000 1000
dirt01.mat
0 0 0
0 0 0
arm.puppet
Each type of item is defined in code by a tree node and a builder class which takes the node data and does something useful with it. 'Something' is another way of saying 'do with it what you want, I certainly do not care.' Those who have experience with filesystem design might appreciate this kind of abstraction from core logic.
If we pick apart one element here, take the 'plane' type. Lets break it apart. Firstly we identify the object to build, and then we supply parameters to the builder. In this case we are doing nothing more then taking on more built objects (the vectors). The plane object itself does not care about the vectors or material at all. It just exists as a basic plane with three children nodes.
The real work horse is the renderer which is specially designed to work with our filesystem graph and make something useful with this. [Less]