This badass logo was made by @Chris Goodwin
Welcome to the topic about the SMF system. This system is entirely free and will always be free, and provides you with a simple tool for animating 3D models in GameMaker Studio 2. This tool is aimed at people with limited experience with animated 3D models who'd still like for their 3D models to move.
It consists of three parts:
1. The SMF model tool
The SMF model tool is the core of the SMF system. It lets you import .obj model created in a model editor, and exports to the custom .smf format.
2. The SMF import scriptsThe SMF import scripts will let you import, animate and draw .smf models. Animations can be changed in real time.
3. The Blender-to-SMF exporter
A custom SMF-exporter for Blender is now being tested, put together by @Bart!
Links
Join Discord channel
HTML5 demo on itch.io
Download documentation PDF
Download SMF v1.1.0
Changelog v1.0.9
@Bart's made a custom Blender exporter for SMF!
The SMF format has been changed slightly to enable this. The previous version of the format is still supported however, both by the Model Tool and the SMF system.
See Bart's post here for more info on how to use the importer.
Changelog v0.99
The scope of the SMF system has changed drastically for the latest version. It previously came with a collision system, multiple heavy shaders, a level editor and much more. All this has been removed, leaving the Model Tool as a pure animation tool. This makes upkeep a lot easier, since there aren't many systems that all depend on each other in the same project. It also makes it easier to actually import and use the system in a project, especially if you only need parts of the system. The collision system is available as its own download (though the current Marketplace version has an error and asset uploading is currently not working, so I can't fix it).
So, that's what has been removed. But what has otherwise changed?
Well! There are a lot of improvements across the board. The entire animation system has been rewritten into a more robust set of scripts. For those of you who are familiar with the old versions of the tool, I recommend trying to learn how to use the new one from scratch. There are so many changes, and I haven't kept track of them all, but here's a small list anyway:
- The new tool still uses the same format as the previous tool, but the materials and level information will be removed once the model is imported
- Undo and redo works, both with buttons and with Ctrl+Z and Ctrl+Y
- Projects are autosaved to a separate folder when something changes or when you close the tool, so that you won't lose all your work if the power goes out or the program chashes
- Skinning has been completely revamped. You can now paint bone influence directly to a model in perspective view, instead of having to select vertices and assign bones.
- The animation tools are vastly improved. Even though there are fewer of them, the tools that are there are more versatile and allow for more operations than ever before. "Move node IK" will for example either let you move a detached node, drag a bone, or perform inverse kinematics on bones whose parents are also bones.
Here's a gif showing what happens if you lock all the feet of a spider in place, and try to move its body:
Moving nodes using inverse kinematics is easier than ever:
Inverse kinematics can be used to, for example, move the feet of a spider in real time:
Both the tool and the formats are still in progress, and there may be changes to the format while it's still being worked on.
I'd love feedback! What do you think of the tool? What do you think about the difficulty level? Is there anything you'd like me to improve? Tell me here in the topic!
Old download links:
Download SMF version 0.9.751
Version 0.8.6 (Compatible with GMS 1.4)
The collision system
When creating a colision buffer in the SMF model tool, the model is split into a structure called an octree. Splitting up the model is necessary to perform efficient collision calculations, since you only really need to check the nearest geometry. An octree splits the model up based on geometric density, and so the size of the subdivisions can change throughout the model. Performing sphere-model collision checks is a fast and simple approximation for most applications, and the system also allows for ray casting onto the level model for more advanced collisions. Sphere-model collisions are currently the only available collision check/response.
Here's an example of what a collision buffer looks like:
The animation system
The animation system is very fast when used correctly! Bones are stored as dual quaternions, which are efficient and less memory-consuming than matrices, but are limited in that they don't allow scaling. Interpolating between frames can be done with linear interpolation or quadratic interpolation. Animations can be changed in real time, as you can see below. You can pre-calculate your animations for even faster processing, but then you can't modify them in real time.
Both the tool and the formats are still in progress, and there may be changes to the format while it's still being worked on.
I'd love feedback! What do you think of the tool? What do you think about the difficulty level? Is there anything you'd like me to improve? Tell me here in the topic!
Gallery:
Download SMF version 0.9.751
Version 0.8.6 (Compatible with GMS 1.4)
The collision system
When creating a colision buffer in the SMF model tool, the model is split into a structure called an octree. Splitting up the model is necessary to perform efficient collision calculations, since you only really need to check the nearest geometry. An octree splits the model up based on geometric density, and so the size of the subdivisions can change throughout the model. Performing sphere-model collision checks is a fast and simple approximation for most applications, and the system also allows for ray casting onto the level model for more advanced collisions. Sphere-model collisions are currently the only available collision check/response.
Here's an example of what a collision buffer looks like:
The animation system
The animation system is very fast when used correctly! Bones are stored as dual quaternions, which are efficient and less memory-consuming than matrices, but are limited in that they don't allow scaling. Interpolating between frames can be done with linear interpolation or quadratic interpolation. Animations can be changed in real time, as you can see below. You can pre-calculate your animations for even faster processing, but then you can't modify them in real time.
Both the tool and the formats are still in progress, and there may be changes to the format while it's still being worked on.
I'd love feedback! What do you think of the tool? What do you think about the difficulty level? Is there anything you'd like me to improve? Tell me here in the topic!
Gallery:
Last edited: