diff --git a/CUE4Parse b/CUE4Parse index c6140adb..8abb7f35 160000 --- a/CUE4Parse +++ b/CUE4Parse @@ -1 +1 @@ -Subproject commit c6140adb909202ad7fe45a329b4f35153bb9007c +Subproject commit 8abb7f35bd92a2c1087df690124493a3484f83ec diff --git a/FModel/ViewModels/ModelViewerViewModel.cs b/FModel/ViewModels/ModelViewerViewModel.cs index 80a68d00..7f29263b 100644 --- a/FModel/ViewModels/ModelViewerViewModel.cs +++ b/FModel/ViewModels/ModelViewerViewModel.cs @@ -216,7 +216,7 @@ namespace FModel.ViewModels _geometries.Add(new MeshGeometryModel3D { Transform = new RotateTransform3D(new AxisAngleRotation3D(new Vector3D(1,0,0), -90)), - Name = materialInstance.Name.Replace('-', '_'), Geometry = builder.ToMeshGeometry3D(), + Name = FixName(materialInstance.Name), Geometry = builder.ToMeshGeometry3D(), Material = m, IsRendering = isRendering, Tag = false // flag }, camAxis); } @@ -280,7 +280,7 @@ namespace FModel.ViewModels var (m, isRendering, isTransparent) = LoadMaterial(unrealMaterial); _geometries.Add(new MeshGeometryModel3D { - Name = unrealMaterial.Name.Replace('-', '_'), Geometry = builder.ToMeshGeometry3D(), + Name = FixName(unrealMaterial.Name), Geometry = builder.ToMeshGeometry3D(), Material = m, IsTransparent = isTransparent, IsRendering = isRendering, Tag = false // flag }, camAxis); } @@ -328,6 +328,12 @@ namespace FModel.ViewModels parameters.MetallicValue = 1; break; } + case FGame.ShooterGame: + { + parameters.RoughnessValue = 1; + parameters.MetallicValue = 1; + goto case FGame.Gameface; + } case FGame.Gameface: { // GTA's Specular Texture Channels @@ -394,6 +400,17 @@ namespace FModel.ViewModels return ret; } + private string FixName(string input) + { + if (input.Length < 1) + return "Material_Has_No_Name"; + + if (int.TryParse(input[0].ToString(), out _)) + input = input[1..]; + + return input.Replace('-', '_'); + } + private void Clear() { _meshes.Clear();