125ad2792c
Fixed import of animations to allow for bulk import
itdominator2023-05-28 13:47:33 -05:00
cc4a1b0e04
Create sv faces from half-edge list. Current method doesn't check for duplicates, but Blender seems to filter them anyhow.
William Herald Snyder2023-01-08 20:54:37 -05:00
613cb20678
Many 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 Snyder2022-10-09 00:15:29 -04:00
92fdc3a12b
Many 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 Snyder2022-10-09 00:15:29 -04:00
432c9ff380
Hidden objects will be unhidden after calling evaluated_get, so they must be tracked beforehand when exporting.
William Herald Snyder2022-10-08 22:10:03 -04:00
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.
William Herald Snyder2022-10-08 22:07:44 -04:00
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
William Herald Snyder2022-10-08 21:31:08 -04:00
7b9f5c9cfb
Prune segments with empty triangle strips. ZE and most versions of ZETools require triangle strips.
v1.2.0
Will Snyder2022-10-06 10:23:13 -07:00
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)
William Herald Snyder2022-10-05 09:23:02 -04:00
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.
William Herald Snyder2022-10-04 13:27:07 -04:00
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...
William Herald Snyder2022-10-04 09:54:28 -04:00
b2bd9c8316
Blender 2.80-2.83 supports additive blending, so FillMaterialProps will catch that if present
William Herald Snyder2022-10-04 07:54:25 -04:00
56f6ce6940
Fill doublesidedness and transparency (TODO: figure out additive mapping/emulation) from material settings
v1.2.0-rc
William Herald Snyder2022-10-03 23:06:33 -04:00
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.
William Herald Snyder2022-10-03 22:55:19 -04:00
8bf2196991
Don't change rendertype on matfill and fill texture_0 as well as diffuse map
William Herald Snyder2022-10-03 21:16:59 -04:00
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.
William Herald Snyder2022-10-03 12:07:52 -04:00
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
William Herald Snyder2022-10-02 18:19:29 -04:00
9a344d0652
Simple UV scrolling nodes in place. Simple approach will probably remain since the only interaction will be with image textures nodes
William Herald Snyder2022-10-02 16:30:11 -04:00
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
William Herald Snyder2022-10-02 15:55:47 -04:00
6e05bba9e5
Fix import order bug in materials_to_blend that invalidated script reloading
William Herald Snyder2022-10-02 13:29:02 -04:00
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...
William Herald Snyder2022-09-29 07:11:47 -04:00
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.
William Herald Snyder2022-09-29 15:18:58 -04:00
43b1f9650e
When gathering bone transforms during armature expansion, don't assume armature's local transform is zeroed
William Herald Snyder2022-09-28 11:27:52 -04:00
aa8f05dd42
Create mesh object for any model with geometry regardless of type + triangle strip winding order bugfix
William Herald Snyder2022-09-28 14:05:37 -04:00
9bd8479e31
Reorg + use generation operator when initially creating Blender materials + make all texture fields in SWBF materials properties paths
William Herald Snyder2022-09-28 08:47:43 -04:00
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.
William Herald Snyder2022-09-27 07:56:25 -04:00
13a92e46c6
Always calculate and use split normals when exporting mesh in order to account for sharp edges
William Herald Snyder2022-09-23 11:50:29 -04:00
5d86a88411
Normals importing as part of custom split set. Mesh import code moved to seperate file
William Herald Snyder2022-09-19 14:39:02 -04:00
fe1e16a117
Image sizing fix for material fill operator docs
Will2022-05-05 11:45:51 -04:00
4e2f6bf423
Docs update for msh material property fill operator and menu entry
William Herald Snyder2022-02-09 15:16:12 -05:00
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)
William Herald Snyder2022-02-09 14:50:52 -05:00
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)
William Herald Snyder2022-01-28 17:28:12 -05:00
40343a2f69
The last index of the last triangle strip in a segment is properly included + cleaner reading of STRP
William Herald Snyder2022-01-27 18:34:53 -05:00
553438c4b4
Merge branch 'fully_featured' of github.com:WHSnyder/SWBF-msh-Blender-Export into fully_featured
William Herald Snyder2022-01-19 13:51:00 -05:00
d00dabc8eb
Merge pull request #1 from WHSnyder/fully_featured
SleepKiller2022-01-19 16:25:18 +13:00
58e229f6ad
Check if nothing selected before applying anim
Will2022-01-18 15:46:30 -05:00
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
William Herald Snyder2022-01-18 15:16:49 -05:00
bae32bdfe4
Other/unsupported material option with stub rendertypes and UI elements + fill MaterialProperties on import
William Herald Snyder2022-01-15 11:45:38 -05:00
c314592d48
Dont include bone in exported anim if its not keyed or in preserved skel...
Will Snyder2022-01-13 12:52:30 -08:00
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
William Herald Snyder2022-01-11 14:02:17 -05:00
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.
William Herald Snyder2022-01-07 13:45:50 -05:00