-
Posts
373 -
Joined
-
Last visited
-
Days Won
4
Content Type
Profiles
Forums
Events
Posts posted by nemyax
-
-
Many of the users out there are also simply lazy and would rather import objects and characters from external programs, import the motions and stake claim to their final renders.
Well they are telling their stories, aren't they?
-
If you disregard the derision in that post, the bloke has a perfectly valid point. A:M cannot be recommended as a secondary modelling program. What in the world would you do with patch models outside A:M?
-
How much of this python code actually relies on Blender?
The most important parts do. This script uses Blender's bmesh data structure very heavily. I suppose if you replicated that structure's features and implemented conversion to it from your geometry format of choice, then the same approach would work.
Incidentally, you don't have to use the actual Blender UI if all you need is its Python engine. See the Don't Use Blender! tip here.
I'm wondering about approaches to using A:M files in other python friendly programs (or even as standalone code).
This script uses polygonal edges to represent CPs, and marks them with additional data that indicates the "previous" and "next" edge (up and down the spline). If it weren't for the "magic" undocumented bitfields, the format would be trivial.
-
The same workflow (snapping to surfaces plus quick edge extrusion) can be easily replicated in Blender. That fact in itself is no big deal (where can't you do it these days?), but now there's direct export from Blender to .mdl without the need for post-import corrections. So maybe Blender's worth a look.
-
did not see the option after I installed it from file
You need to enable the check box next to the addon's name in the list. Use the filter box to find the addon.
You can enable left-click selection on the Input tab if you like.
I know how frustrating a new software environment can be — good luck =)
- 1
-
This addon exports the following from Blender:
-
Polygonal meshes converted to a patch-based representation in Animation:Master's .mdl format.
The exporter tries to maintain good continuity, preserves UV mapping, and has an option to add "whiskers" (Add tails check box in the file export window) to extend discontinuous splines. -
If the mesh is associated with an armature, the bones and skin weights.
Constraints, limits and all other rigging relationships are ignored. -
CP groups from vertex groups.
Vertex groups named after the bones of an associated armature are skipped. -
Optionally, CP groups named after assigned materials (Group CPs by material option).
These groups override any vertex groups with the same names, so make sure your vertex groups and materials have different names. The option is useful in round-trip import-export scenarios through the .obj format. -
Optionally, a spline action (.act) file for each shape key that is different from the base mesh (Export shape keys option).
These .act files can be useful, for example, if you want to transfer spline shapes to your smartskins.
To export your Blender scene, click File | Export | Animation:Master model (.mdl). This will convert the active object (the one selected last).
The resulting files are based on the Animation:Master V17 model format. The addon requires Blender 3.0 or later.
Get the addon here: https://sourceforge.net/projects/blendamajigs/files/io_scene_am_mdl/
The name of the file is io_scene_am_mdl-*.*.*.zip.
How to install the script
Open Blender's User Preferences window and go to the Add-ons tab.- Click Install from File and specify the downloaded .zip file or the unpacked .py file.
- Enable the Import-Export: Animation:Master Model addon.
- To make your changes persistent, click Save User Settings.
Special thanks to Malo for his excellent advice and eagerness to help finish this thing.
Tools for A:M-friendly remeshing
The add-on includes the functionality of the Animation:Master Middleman script. It helps convert models created with Catmull–Clark subdivision in mind into more spline-friendly meshes. Here's a quick before-and-after:
http://pix.academ.org/img/2015/01/18/831124cd0178e05fc80e133f93ba7773.png
Note that for best results you should keep your mesh all-quads and avoid more than five edges converging at a vertex. This is generally good subdivision modelling practice, but it is especially important for the kind of remeshing that this script does. Following these rules should give you a spline cage with nice criss-cross spline intersections.
The tools are available on the Tools panel (shortcut: T in the viewport) in the Misc tab:
http://pix.academ.org/img/2015/07/12/73195e3df0aa046ae1166a3a479cd3c4.png
The Make A:M-Friendly Copy command uses the custom Hatch Face command automatically to improve flow in problematic areas. Faces generated by the Hatch Face command will remain selected after Make A:M-Friendly Copy has completed.
Tip: This pre-selection can help you reduce detail if you want. You can use the Select Boundary Loop command and then dissolve the edges it has selected.
http://pix.academ.org/img/2015/01/18/466e5d096108bf27019b0796351eedab.png
http://pix.academ.org/img/2015/01/18/dc3cf4998db69c39ec71bdb5e9582464.png
You can use the Hatch Face command independently as well. It is available when face selection mode is on.- 2
-
Polygonal meshes converted to a patch-based representation in Animation:Master's .mdl format.
-
Silo offers their source code to be used in other software
Can you cite a source for this?
-
Do you mean that the least-index CP should always carry the coordinates and be the target that other CPs are fused to? I think I checked for that specifically at some point, and it didn't always hold. But I might be wrong.
-
-
I've just tried your suggestion (start with the minimum-index CP) on the torus, and it came out partially textured. Interestingly, the nudge-undo trick didn't change anything this time.
The CP indexes are still those that carry coordinates.
-
I see. A hell of a limitation if you ask me.
But anyway, the fact that such patches are disallowed doesn't explain why A:M strips other, valid patches of their UVs. I've just tried the exporter on a torus, which has the most regular topology you can imagine, and the undo caused more than half the patches to lose their texture.
Apparently something's wrong about the way patches or CPs in them are ordered.
-
AM does not accept patches that are bypassed with the same spline.
Do you mean a spline that crosses itself?
-
Well, there's no cause for celebration yet. On a model that isn't a measly strip of three patches, the five-pointers still aren't textured correctly:
But it gets crazier. Nudge a CP, undo, and you end up with this:
Here's the .mdl if anyone wants to see for themselves: https://drive.google.com/file/d/0B___ge5IO2JdVUMzTEprb0N4aVE/view?usp=sharing
-
there is still a lot to discover in the writing of the AM format. (hooks ....)
I'd rather hooks remained a post-Blender tweak. Not so much out of laziness as because there's no direct counterpart to a hook in a polygon mesh. You'd have to come up with artificial rules and impose them on the artist.
-
Malo did it all. I only converted his findings to monkey code =)
-
Almost there =)
EDIT:
...and it's done!
I'll make a dedicated announcement when I've done some more testing.
-
-
They don't really go after pirates, that's how.
-
Do you write the same CP indexes for the UVs?
-
Thanks a million, Malo!
This observation makes a lot of sense, and it gives some meaning to the SDK's HPatch::IsFlip1()–HPatch::IsFlip4() flags. Luckily, the script handles "directed" edges anyway, so this should be cheap to fix, at least for 3- and 4-pointers.
-
You need programmers that know the code and know it's workflow.
True. And making the source available would make it easier, not harder, for these people to contribute. (I'm assuming you mean former Hash Inc. developers.) But only as long as they want to. If Yves has no intention of touching that code base any more, then you won't have him either way, source or no source. If there isn't sufficient interest among people like these, of course all you'll be left with is script kiddies. Ironically, at the moment A:M doesn't even have those, as Rodney points out.
-
Open sourcing of a long standing product would be putting it out to pasture like a dying cow.
.NET and Unreal Engine 4 beg to disagree.
wanna b programmers tucking in bits of garbage code snippets
Don't accept garbage commits and don't give contributor rights to wannabes.
-
I see what you mean. Booleans would be another example of a toolset that spline patches don't support very well.
i am not sure but there was this legend that A:M has a very unique programming style...
I suppose this can be confirmed or debunked by Steffen or ypoissant.
-
it may result in copying of some features and implementations of A:M to other software which may result in less use of A:M
If this thing really took off, there would also be the reverse process of A:M borrowing from other software (for example, the loop cut tool that *J* is trying to emulate). Which would result in more use of A:M.
LOTR Blooper Reel - do we know that troll?
in Animation:Master
Posted
It's the one that Legolas put down in Moria ("They have a cave troll" scene), isn't it?