William Herald Snyder
|
ba762d9548
|
Abort export if SELECTED or SELECTED_WITH_CHILDREN is chosen but nothing is selected and warn user that hidden objects can't be selected.
|
2022-10-08 22:07:44 -04:00 |
William Herald Snyder
|
b120b74cd4
|
Models shouldn't be hidden by default, as many models have objects that are obviously not hidden but do not have FLGS chunks + objects with children can be hidden, only older versions of Blender automatically hide children when parent is hidden
|
2022-10-08 21:31:08 -04:00 |
Will Snyder
|
7b9f5c9cfb
|
Prune segments with empty triangle strips. ZE and most versions of ZETools require triangle strips.
|
2022-10-06 10:23:13 -07:00 |
William Herald Snyder
|
84a910f747
|
When exporting collision primitives, check the swbf_msh_coll_prim primitive property before the name to catch primitives which have incorrect names. Previously the property would only be checked if the primitive was missing a name indicator, but it should be checked first and always because some primitives from XSI have name-type mismatch (cis_hover_aat)
|
2022-10-05 09:28:27 -04:00 |
William Herald Snyder
|
0a1866295c
|
Only include vertex groups used for skinning purposes. More robust requirements for object to be exported as a skin. Misc cleanup and minor refactoring in msh_model_gather.
|
2022-10-05 09:27:44 -04:00 |
William Herald Snyder
|
ec54df21d2
|
Blend + hardedged transparency emulated via settings + additive emulated by adding the output of the PBSDF and a default Transparent BSDF. Bugfix: animation data is cleared from nodetrees via a stable method. FCurves.clear() is too new...
|
2022-10-04 09:58:36 -04:00 |
William Herald Snyder
|
b2bd9c8316
|
Blender 2.80-2.83 supports additive blending, so FillMaterialProps will catch that if present
|
2022-10-04 07:54:25 -04:00 |
William Herald Snyder
|
56f6ce6940
|
Fill doublesidedness and transparency (TODO: figure out additive mapping/emulation) from material settings
|
2022-10-03 23:06:33 -04:00 |
William Herald Snyder
|
f44c7bfdf3
|
DFS property fill starts from BSDF Principled Base Color input and runs until a texture image is hit. The extension of the texture image's source path is always replaced with .tga. Operator skips previously handled materials.
|
2022-10-03 22:56:45 -04:00 |
William Herald Snyder
|
8bf2196991
|
Don't change rendertype on matfill and fill texture_0 as well as diffuse map
|
2022-10-03 21:16:59 -04:00 |
William Herald Snyder
|
1252a6d192
|
Grayscale bumpmaps support via option files
|
2022-10-03 14:12:21 -04:00 |
William Herald Snyder
|
9fcdb3dfb7
|
Quick and dirty option file parser
|
2022-10-03 14:11:44 -04:00 |
William Herald Snyder
|
dd17fe902e
|
Normal mapping support, though bump mapping is not supported yet. To support it, .tga.option files will have to be read and the various bump mapping munge parameters will need proper interpretation. Emulating the bump effect via shader nodes is straightforward.
|
2022-10-03 12:30:34 -04:00 |
William Herald Snyder
|
226682de8b
|
Data field 0 overrunning bounds of UI_MATERIAL_ANIMATION_LENGTHS bugfix
|
2022-10-03 10:28:53 -04:00 |
William Herald Snyder
|
69e959e7a3
|
Proper scroll speed units + scene fps accounted for
|
2022-10-03 08:38:13 -04:00 |
William Herald Snyder
|
188b270ad1
|
Linear interpolation for scrolling keyframes. Keyframe are created on the active action of the materials node tree. TODO: determine correct scroll speed speed units
|
2022-10-02 18:19:29 -04:00 |
William Herald Snyder
|
9a344d0652
|
Simple UV scrolling nodes in place. Simple approach will probably remain since the only interaction will be with image textures nodes
|
2022-10-02 16:30:11 -04:00 |
William Herald Snyder
|
ea82d24356
|
Glow flag supported via mixing emission and BSDF. TODO: poll GT on automatically setting renderer to Eevee, find out if both emission and BSDF are necessary or just the latter when glow is enabled, find out if rendertype 1 is relevant, outline general implementation of props to nodes mapping procedure
|
2022-10-02 15:55:47 -04:00 |
William Herald Snyder
|
6e05bba9e5
|
Fix import order bug in materials_to_blend that invalidated script reloading
|
2022-10-02 13:31:16 -04:00 |
William Herald Snyder
|
9981b64d60
|
Missing armature bug fix
|
2022-10-01 15:17:02 -04:00 |
William Herald Snyder
|
48aabaf8d4
|
Anim import code moved to new file
|
2022-10-01 15:10:00 -04:00 |
William Herald Snyder
|
329303e256
|
Silly _REVERSE_RENDERTYPES_MAPPING replaced with dict comprehension
|
2022-10-01 12:17:26 -04:00 |
William Herald Snyder
|
d359975bd6
|
Generation op will abort if diffuse texture isn't found + options for failing silently or with error message. TODO: found out how to create a pop-up panel with error message that fades away if not interacted with for a couple seconds...
|
2022-10-01 08:02:59 -04:00 |
William Herald Snyder
|
aa8a61175d
|
Skeleton import code moved to separate file + other renaming
|
2022-10-01 07:56:19 -04:00 |
William Herald Snyder
|
5692a60907
|
When exporting, if an object has a parent bone with the same name, add its geometry to the parent bone's model and discard the object itself.
|
2022-10-01 07:53:28 -04:00 |
William Herald Snyder
|
7cfa101d42
|
Catch models that are marked as bones but still have geometry
|
2022-10-01 07:53:28 -04:00 |
William Herald Snyder
|
43b1f9650e
|
When gathering bone transforms during armature expansion, don't assume armature's local transform is zeroed
|
2022-10-01 07:53:28 -04:00 |
William Herald Snyder
|
aa8f05dd42
|
Create mesh object for any model with geometry regardless of type + triangle strip winding order bugfix
|
2022-10-01 07:52:19 -04:00 |
William Herald Snyder
|
9bd8479e31
|
Reorg + use generation operator when initially creating Blender materials + make all texture fields in SWBF materials properties paths
|
2022-09-28 08:49:14 -04:00 |
William Herald Snyder
|
8974131550
|
Better description for material generation op
|
2022-09-28 08:49:14 -04:00 |
William Herald Snyder
|
abd727d39a
|
Better material generation for basic rendertypes
|
2022-09-28 08:48:50 -04:00 |
William Herald Snyder
|
f69ed3f143
|
Armature offset bug fix
|
2022-09-27 08:23:49 -04:00 |
William Herald Snyder
|
f88b62c986
|
When exporting cylinder primitives, do not test for exact match in x,y dimensions since cylinders created in xsi often have so few polys that their widths and lengths don't match (e.g. p_collision of tat3_bldg_reservoir). Taking the larger dimension gives the correct result for cylinders that originated in both XSI and Blender.
|
2022-09-27 07:56:25 -04:00 |
William Herald Snyder
|
13a92e46c6
|
Always calculate and use split normals when exporting mesh in order to account for sharp edges
|
2022-09-23 13:11:00 -04:00 |
William Herald Snyder
|
d6973e9793
|
Catch absent geometry in objects not of type EMPTY
|
2022-09-22 19:31:30 -04:00 |
William Herald Snyder
|
5d86a88411
|
Normals importing as part of custom split set. Mesh import code moved to seperate file
|
2022-09-21 09:02:15 -04:00 |
William Herald Snyder
|
4e2f6bf423
|
Docs update for msh material property fill operator and menu entry
|
2022-02-09 15:17:52 -05:00 |
William Herald Snyder
|
bdcd4c4aa9
|
Integrated Starlord's feedback (quick-n-dirty object context submenu + operator for copying diffuse texture names to SWBF material properties for all selected objects' materials)
|
2022-02-09 14:50:52 -05:00 |
William Herald Snyder
|
c3f5f0bed3
|
Integrated Teancum's feedback (Normal rendertype changed to Standard + armature root bone properly parented to skin if one is present + animation export options simplified with batch export capability and relevant docs changes + minor changes to import/export options and docs to make behavior obvious)
|
2022-01-28 17:28:12 -05:00 |
William Herald Snyder
|
091e295649
|
Triangle winding order for strips accounted for
|
2022-01-27 22:09:23 -05:00 |
William Herald Snyder
|
40343a2f69
|
The last index of the last triangle strip in a segment is properly included + cleaner reading of STRP
|
2022-01-27 18:34:53 -05:00 |
William Herald Snyder
|
a962b4475e
|
Change Blender version to 2.80 to silence warning
|
2022-01-21 13:26:07 -05:00 |
William Herald Snyder
|
637c3c2afa
|
Catch segments with no valid geometry, read NDXL in try-except block
|
2022-01-20 23:40:19 -05:00 |
SleepKiller
|
ae6493d7f2
|
update readme.md, __init__.py
|
2022-01-19 16:47:05 +13:00 |
Will
|
58e229f6ad
|
Check if nothing selected before applying anim
|
2022-01-18 15:46:30 -05:00 |
William Herald Snyder
|
dce3f4e498
|
Skeleton related functions separated into msh_skeleton_utilities + CollisionPrimProperties added for imported primitives that don't have proper names + misc changes to avoid circular imports + minor refactors
|
2022-01-18 15:16:49 -05:00 |
William Herald Snyder
|
bae32bdfe4
|
Other/unsupported material option with stub rendertypes and UI elements + fill MaterialProperties on import
|
2022-01-15 11:45:38 -05:00 |
Will Snyder
|
c314592d48
|
Dont include bone in exported anim if its not keyed or in preserved skel...
|
2022-01-13 12:52:30 -08:00 |
William Herald Snyder
|
7244446dd9
|
Fill material properties upon import + if SKL2 missing, assume all BONE models are in it + SkeletonProperties only relevant for imported meshes + chunked_file_reader no longer assumes 4-byte alignment
|
2022-01-11 14:02:17 -05:00 |
William Herald Snyder
|
5eea77adf3
|
Skeleton impurities (roots,effectors) now included by default, zaa_reader and msh_reader combined in chunked_file_reader, skin and skeleton parentage issues worked out. TODO: Fill material properties on import, decide what to do with SkeletonProperties.
|
2022-01-07 13:45:50 -05:00 |