hexabits / nifskope

Other
245 stars 54 forks source link

Starfield fails to load meshes with a Mesh Path containing a period #77

Closed JasonJShuler closed 3 months ago

JasonJShuler commented 5 months ago

It would appear the '.' character is not permitted in the Mesh Path field. I tried using a dot to represent lod, and Starfield wouldn't show the object, while NifSkope doesn't report any errors and renders everything fine.

Might not hurt to make sure there's no dots in there so others don't make my mistake?

That is, I named the mesh file something like "awesomeshipmod.1.mesh" and put "awesomemods\awesomeshipmod.1" in the mesh path. When I changed it to "_1" it resolved.

Thanks!

fo76utils commented 5 months ago

This is due to how sanitizing asset paths currently handles extensions: it tries to ensure that the full path has ".mesh" extension, but any existing incorrect extension is removed first. So, "textures/image.png" becomes "textures/image.dds" instead of "textures/image.png.dds", for example. And "awesomeshipmod.1" is replaced with "awesomeshipmod.mesh".

It would be easy however to change this behavior so that the ".mesh" is always just appended if the path does not already end with ".mesh".

JasonJShuler commented 4 months ago

I have wondered if there will be (or are) any consequences for not following the hash-based naming convention used in vanilla. It seems like something you wouldn't do without a good reason, given what a royal pain it is.

Anyhoo - I've stopped trying to use meaningful mesh names - not for compatibility. Pure laziness. Thanks as always!

On Mon, Apr 8, 2024 at 5:44 AM fo76utils @.***> wrote:

This is due to how sanitizing asset paths currently handles extensions: it tries to ensure that the full path has ".mesh" extension, but any existing incorrect extension is removed first. So, "textures/image.png" becomes "textures/image.dds" instead of "textures/image.png.dds", for example. And "awesomeshipmod.1" is replaced with "awesomeshipmod.mesh".

It would be easy however to change this behavior so that the ".mesh" is always just appended if the path does not already end with ".mesh".

— Reply to this email directly, view it on GitHub https://github.com/hexabits/nifskope/issues/77#issuecomment-2042312746, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHDGDXIUOGAXY5WWPB2XHVTY4JRIRAVCNFSM6AAAAABF2GY5G6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANBSGMYTENZUGY . You are receiving this because you authored the thread.Message ID: @.***>

JasonJShuler commented 3 months ago

There isn't anything that needs to be done, so I'll go ahead and close this