Commit Graph

119 Commits

Author SHA1 Message Date
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 45782f9a2f Docs update for bones with geometry 2022-10-01 07:56:26 -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
Will fe1e16a117
Image sizing fix for material fill operator docs 2022-05-05 11:45:51 -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 7fe5b48d0b
Merge pull request #2 from WHSnyder/fully_featured
Docs start, good enough for community testing
2022-01-20 15:08:46 +13:00
Will 24312cc3a0
Apply suggestions from code review
Co-authored-by: SleepKiller <SleepKiller@users.noreply.github.com>
2022-01-19 18:07:14 -08:00
William Herald Snyder 553438c4b4 Merge branch 'fully_featured' of github.com:WHSnyder/SWBF-msh-Blender-Export into fully_featured 2022-01-19 13:51:00 -05:00
William Herald Snyder 47bd3a3977 Import+Export docs start 2022-01-19 13:50:38 -05:00
SleepKiller ae6493d7f2 update readme.md, __init__.py 2022-01-19 16:47:05 +13:00
SleepKiller d00dabc8eb
Merge pull request #1 from WHSnyder/fully_featured
Import (all but cloth) + Export (skins and anims)
2022-01-19 16:25:18 +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
Will Snyder c320310084 zaa transforms properly readjusted wrt omitted effectors/roots 2021-01-11 12:25:03 -05:00
Will Snyder 6f2c1cf168 CRC rewrite 2021-01-07 14:18:31 -05:00
Will Snyder e0a71bc899 Cleanup, reader and extraction code commented 2021-01-07 13:34:35 -05:00
Will Snyder e67e675ee7 zaabin import 2021-01-07 00:26:19 -05:00
SleepKiller eb256078cc Create license 2021-01-06 13:25:05 +13:00
Will Snyder 79543a1cd7 Skeleton properties panel start 2020-12-11 16:49:40 -05:00
William Herald Snyder 8a20c38132 Animation batch import 2020-12-11 11:50:03 -05:00
William Herald Snyder b749e47536 Correct pose-relative transforms for impure skeletons 2020-12-10 23:47:45 -05:00
William Herald Snyder 49f89a1fde Animations 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... 2020-12-06 00:19:58 -05:00
William Herald Snyder 57909f758f Animations importing with expected rotation conversion issues 2020-12-05 04:11:12 -05:00
William Herald Snyder c0c978af8b Bone parenting fixed, anm2 reading, menu option for anim import 2020-12-05 00:53:59 -05:00
Will Snyder 30bf326b9e Awfully slow (need to abandon bpy.ops) but correct bone parenting 2020-12-04 01:22:58 -05:00
Will Snyder 440a3e7300 MSH 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. 2020-12-03 23:15:25 -05:00
Will Snyder 3dda2a0d77 STRP importing, Teancum's highsinger and xizor break implying adaptations needed for ZETools-exported MSHs 2020-12-04 03:33:46 -05:00
Will Snyder 617118bfd8 Name agnostic armature handling, better export options 2020-12-03 20:10:16 -05:00