Tuesday, November 25, 2025

Fixing FBX Import Errors with Unreal Engine5+ (Tangent Bases and Normals)

 Recently ran into some fbx import errors with Unreal regarding degenerate tangent bases, and nearly zero binormals/normals. You can research the real meaning of these issues for a better understanding of the root causes but I'm just gonna post the solutions that worked for me after trying a bunch of the options listed on forums around the internets. My models were built in 3ds max and showed no problems. Well, not entirely true. My Occlusion mapping/Lighting passes were not coming out right. In the process of modeling I had attached some parts that had been mirrored. I think this was the main source of the issues I encountered later and was fixed (mostly) by re-importing the fbx model after export before anything below. 

There are many posts about this online offering different solutions, depending on your DCC package. With Max, I found the solution involved just a few things. Obviously, you need proper UVW Unwrapping. Assuming you have this, it's a good idea to "Reset Scale". Next check for degenrates et. al. using "Modifiers/Retopology Tools/Mesh Inspector." Run the inspector and fix all errors listed in the Modifier. Now Export FBX with Tangents and BiNormals in FBX exporter. I usually use Triangulate as well.
    On Import into UE: Uncheck remove degenerates (especially for small objects).
    Import Normals and Tangents. 

This should get rid pf the errors upon import into Unreal.

But...... there are always some other factors that could be afflicting your goemetry and for that, I wish you good luck with the other solution posted around online.

Content for Marty the Marmot short

 Some renderings from Unreal of some of the content I'll be using in in my project "Marty the Marmot". You can check out some of my other posts for more details on Marty himself.

I've been modeling away for a while, banging out these props. A few of these are revisions to downloaded, free content that doesn't require attribution.
 

 
















 

Tuesday, November 4, 2025

Updates to Unreal Engine Master Material "SparkoMat"

  I have updated my "SparkoMat" Master Material for Unreal Engine. This version will work in UE5.3 and later. I noticed in the old version that some of the pins were not connected when opened in UE5. Why???... who knows. It was a little hard to spot at first so my apologies for not correcting this earlier. This version corrects that and adds some new features. Included in the download project is a 2nd version of the Material that works with Opacity requirements. You can see the material graphs for both materials below. R-Click and Open Image in New Tab to see it at full resolution. All other original information about the Material(s) is still available at the blog on the DAS website:

https://www.digitalanimation.net/post/sparkomat-dave-s-universal-unreal-engine-master-material 

 

Download SparkoMat5 Unreal Project Folder (2.1 MB  .zip) 

Release Notes:

1. Added options for unique UV channel for Ambient Occlusion textures. It works just like the other options for choosing your UV channel but is unique for AO.

2. Added option to use Ambient Occlusion normally, connected to the pin in the Material Properties, or use AO as a multiplier on top of the Diffuse property. This is a checkbox within the AO group when you create a Material Instance.

3. Changed the default Normal property to a color of 0,0,1 instead of 0.5, 0.5, 1. I was getting abnormal (no pun intended) behavior with the old color value. If this doesn't match with your usage experience, you can always change it back inside the Master Material. I left the V3 color in the Normal texture comment group is you want to re-wire it back in.

4. The new UE5.3 scene is just the Materials and Material Functions. Nothing else in the project folder unlike the previous download project that contained some sample objects and Material Instances.

 

Below are some screen grabs of the Material graph: 


SparkoMat5   Master Material Graph 
(
R-Click and Open Image in New Tab to see it at full resolution)

                                                    


SparkoMat5_Opacity  Master Material Graph  
(R-Click and Open Image in New Tab to see it at full resolution)



I have not made any changes to the original Master Material for vegetation. That Material is unique to my Vegetation Content for sale on FAB but likely has the same missing pin connections as these others. I'll be looking into that soon.

I hope this ends up being of some to use to you in your endeavors. Thanks! 

 

 

 

 

 


Sunday, June 15, 2025

Resuming Blog Posts for Digital Animation Services

     Several years ago I migrated my website to Wix. Therefore my Blog migrated as well which explains the long lag in any posts here. Seemed like an OK idea at the time and the Wix platform has served me well to be sure. However, I'm finding their pricing a little hard to swallow as discount periods have ended and time goes on. I intend to migrate off of Wix in the next year when my contract expires and as such, my Blog there will need to migrate as well. Unfortunately, as many already know, Wix's web design platform and blog are proprietary (I knew this going in but for some reason didn't think much of it at the time) and therefore a migration to a new platform will be a bit time consuming. Good thing I have a year! I have therefore decided to resume posting here on Blogspot/Blogger for the forseeable future. Since I have a massive following of up to 3 or 4 people, I don't anticipate this being a problem for the internet.

If it was not clear, my website and blog were entirely rebuilt when I migrated and are always available at  their original home: www.digitalanimation.net

Thanks!


Dave 

3ds Max Skin Modifier Tips

 A couple quick tips for working with the Skin Modifier in 3ds Max:

I ran across a few issues I had trouble resolving without some help from others on the interwebs.

1. I wanted to select the vertices belonging to a particular bone as I worked through the skinning process on my mesh. Though it was posted in a few places online, I figured I'd add to that tiny list of places by posting it here. Credit to the original maxscript author whose name I did not find online at any of the places it was reposted.

Just run this snippet of maxscript code and it will select all the vertices associated with the selected bone in the Skin Modifer:

            s = modpanel.getCurrentObject()
            -- if the current modifier selected is a skin modifier, then select the vertices
            if iskindof s Skin do
            (
                skinOps.selectVerticesByBone s
             )

Though this capability is obviously included in the basic SkinOps properties in maxscript, I am not aware of any way to do this natively in the Max UI. 

-------------------------------------------------------------- 

2. I also wanted to attach one skinned mesh to another, effectively combining the 2 skinned meshes into one and therefore the 2 Skin Modifiers as well leaving a single mesh with a single Skin Modifier. This was to make my life a little easier when I imported the character into Unreal Engine. I wanted only one Skeletal Mesh to deal with in Unreal. Again, I found the solution in a few places online so thought I would repost here as well. Credit to user PolyHertz from the original forum post in 2015 which can be found here:

https://polycount.com/discussion/162400/attaching-separate-meshes-and-retain-skinning-data-help-3dsmax-but-open-to-other-software

 The process involves adding a Skin Wrap Modifier with the following steps:

    1. Duplicate the meshes in place (select them all then press ctrl+V).
    2. Combine them, and add a Skin Wrap modifier to the resulting mesh.
    3. In the Skin Wrap modifier add the already skinned meshes, and change settings as needed.
    4. Convert the Skin Wrap modifier to a regular Skin modifier.
    5. Delete old non-combined meshes.

Happy Skinning!