- Each Object Type requires unique id number (uid) < 2**63
- Each closing brace must be on its own line
- For Vertices, PolygonVertexIndex, Materials arrays need number of elements in array e.g. Vertices *(number of vertices x 3) {
- Negative polygon vertex index created by bitwise not of actual vertex index
- https://banexdevblog.wordpress.com/2014/06/23/a-quick-tutorial-about-the-fbx-ascii-format/
- https://github.com/mont29/blender-io-fbx/blob/master/io_scene_fbx/export_fbx_bin.py
Showing posts with label 3D modelling. Show all posts
Showing posts with label 3D modelling. Show all posts
Tuesday, 18 April 2017
FBX ASCII 7300 (2013) File Format
Monday, 23 March 2015
Classic style theme for Metasequoia 4
A Japanese user has uploaded themes for Metasequoia 4 that recreate the style of Metasequoia 3 (top image) and the Japanese paint program SAI Paint (bottom image).

Classic Theme
Links and screenshot obtained from Metasequoia BBS post [5447].

Classic Theme
- https://bowlroll.net/file/66483 (Japanese website)
- https://bowlroll.net/file/66468 (Japanese website)
Links and screenshot obtained from Metasequoia BBS post [5447].
Friday, 1 August 2014
Milkshape 3D 1.8.5 *.ms3d file format
The Milkshape 3D file format is included in the ms3dsdk185.zip available at http://www.milkshape3d.com/ but contains some errors which I have corrected.
I also added some extra information for clarification.
I also added some extra information for clarification.
Saturday, 12 July 2014
Metasequoia Script – Import MilkShape3D *.ms3d
Here is a script that imports a model from a MilkShape3D *.ms3d file.
The script uses Python 3 modules, syntax and objects so can only be used as is with Metasequoia 4.

The script uses Python 3 modules, syntax and objects so can only be used as is with Metasequoia 4.
Labels:
3D modelling,
Metasequoia scripts,
programming,
Python
Monday, 7 July 2014
About Rotations in Skeletal Animation
In skeletal animation, for every frame of an animation, the position of a bone’s origin (pivot point) and a bone’s rotation is stored for each bone in a hierarchy of bones.
The hierarchy of bones is also known as a skeleton.
In this article I will only discuss the rotations.
Like any 3DCG object you create in 3D modelling software, each bone has a local coordinate system defined by X,Y and Z axes.
For example I can define a bone as an object where the direction from the origin of the bone to its tip is in the positive Z axis direction and the the top of the bone is in the positive Y axis direction.
In essence I have created an object as shown below.

The hierarchy of bones is also known as a skeleton.
In this article I will only discuss the rotations.
Like any 3DCG object you create in 3D modelling software, each bone has a local coordinate system defined by X,Y and Z axes.
For example I can define a bone as an object where the direction from the origin of the bone to its tip is in the positive Z axis direction and the the top of the bone is in the positive Y axis direction.
In essence I have created an object as shown below.
Labels:
3D modelling,
quaternions,
rotation,
skeletal animation
Monday, 30 June 2014
Metasequoia Script – Using Quaternions to Rotate Points
You can use a Python script in Metasequoia to demonstrate the quaternion sandwich product rotating a point.
I have set up a Metasequoia document as shown below.

I have set up a Metasequoia document as shown below.
Labels:
3D modelling,
Metasequoia scripts,
programming,
Python
Monday, 16 June 2014
Metasequoia Script – Mikoto bdef bone influence
See this post [link] for the basics of scripting in Metasequoia.
In this post [link] I talk about how Mikoto assigns vertices to a bone using the geometry of the triangle created in Metasequoia for bdef meshes without using anchors.
To help visualise which vertices will be bound to a bone I wrote a script that shows the zone of influence of each bone.
The Metasequoia Python API doesn’t have routines to create Primitive objects so rather than create an object in code this script requires a Primitive to be created in Metasequoia which it can copy.
The Primitive object must be named capsule and have its properties set as shown in the screenshot below.
In this post [link] I talk about how Mikoto assigns vertices to a bone using the geometry of the triangle created in Metasequoia for bdef meshes without using anchors.
To help visualise which vertices will be bound to a bone I wrote a script that shows the zone of influence of each bone.
The Metasequoia Python API doesn’t have routines to create Primitive objects so rather than create an object in code this script requires a Primitive to be created in Metasequoia which it can copy.
The Primitive object must be named capsule and have its properties set as shown in the screenshot below.
Labels:
3D modelling,
Metasequoia,
Metasequoia scripts,
Mikoto,
programming,
Python
Saturday, 7 June 2014
Metasequoia Script–Lots of cubes
See this post [link] for the basics of using Metasequoia’s Script Editor.
I found an interesting script at this Japanese blog [link].
I found an interesting script at this Japanese blog [link].
Labels:
3D modelling,
Metasequoia,
Metasequoia scripts,
programming,
Python
Friday, 6 June 2014
Metasequoia Script–Sierpinski Triangle Pyramid
See this post [link] for the basics of using Metasequoia’s Script Editor.
I found an interesting script at this Japanese blog [link].
Make sure you have an empty Scene in Metasequoia by clicking File>New then open the Script Editor and paste the code into the upper input pane of the editor.

Press F5 or Script>Run to execute the script and create the object.

I found an interesting script at this Japanese blog [link].
# fractal generate doc = MQSystem.getDocument() num = doc.numObject obj = doc.object[0] # field x = 100 y = 100 z = 100 rn = 4 # recursive number # Primitive p01 = MQSystem.newPoint(x/2,y,z/2) p02 = MQSystem.newPoint(0,0,0) p03 = MQSystem.newPoint(x,0,0) p04 = MQSystem.newPoint(x,0,z) p05 = MQSystem.newPoint(0,0,z) # function fractal() def fractal(number,p1,p2,p3,p4): if number == 1: #left v = [] v.append( obj.addVertex(p1) ) v.append( obj.addVertex(p2) ) v.append( obj.addVertex(p3) ) obj.addFace(v) #right v = [] v.append( obj.addVertex(p1) ) v.append( obj.addVertex(p3) ) v.append( obj.addVertex(p4) ) obj.addFace(v) # bottom v = [] v.append( obj.addVertex(p4) ) v.append( obj.addVertex(p3) ) v.append( obj.addVertex(p2) ) obj.addFace(v) else: p5 = MQSystem.newPoint((p1.x + p2.x)/2, (p1.y + p2.y)/2, (p1.z + p2.z)/2) p6 = MQSystem.newPoint((p2.x + p3.x)/2, (p2.y + p3.y)/2, (p2.z + p3.z)/2) p7 = MQSystem.newPoint((p3.x + p1.x)/2, (p3.y + p1.y)/2, (p3.z + p1.z)/2) p8 = MQSystem.newPoint((p3.x + p4.x)/2, (p3.y + p4.y)/2, (p3.z + p4.z)/2) p9 = MQSystem.newPoint((p4.x + p1.x)/2, (p4.y + p1.y)/2, (p4.z + p1.z)/2) p10 = MQSystem.newPoint((p4.x + p2.x)/2, (p4.y + p2.y)/2, (p4.z + p2.z)/2) fractal(number-1,p1,p5,p7,p9) fractal(number-1,p5,p2,p6,p10) fractal(number-1,p7,p6,p3,p8) fractal(number-1,p9,p10,p8,p4) fractal(number-1,p7,p8,p10,p6) # endfunction fractal() #main() fractal(rn,p01,p02,p03,p04) fractal(rn,p01,p04,p05,p02)
Make sure you have an empty Scene in Metasequoia by clicking File>New then open the Script Editor and paste the code into the upper input pane of the editor.
Press F5 or Script>Run to execute the script and create the object.
Labels:
3D modelling,
Metasequoia,
Metasequoia scripts,
programming,
Python
Thursday, 29 May 2014
Learning fragMOTION part 2
I have found a simpler way to texture a model and to demonstrate I will use an *.ms3d file exported from Fexanim this time.
<Edit 17Sep14>
TurboPascal has updated Fexanim to include the material information in the *.ms3d file so the texture will now be assigned automatically when the *.ms3d is opened in fragMOTION.
TurboPascal also fixed the bugs that caused the UV map errors and the joining of the vertices in the upper leg meshes.
http://www.dxtre3d.com/temp/fexanim.rar
</Edit>
Open the model in fragMOTION and click the Texture pane tab.
Right click in the Texture pane and click New>Texture from the context menu.

<Edit 17Sep14>
TurboPascal has updated Fexanim to include the material information in the *.ms3d file so the texture will now be assigned automatically when the *.ms3d is opened in fragMOTION.
TurboPascal also fixed the bugs that caused the UV map errors and the joining of the vertices in the upper leg meshes.
http://www.dxtre3d.com/temp/fexanim.rar
</Edit>
Open the model in fragMOTION and click the Texture pane tab.
Right click in the Texture pane and click New>Texture from the context menu.
Tuesday, 27 May 2014
Learning fragMOTION part 1
fragMOTION is a 3D modelling and animating program. [link]
It is not freeware but you can use the fully featured trial indefinitely by obtaining a seven day license every seven days.
The seven day license is obtained by typing a version of the Christian Lord’s prayer into the program when prompted.
Note I had to use a compatibility mode for the program not to give me a “trial has expired” warning and making the program close to unusable even though I had typed in the prayer. I don’t know if I did something wrong or if the program has a problem with Windows 8.1.
(Since I installed it in Program Files I needed to run it as administrator to have the trial work properly.)
<Edit 10AUG18> Here is a program (CoreMotion) that will type automatically the prayer. I didn't write it so make sure to check with anti-virus programs. <link>
</Edit>

It is not freeware but you can use the fully featured trial indefinitely by obtaining a seven day license every seven days.
The seven day license is obtained by typing a version of the Christian Lord’s prayer into the program when prompted.
Note I had to use a compatibility mode for the program not to give me a “trial has expired” warning and making the program close to unusable even though I had typed in the prayer. I don’t know if I did something wrong or if the program has a problem with Windows 8.1.
(Since I installed it in Program Files I needed to run it as administrator to have the trial work properly.)
<Edit 10AUG18> Here is a program (CoreMotion) that will type automatically the prayer. I didn't write it so make sure to check with anti-virus programs. <link>
</Edit>
Metasequoia Script – integer vertex coordinates
The registered version of Metasequoia allows scripting in the Python language.
This article will demonstrate a script to move all vertices (also known as points) in an object to integer coordinates.
An integer is a whole number like 1, 2, 3, 40, 75 etc.
A trial license for Metasequoia 4 is easy to obtain and unlocks all features for a limited time including the Script Editor. [link]
This article will demonstrate a script to move all vertices (also known as points) in an object to integer coordinates.
An integer is a whole number like 1, 2, 3, 40, 75 etc.
A trial license for Metasequoia 4 is easy to obtain and unlocks all features for a limited time including the Script Editor. [link]
Labels:
3D modelling,
Metasequoia,
Metasequoia scripts,
programming,
Python
Subscribe to:
Posts (Atom)