Blender exporter plug-in for Gearoenix 3D file format.
- Do whatever you want with it, but keep in mind all consequences is on you!
- Do me a favor and promote me, I a job seeker.
- Import everything that is engaged at least in one of the blender scene.
- Plan is to take the things that is needed in current version of game engine.
- Always best practices are the correct way of presenting data.
-
Scene:
-
Its name starts with
scene-
. -
It has following fields:
- Models
- Cameras
- Lights
- Audios
- Constraints
-
It has following types:
-
Game:
- Its name starts with
scene-game-
.
- Its name starts with
-
UI:
- Its name starts with
scene-gui-
. - Its difference with game scene is game scene does not propagate any user event on its models, but ui scene do that.
- Its name starts with
-
-
-
Mesh:
-
It is an object.
-
Its name starts with
mesh-
and it should not have tailing number at its name. -
Its mesh name must be same.
-
Its name can not contain
.
. -
It should not have any transformation.
-
it must be located in zero.
-
It should not have not applied modifier.
-
All of its face must be triangle.
-
It should not have neither parent nor child.
-
It has following types:
-
Basic:
- It name starts with
mesh-basic-
.
- It name starts with
-
-
-
Model:
-
It is an object.
-
Its name must start with
model-
. -
Its blender mesh data will be ignored.
-
It must have at least 1 mesh or 1 model as its child.
-
It must have an occlusion bounding sphere in its child with name
occlusion
. -
Its mesh child specifies with
mesh-[type]-[name].xxx
pattern. -
Its mesh child can not have different material that require different vertex attributes with its origin mesh.
-
It can not have a several children from one mesh, It can only have one mesh from one origin.
-
Each model can have one collider at max.
-
If it is a solid model with no physical attributes, it does not need to have collider as its child.
-
If a model has a collider it must have a symmetric scale.
-
It has following type:
-
Basic:
- It name starts with
model-basic-
.
- It name starts with
-
Widget:
- It name starts with
model-widget-
. - Its difference with basic model is, it can receive events and do some action.
- It name starts with
-
-
-
Material
- Only one material must be in material slots.
-
Texture
-
Its name starts with
texture-
in texture slots. -
Texture must have a image with format of
PNG
. -
It has following types:
-
2D:
- Its name starts with
texture-2d-
.
- Its name starts with
-
3D:
- Its name starts with
texture-3d-
.
- Its name starts with
-
Cube:
- Its name starts with
texture-cube-
. - Its image file name must end with
-up.png
. - All of its faces image files must be in the same location.
- So, its faces image files names are like
[texture-name]-(up/down/front/back/right/left).png
.
- Its name starts with
-
Specular:
- Is name starts with
texture-spec-
.
- Is name starts with
-
Normal map:
- Is name starts with
texture-nrm-
.
- Is name starts with
-
Backed Environment:
- Is name starts with
texture-bkenv-
. - It is like cube.
- Is name starts with
-
-
Note: 3D, Specular and Normal map texture is not supported right now.
-
-
Collider
-
Its name start with
collider-
. -
Currently only one collider can exist in one object.
-
There are these types of collider:
-
Ghost
- It should not have any collider object.
-
Sphere
- Collider name becomes like this
collider-sphere-[name]
. - It is an empty object of type sphere.
- It must not have local transformation except translation.
- Collider name becomes like this
-
Cylinder
- Collider name becomes like this
collider-cylinder-[name]
. - It is an empty object of type sphere.
- It must not have local transformation except translation.
- It must have a child with name
collider-cylinder-child-[name]
. - Child is an empty object of type plain axes.
- Collider name becomes like this
-
Capsule
- Collider name becomes like this
collider-capsule-[name]
. - It is an empty object of type sphere.
- It must not have local transformation except translation.
- It must have a child with name
collider-cylinder-child-[name]
. - Child is an empty object of type plain axes.
- Collider name becomes like this
-
Mesh
- Collider name becomes like this
collider-mesh-[name]
. - It is an object.
- Triangulated.
- Not local transformation.
- Mostly like a mesh.
- Its normal must be flat, not smooth.
- Collider name becomes like this
-
-
-
Constraints:
-
Placer:
-
Its name is
constraint-placer-[name]
. -
It is an empty object.
-
It should not have any transformation.
-
It can have only model in its children.
-
In every size event it will compute the space and the position of the object and if the remained space was smaller than the current size of the object, object will be fitted by scaling down and on the other hand if object was smaller than the allowed space that it can fill, it will be fill the space by scaling up.
-
It has following attributes (misusing may cause undefined behavior):
- x-middle: Place the object in x: 0.0 and with the specified distance from right and left borders.
- y-middle: (todo: will be added, whenever needed)
- x-left: (todo: will be added, whenever needed)
- x-right: (todo: will be added, whenever needed)
- y-down: place the object with a specified distance from bottom border.
- y-up: (todo: will be added, whenever needed)
- ratio: Its value is (width / height), it is a mandatory attribute.
-
-