Bill Currie
9ff4eefe65
Merge branch 'master' into vulkan
2020-02-16 18:17:50 +09:00
Bill Currie
9d09d65d9a
Clean up some export stuff
...
While it's not there yet, the eventual goal is to support multiple
models in the one blend file, so per-object settings is a requirement.
2019-08-20 16:52:43 +09:00
Bill Currie
c14e5623ad
Get the mdl frames script property working
...
Maybe late 2.78+, blender added the ability to use any ID type in
PointerProperty, which is just what I wanted for the frames script.
2019-08-16 22:34:45 +09:00
Bill Currie
839d90981d
Clean up a few last things for blender 2.80
...
Many many thanks to Aleksander Marhall for the initial work.
2019-08-16 22:32:37 +09:00
khreathor
008b5a4d2c
Import/Export fixes after some Blender 2.8 API changes
2019-08-16 21:38:29 +09:00
khreathor
11e5f39fdc
Fix for the export error when there is no Shape Keys available
2019-08-16 21:38:29 +09:00
khreathor
36da80c0d0
Export proper frame names
2019-08-16 21:38:29 +09:00
khreathor
33d114c09e
Set playback/animation range to start from frame 1
2019-08-16 21:38:29 +09:00
khreathor
ff5f9f1831
Add "empty" skin during export for models with no materials or texture nodes
2019-08-16 21:38:29 +09:00
khreathor
3913febace
MDL properties in object panel are back
2019-08-16 21:38:29 +09:00
khreathor
31fa7a81ef
Fix for single skin being marked as skingroup
2019-08-16 21:38:29 +09:00
khreathor
94c3c8c2cb
Skingroup image export order based on texture node position (height) in shader editor. Nodes with higher position are exported first.
2019-08-16 21:38:29 +09:00
khreathor
4f29f57e77
Proper node positioning after import
2019-08-16 21:38:29 +09:00
khreathor
a13c382969
Skingroup images import order fix
2019-08-16 21:38:29 +09:00
khreathor
4d1f05186b
Skingroups export added
2019-08-16 21:38:29 +09:00
khreathor
17e76149a1
Adjust playback range on import, to fit mdl's animation length
2019-08-16 21:38:29 +09:00
khreathor
66fe862a87
Import skingroups as separate materials with skins as textures
2019-08-16 21:38:29 +09:00
khreathor
ae86790e6c
Initial Blender 2.8 changes - it works, now it's time for improvements
2019-08-16 21:38:29 +09:00
khreathor
8112c4e8b6
Moved MDL settings from Object tab to export options/presets
2019-08-16 21:38:29 +09:00
khreathor
90a707f7f9
Export animation range selected with start/end playback range in Timeline Editor
2019-08-16 21:38:29 +09:00
Bill Currie
f522e58d53
Fix some blender warnings.
2018-06-08 12:45:57 +09:00
Bill Currie
4d0a08a052
Cope with 0 sized textures.
...
The most likely cause is missing texture data. Found while working on the
uv_layers bug for Hectate.
2013-03-04 11:04:47 +09:00
Bill Currie
a6bc5e9d29
Use the correct method for finding the active uv layer.
...
Problem found by Hectate in #qc (thank you!).
2013-03-04 10:50:42 +09:00
Bill Currie
c08fd08025
Write empty array and dictionary items on one line.
...
Makes for slightly tidier plist text.
2012-08-31 16:14:49 +09:00
Bill Currie
43abf8e3df
Support writing int and float items to a plist.
...
They are written as normal string items, so anything using the plist later
on will need to know the context, but at least now there's no need to first
convert int or float data to strings before writing a plist.
2012-08-31 16:10:30 +09:00
Bill Currie
af0db29981
Add support for meshes with multiple UV maps.
...
One common use for a mesh having multiple UV maps is when combining several
mesh objects into one: the base UV map is the result of joining the meshes
(and will be a right mess of overlapping UV islands), but an additional UV
map is then setup as a copy of the first but with the islands re-packed so
nothing overlaps. The export script now searches for the active UV map and
uses that for both UV coordinates and the skin texture (when none is
specified).
2012-08-12 13:38:12 +09:00
Bill Currie
971e689d3d
Fix a slew of whitespace issues.
2012-08-07 13:25:44 +09:00
Bill Currie
a3c8209bdf
Handle missing frame information a little more usefully.
...
If there's no export script, or the export script has no frame information,
animation data will be collected by running through blender frames 1 to the
current frame (inclusive). Each frame will be exported as a single frame
rather than as members of a frame group.
2012-08-07 13:23:19 +09:00
Bill Currie
39b2e80207
Optionally apply the object's transform to the mesh.
...
The default is to apply.
2012-08-07 11:49:08 +09:00
Bill Currie
634b3b043d
Export non-triangular faces as triangle clusters.
...
It turns out this behavior is preferable (by at least one artist, anyway).
2012-08-07 10:49:32 +09:00
Bill Currie
a4da11cdb5
Correctly handle multiple vertices sharing a UV coordinate.
...
Need to use both UV coordinate and vertex index to find unique
combinations. This should fix leileilol's broken meshes.
2012-08-07 10:26:35 +09:00
Bill Currie
78bfd30648
Export vertex normals.
...
I'd forgotten I hadn't implemented exporting vertex normals. While I've
modified things for making better use of blender's tools and avoiding the
unnecessary use of objects, the code is taken from the ajmdl blender 2.4
export script.
2012-08-07 09:52:47 +09:00
Bill Currie
5661e738ac
Actually return the skin in null_skin()
...
Oops.
2012-08-07 09:50:38 +09:00
Bill Currie
ff4c2cfb63
Add a todo list for the mdl addon.
2012-08-06 22:34:19 +09:00
Bill Currie
3788a1a3b7
Correct the output of 16-bit vertex data.
...
The order is high (unscaled) low (scaled by 1/256) rather than low
(unscaled) high (scaled by 256).
2012-04-24 14:13:29 +09:00
Bill Currie
c2712e6373
Track recent api change in svn blender.
...
Bah, I'm looking forward to the bmesh api stabilizing.
2012-04-24 11:04:45 +09:00
Bill Currie
99c58cca73
Make exporting md16 files possible.
...
Not sure if it actually works as the clients don't render the result
properly (can't see anything where the model should be), but the output
model does import back into blender properly.
2012-04-23 08:54:19 +09:00
Bill Currie
7317aaf109
Fix an out-by-one error when expanding intervals.
2012-04-21 20:16:28 +09:00
Bill Currie
965680f5dd
Fix the bogus rotation flag when exporting the torch.
2012-04-21 11:42:38 +09:00
Bill Currie
4e435654c0
Implement multiple skin and frame exporting.
2012-04-21 11:31:33 +09:00
Bill Currie
1242247ac2
Write the number of subskins in a skin group.
2012-04-21 11:30:43 +09:00
Bill Currie
cdc57a0473
Set the skin images' fakeuser flag.
...
Until I figure out how to do animated skins in blender...
2012-04-19 22:16:30 +09:00
Bill Currie
6bae99d66c
Create an animation script for imported models.
...
The animation script is just a plist of relevant frame and skin
information. Documentation is included in the generated script.
2012-04-19 22:06:43 +09:00
Bill Currie
ff05074e70
Set the fcurve interpolation to linear.
...
Since qf does linear interpolation of verts, this seems to be reasonable.
Certaintly better than the rose-thorns I got because I haven't figured out
how to kick the auto-clamp.
2012-04-19 18:49:53 +09:00
Bill Currie
274848b720
Use exceptions for error reporting.
...
Much cleaner, should have done it this way in the first place.
2012-04-19 14:30:40 +09:00
Bill Currie
d500940983
Add support for writing plists.
...
For now, only dictionariess, lists/tuples, bytes and strings are
supported.
2012-04-17 22:05:50 +09:00
Bill Currie
68bf0108fb
Create a python version of qfplist.
...
I've decided to use property lists to define mdl control scripts. Some
names will probably get changed, and I still need to write code for writing
a plist, but the hard part is pretty much done :)
2012-04-17 21:29:27 +09:00
Bill Currie
196f2da585
Remove the fallback for missing image pack support.
...
It's been in blender since 2.59 or so.
2012-04-17 13:10:21 +09:00
Bill Currie
e25024c131
Build a single NLA track with strips for all actions.
...
This removes the need for fakeuser :).
Anyway, with this, the model's animations can be viewed all in sequence
just by hitting alt-a.
2012-04-16 15:42:49 +09:00
Bill Currie
4b29510bfd
Set the name of the shape-key datablock to the model name.
...
Note that this is the data block that holds the list of actual shape-keys,
rather than the shape-keys themselves. I'm not sure what it's correct name
is (it's just "Key" in RNA).
I really dislike this method of setting the name, but the use of "Key" as
the datablock name is actually hard-coded into blender's C code :/
2012-04-16 13:33:45 +09:00