125ad2792cFixed import of animations to allow for bulk importitdominator2023-05-28 13:47:33 -0500
cc4a1b0e04Create sv faces from half-edge list. Current method doesn't check for duplicates, but Blender seems to filter them anyhow.
William Herald Snyder
2023-01-08 20:54:37 -0500
ab253f0accIgnore swap files
William Herald Snyder
2023-01-08 20:52:23 -0500
582ed1ace5Create mesh from shadow geometry with verts, edges, but no faces
William Herald Snyder
2023-01-06 21:33:29 -0500
63f9e43e17Read SHDW chunks
William Herald Snyder
2023-01-06 21:30:16 -0500
f451be4d18Check number of bytes remaining before reading texture strings
v1.2.2
William Herald Snyder
2022-10-29 12:57:14 -0400
613cb20678Many msh files (e.g. those in BFX) have multiple models assigned to the same index (MNDX). Indices should be linked only to the first model that uses them to ensure proper skinning.
William Herald Snyder
2022-10-09 00:15:29 -0400
92fdc3a12bMany msh files (e.g. those in BFX) have multiple models assigned to the same index (MNDX). Indices should be linked only to the first model that uses them to ensure proper skinning.
v1.2.1
William Herald Snyder
2022-10-09 00:15:29 -0400
432c9ff380Hidden objects will be unhidden after calling evaluated_get, so they must be tracked beforehand when exporting.
William Herald Snyder
2022-10-08 22:10:03 -0400
ba762d9548Abort export if SELECTED or SELECTED_WITH_CHILDREN is chosen but nothing is selected and warn user that hidden objects can't be selected.
William Herald Snyder
2022-10-08 22:07:44 -0400
b120b74cd4Models 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
William Herald Snyder
2022-10-08 21:31:08 -0400
7b9f5c9cfbPrune segments with empty triangle strips. ZE and most versions of ZETools require triangle strips.
v1.2.0
Will Snyder
2022-10-06 10:23:13 -0700
84a910f747When 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)
William Herald Snyder
2022-10-05 09:23:02 -0400
0a1866295cOnly 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.
William Herald Snyder
2022-10-04 13:27:07 -0400
ec54df21d2Blend + 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...
William Herald Snyder
2022-10-04 09:54:28 -0400
b2bd9c8316Blender 2.80-2.83 supports additive blending, so FillMaterialProps will catch that if present
William Herald Snyder
2022-10-04 07:54:25 -0400
56f6ce6940Fill doublesidedness and transparency (TODO: figure out additive mapping/emulation) from material settings
v1.2.0-rc
William Herald Snyder
2022-10-03 23:06:33 -0400
f44c7bfdf3DFS 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.
William Herald Snyder
2022-10-03 22:55:19 -0400
8bf2196991Don't change rendertype on matfill and fill texture_0 as well as diffuse map
William Herald Snyder
2022-10-03 21:16:59 -0400
1252a6d192Grayscale bumpmaps support via option files
William Herald Snyder
2022-10-03 14:12:21 -0400
9fcdb3dfb7Quick and dirty option file parser
William Herald Snyder
2022-10-03 14:11:44 -0400
dd17fe902eNormal 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.
William Herald Snyder
2022-10-03 12:07:52 -0400
226682de8bData field 0 overrunning bounds of UI_MATERIAL_ANIMATION_LENGTHS bugfix
v1.1.0
William Herald Snyder
2022-10-03 10:28:53 -0400
69e959e7a3Proper scroll speed units + scene fps accounted for
William Herald Snyder
2022-10-03 08:38:13 -0400
188b270ad1Linear interpolation for scrolling keyframes. Keyframe are created on the active action of the materials node tree. TODO: determine correct scroll speed speed units
William Herald Snyder
2022-10-02 18:19:29 -0400
9a344d0652Simple UV scrolling nodes in place. Simple approach will probably remain since the only interaction will be with image textures nodes
William Herald Snyder
2022-10-02 16:30:11 -0400
ea82d24356Glow 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
William Herald Snyder
2022-10-02 15:55:47 -0400
6e05bba9e5Fix import order bug in materials_to_blend that invalidated script reloading
William Herald Snyder
2022-10-02 13:29:02 -0400
d359975bd6Generation 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...
William Herald Snyder
2022-09-29 07:11:47 -0400
45782f9a2fDocs update for bones with geometry
William Herald Snyder
2022-09-30 11:51:34 -0400
aa8a61175dSkeleton import code moved to separate file + other renaming
William Herald Snyder
2022-09-30 07:04:49 -0400
5692a60907When 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.
William Herald Snyder
2022-09-29 15:18:58 -0400
7cfa101d42Catch models that are marked as bones but still have geometry
William Herald Snyder
2022-09-28 14:01:25 -0400
43b1f9650eWhen gathering bone transforms during armature expansion, don't assume armature's local transform is zeroed
William Herald Snyder
2022-09-28 11:27:52 -0400
aa8f05dd42Create mesh object for any model with geometry regardless of type + triangle strip winding order bugfix
William Herald Snyder
2022-09-28 14:05:37 -0400
9bd8479e31Reorg + use generation operator when initially creating Blender materials + make all texture fields in SWBF materials properties paths
William Herald Snyder
2022-09-28 08:47:43 -0400
8974131550Better description for material generation op
William Herald Snyder
2022-09-22 19:26:05 -0400
abd727d39aBetter material generation for basic rendertypes
William Herald Snyder
2022-09-21 06:22:49 -0400
f69ed3f143Armature offset bug fix
William Herald Snyder
2022-09-26 21:23:09 -0400
f88b62c986When 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.
William Herald Snyder
2022-09-27 07:56:25 -0400
13a92e46c6Always calculate and use split normals when exporting mesh in order to account for sharp edges
William Herald Snyder
2022-09-23 11:50:29 -0400
d6973e9793Catch absent geometry in objects not of type EMPTY
William Herald Snyder
2022-09-22 19:31:30 -0400
5d86a88411Normals importing as part of custom split set. Mesh import code moved to seperate file
William Herald Snyder
2022-09-19 14:39:02 -0400
Image sizing fix for material fill operator docs
Will
2022-05-05 11:45:51 -0400
4e2f6bf423Docs update for msh material property fill operator and menu entry
William Herald Snyder
2022-02-09 15:16:12 -0500
bdcd4c4aa9Integrated Starlord's feedback (quick-n-dirty object context submenu + operator for copying diffuse texture names to SWBF material properties for all selected objects' materials)
William Herald Snyder
2022-02-09 14:50:52 -0500
c3f5f0bed3Integrated 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)
William Herald Snyder
2022-01-28 17:28:12 -0500
091e295649Triangle winding order for strips accounted for
William Herald Snyder
2022-01-27 22:09:23 -0500
40343a2f69The last index of the last triangle strip in a segment is properly included + cleaner reading of STRP
William Herald Snyder
2022-01-27 18:34:53 -0500
a962b4475eChange Blender version to 2.80 to silence warning
William Herald Snyder
2022-01-20 23:42:36 -0500
637c3c2afaCatch segments with no valid geometry, read NDXL in try-except block
William Herald Snyder
2022-01-20 23:40:19 -0500
Apply suggestions from code review
#2
Will
2022-01-19 18:07:14 -0800
553438c4b4Merge branch 'fully_featured' of github.com:WHSnyder/SWBF-msh-Blender-Export into fully_featured
William Herald Snyder
2022-01-19 13:51:00 -0500
47bd3a3977Import+Export docs start
William Herald Snyder
2022-01-19 13:50:38 -0500
Check if nothing selected before applying anim
#1
Will
2022-01-18 15:46:30 -0500
dce3f4e498Skeleton 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
William Herald Snyder
2022-01-18 15:16:49 -0500
bae32bdfe4Other/unsupported material option with stub rendertypes and UI elements + fill MaterialProperties on import
William Herald Snyder
2022-01-15 11:45:38 -0500
c314592d48Dont include bone in exported anim if its not keyed or in preserved skel...
Will Snyder
2022-01-13 12:52:30 -0800
7244446dd9Fill 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
William Herald Snyder
2022-01-11 14:02:17 -0500
5eea77adf3Skeleton 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.
William Herald Snyder
2022-01-07 13:45:50 -0500
79543a1cd7Skeleton properties panel start
Will Snyder
2020-12-11 16:49:40 -0500
8a20c38132Animation batch import
William Herald Snyder
2020-12-11 11:50:03 -0500
b749e47536Correct pose-relative transforms for impure skeletons
William Herald Snyder
2020-12-10 23:47:45 -0500
49f89a1fdeAnimations importing correctly for most models, though some (acklay and human) are very wrong and others have one or two incorrect bones (at-at). Bones are imported as is and not made to look pretty in order to preserve animation ease. Letting users import cleaned up skeletons while preserving original transforms via some sort of context-menu addon might be worthwhile...
William Herald Snyder
2020-12-06 00:19:58 -0500
57909f758fAnimations importing with expected rotation conversion issues
William Herald Snyder
2020-12-06 04:11:12 -0500
c0c978af8bBone parenting fixed, anm2 reading, menu option for anim import
William Herald Snyder
2020-12-05 00:53:59 -0500
30bf326b9eAwfully slow (need to abandon bpy.ops) but correct bone parenting
Will Snyder
2020-12-04 01:22:58 -0500
440a3e7300MSH reader no longer reads up to the next multiple of 4, since files exported with ZETools seem not to abide by that rule. It doesn't matter if files are exported with this behavior, since the reading code now skips bytes until a known header is found, instead of just reading the next header blindly. Teancum's highsinger and xizor now importing just fine.
Will Snyder
2020-12-03 23:15:25 -0500
3dda2a0d77STRP importing, Teancum's highsinger and xizor break implying adaptations needed for ZETools-exported MSHs
Will Snyder
2020-12-04 03:33:46 -0500
b2ad1cfa1aMerge branch 'mshread' into fully_featured
Will Snyder
2020-12-03 18:38:35 -0500
7db0591cc0Armature extraction more robust (looks at skinning requirements, not just SKL2), automatic skin-skeleton reparenting, gave bone tails default epsilon position
William Herald Snyder
2020-11-22 00:24:20 -0500