Here's a script you can throw on an object to turn all sub-mesh shaders to Opaque. You'll be able to assign certain sub-meshes (hair!) as ones to skip. This totally assumes that you're using the standard shader (which is what iClone exports to). This fixes them at run-time; they'll still be wonky in the editor.
public class FixIcloneShaders : MonoBehaviour
{
public List<SkinnedMeshRenderer> ShadersToSkip;
private void Start()
{
List<SkinnedMeshRenderer> allRenderers = new List<SkinnedMeshRenderer>(gameObject.GetComponentsInChildren<SkinnedMeshRenderer>());
foreach (SkinnedMeshRenderer smr in allRenderers)
{
if (!ShadersToSkip.Contains(smr))
{
foreach (Material m in smr.materials)
{
FixMaterial(m);
}
}
}
}
private void FixMaterial(Material m)
{
m.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One);
m.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.Zero);
m.SetInt("_ZWrite", 1);
m.DisableKeyword("_ALPHATEST_ON");
m.DisableKeyword("_ALPHABLEND_ON");
m.DisableKeyword("_ALPHAPREMULTIPLY_ON");
m.renderQueue = -1;
}
}