[Utility] SB3Utility (GUI + Script) Releases and Support Discussion

Re: SB3Utility (GUI + Script)

Now that's even more weird that you can't produce problem same as mine. No wonder why no one else complained.

Textures look okay in Gimp.
View attachment 12476
Here is the unity file.

I don't have the actual "main source" that I used in porting, because I deleted it after I was done. I can provide tomorrow. Anything else I can provide?
 
Re: SB3Utility (GUI + Script)

Several points to be checked. In my latest tests I favoured HS. So I might have missed something for Unity4.

Fatal crash when rendering many meshes like in maps confirmed. I have seen much additional memory being consumed when the same scene is rendered, e.g. when the scene is rotated. The new renderer must have a memory leak and may be even a hard bug for certain angles.
Edit:
"D3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS: Therea are too many unique view objects." - original error messages including the typo.
Edit2:
Creation of those views per rendering frames eliminated - bug fixed. But there is a memory leak still. It is much smaller than before though. (RasterizerStates may be).

For the material / texture problem I need steps you took and the sources which allow me to reproduce. The part of SB3UtilityGUI.autosavescript.txt with such a session could be helpful too. The file you attached seems to be the last and corrected version, if you have the old file with the bad conversion please attach it too.

Edit3:
Additional findings:
Model001_24_Mesh122_0_2_0_0 has bad normals. Such a mesh's normals should be computed with a negative threshold.
The consequence for multiple meshes: if you compute normals with a negative threshold you can compute them for all meshes together. But for a threshold >= 0 the outcome is different, because the threshold is handled as distance to all vertices of all meshes. So the threshold must be chosen as small as possible.

Edit4:
Problem in HS found. cf_top_05.unity3d has an unusual header. This might need to be fixed. Investigating.
 
Last edited:
Re: SB3Utility (GUI + Script)

**Fatal crash when rendering many meshes like in maps confirmed.

**"D3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS: Therea are too many unique view objects." - original error messages including the typo.

**For the material / texture problem I need steps you took and the sources which allow me to reproduce. The part of SB3UtilityGUI.autosavescript.txt with such a session could be helpful too. The file you attached seems to be the last and corrected version, if you have the old file with the bad conversion please attach it too.

**Additional findings:
Model001_24_Mesh122_0_2_0_0 has bad normals. Such a mesh's normals should be computed with a negative threshold.
The consequence for multiple meshes: if you compute normals with a negative threshold you can compute them for all meshes together. But for a threshold >= 0 the outcome is different, because the threshold is handled as distance to all vertices of all meshes. So the threshold must be chosen as small as possible.

**Yeah I have that problem of crashes when I started using the new tool. Jump back to old version that supports DX9. Glad that it's confirmed.
**I haven't seen this error log in the Log. The tool just crashes when I view the model in renderer. (v1.2.2)

**The source file was in mesh.acii, I first converted to OBJ format because I need to edit text in the MTL file to replace all the PNG JPEG or TGA format to DDS. Exported in FBX format. In SB3Tool, I set the material template as "Marmoset Diffuse Alpha" setting the Cutoff value 0.35 and ported all the work as I usually do.
I will redo the work again with the bad format one and share you the file. How do I extract the autosavescript.txt?

**Model_24 has bad normal! I looked the entire map to see if there is any broken meshes like I have in my TR work. Since this is one mesh problem and map is BIG! I must have missed it. I will fix it again. Thanks.
I didn't know negative threshold is also used to fix bad normals.
 
Re: SB3Utility (GUI + Script)

No, dont do the whole bad file again. It would be sufficient to produce one bad example material or texture. Just note the time when you start SB3UGS and when you exit. At the end of the SB3UtilityGUI.autosavescript.txt you will find the commands generated and applied from the last session.

The negative threshold will not generally fix normals. This produces hard normals while a positive threshold produces soft normals.

I will release a new version with two fixes tonight: for the renderer crash and the cf_top_05.unity3d and cm_hair_00.unity3d files from HS. Just need a bit to eat :)

SB3UGS_v1.2.5

Download:
sendspace, megafileupload
SHA256: 88800270469614EC5A7004C34AAE8D5BD3DC38255E43C179205B77C21D42C4F2

Sources:
megafileupload, sendspace
 
Last edited:
  • Like
Reactions: roy12
Re: SB3Utility (GUI + Script)

Thanks! I found the problem in the map was caused by the textures indeed. When I exported one from the broken version it was smaller than in the correct map. Mipmaps, may be because everything else seems to be the same. In your sources the texture had the size of the correct version - flipped of course.

This means two things:
1) when the source texture was replaced (and flipped) it got shorter with newer versions of Sb3UGS. It is corrupt and cant be loaded neither by Gimp nor by Sb3UGS again, but the size is that of the original texture without mipmaps.
2) in the correct map the texture is shown having no mipmaps which is definitely wrong. The texture has mipmaps.
So this is at least a double bug.
 
Re: SB3Utility (GUI + Script)

I feel like it's accepting mipmaps as main textures.
Your point number 2 bit confusing:
The V1.0.54Epsilon got a bug and skipping mipmaps? Because the correct map you are referring, for that I used V1.0.54. Can this bug be also confirm in 1.053Kappa please? I just want to know that's it.
 
Re: SB3Utility (GUI + Script)

Sorry, my fault. I am too long working with Unity5 files.

If mipmaps in Unity4 files are present then Sb3UGS shows '1', but '1' in Unity5 files means no mipmaps. The display is correct, I just mixed it up.

Edit:


SB3UGS_v1.2.6

Fixed, but I took the liberty to regenerate the mipmaps with DX11 default. This means if you have a texture with 2 mipmaps with width=512 height=1024 then you get 11 mipmaps - not 2!
If you really want the exact number of mipmaps you must flip your texture externally and replace/add it in the Texture editor with unchecked FlipY option.

Download:
sendspace
SHA256: CA32E34D073DD9AC75471A6407D0288BF36C4CCA923C5C7BC5C2908BA4CD5BBE

Sources:
sendspace
 
Last edited:
Re: SB3Utility (GUI + Script)

There seems to be a bug of some kind importing Uncompressed ARGB32 DDS without mipmaps. On import the display levels seem to change on the rendered preview in the texture tab. SB3USG 1.0.54 doesn't have this issue.

Randomly there is also an issue with getting DX11 out-of-memory (DX9 in 1.0.54), GDI errors, or unspecified Out of Memory errors, when selecting and double-clicking with 4K DDS textures containing mipmaps.
 
Re: SB3Utility (GUI + Script)

Sorry, cant reproduce the problem with ARGB32 DDS without mipmaps. Do you have such a texture? Or does it happen unregularly?

I wouldn't be surprised when the new version would run out of memory for such big textures as well. Currently I tried to resize big images proportionally to let this happen later, but I couldn't find a leak.

I will not fix anything in the old version. The goal is to complete the new version as needed.
 
Re: SB3Utility (GUI + Script)

Sorry, cant reproduce the problem with ARGB32 DDS without mipmaps. Do you have such a texture? Or does it happen unregularly?

I wouldn't be surprised when the new version would run out of memory for such big textures as well. Currently I tried to resize big images proportionally to let this happen later, but I couldn't find a leak.

I will not fix anything in the old version. The goal is to complete the new version as needed.


The issue with Uncompressed ARGB32 DDS without mipmaps occurs when importing HS normal maps, but I haven't tested it against other textures, so I don't know the extent.

YYFcDfXk.png


  • Open cf_m_base.unity3d
  • Export cf_n_body_00_00
  • Open cf_n_body_00_00-DXT5.dds with NVIDIA Texture Tools
  • Save as Uncompressed ARGB32 without mipmaps, cf_n_body_00_00-ARGB32.dds
  • Import cf_n_body_00_00-ARGB32.dds
  • Issue occurs
  • Save as Uncompressed ARGB32 with mipmaps, cf_n_body_00_00-ARGB32.dds
  • Import cf_n_body_00_00-ARGB32.dds
  • Issue doesn't occur



As for the out-of-memory issue, I'm only worried about the latest version at this point. Is there no way to force Sb3UGS to just allocate more GPU VRAM & System RAM to avoid such issues? Neither seem to be using more than ~800MB of physical ram when this occurs, though I guess virtual memory allocation could still be an issue. What about something like a 64bit build of Sb3UGS?
 
Re: SB3Utility (GUI + Script)

The Image class which is used for the previews has only one format which allows to show transparency. So Sb3UGS must convert all 32bit textures across all formats into png internally to feed them into the preview. The difference is still very big, I must admit.

The memory discussion we had a while ago led to a special LAA version as a workaround. I dont plan to switch to 64bit or want to start to make two versions and I think there are still modders with 32bit systems. As a workaround, you can make every 32bit program large-address-aware. But this doesn't solve any memory leak. The program just allocates more and more memory until it finally reaches the extended end. I guess I will search for the leak again, but not soon. You will check the look in the game anyway, so why do you need a preview at file level? Switch off the Image preview that will extend the time you can work with Sb3UGS.
 
Re: SB3Utility (GUI + Script)

Is it possible to use this with Windows Scripting Host so we have a full(er) programming language to use?

Something like

var unityPlugin = GetObject("C:/Illusion/SB3/Plugins/UnityPlugin.dll", "UnityPlugin")
var parser = unityPlugin.OpenUnity3d("C:\illusion\HoneySelect\abdata\adv\00.unity3d")
var editor = unityPlugin.Unity3dEditor(parser)
var assets = editor.GetAssetNames(True)

for (var i = 0 ; i < assets.length; ++i) {
if (assets.Name == "c00_00") {
editor.ExportMonoBehaviour(asset, "C:\dump")
}
}
 
Re: SB3Utility (GUI + Script)

The Image class which is used for the previews has only one format which allows to show transparency. So Sb3UGS must convert all 32bit textures across all formats into png internally to feed them into the preview. The difference is still very big, I must admit.
What is the reason this doesn't occur if the file has mipmaps?

Looking into it a bit more, it seems with 1.0.54, ARGB32 DXT5 and Uncompressed ARGB32 DDS without mipmaps are both displayed the same as my AFTER screenshot in 1.2.6

Could the issue actually be that 1.2.6 is previewing ARGB DXT5 textures as 24bit images without alpha, while 1.0.54 previewed ARGB DXT5 as 32bit images with alpha?

Either way, I guess this is something which affect the preview only?

As a workaround, you can make every 32bit program large-address-aware.
I went ahead and did this for 1.2.6 if anyone wants it:
http://www60.zippyshare.com/v/GS4wBppZ/file.html
 
Re: SB3Utility (GUI + Script)

Yes, the preview just gets the data from the asset and shows it and may be shows it differently for reasons of conversion or a bug in Sb3UGS, but that doesn't change the asset's data. Sb3UGS is not implemented stricly MVC conform but I'll try to keep that concept in mind during implementation :)
 
Re: SB3Utility (GUI + Script)

Is there a way of exporting the sprite data even if it is just plain binary?

UPDATE: Actually I was able to extract it using the following script:

LoadPlugin(PluginDirectory+ "UnityPlugin.dll")

unityParser1 = OpenUnity3d(path="C:\illusion\HoneySelect\HoneySelect_64_Data\sharedassets14.assets")
unityEditor1 = Unity3dEditor(parser=unityParser1)
unityEditor1.GetAssetNames(filter=True)
ExportAsset(parser=unityParser1, unityParser1.Cabinet.Components[195],path=fo\asdf")
ExportAsset(parser=unityParser1, unityParser1.Cabinet.Components[76],path="fo\sp_h_00_00_00")
ExportAsset(parser=unityParser1, unityParser1.Cabinet.Components[61],path="fo\sp_h_01_00_00")


Though when I looked at the file I can't seem to find the corresponding integers that make sense for the coordinates.
 
Last edited:
Re: SB3Utility (GUI + Script)

There are none, because vertices in Sprites are IEEE floating point values, three per vertex.

If you wanted to decode the exported asset you should take a look into the sources of Sb3UGS. Sprite.cs includes the parser for decoding and encoding.

Edit:
Sorry, I had no answered your question about loops in the scripting language. Just seen it now.

I have not such plans currently and for exporting several assets you can select them together in the list before using the menu function.
 
Last edited:
Re: SB3Utility (GUI + Script)

SB3UGS_v1.2.7

  • Fix for DDS in RGB24 format and DDS doesn't need to end with "-RGB24" any longer.
  • Fixed "Inventory Offset" in Unity files and removed Menu item
  • Added "External References"
  • Fixed XX preview of textures
I will explain the "External References" handling a bit later. It allows to use external Materials and external Textures of unreferenced files by extending the list of external file entries.

Download:
megafileupload, sendspace
SHA256: 2334C3BE86BB6ACBB09EA5BFA60903D8EAE7A1CA3748D28DE7A95A3ABBC60CF0

Sources:
megafileupload, sendspace
 
Last edited:
  • Like
Reactions: Aastaroth
Re: SB3Utility (GUI + Script)

I think if the DLLs can somehow be imported into another scripting language using CSCript it would simplify things.
 
Re: SB3Utility (GUI + Script)

The Image preview for Uncompressed RGB24 DDS w/ mipmaps has the Red<->Blue colors channels swapped.
This also affects Assets->Export, but not Texture->Export.
Builds after 1.0.54e all seem to have this bug.

Only occurs when the Uncompressed RGB24 DDS w/ mipmaps is contained within a Unity3D file.
Does not occur with Uncompressed RGB24 DDS without mipmaps.
Seems easy to reproduce when replacing textures in Unity3D mod files, saving, and then re-opening the unity3d.
 
Re: SB3Utility (GUI + Script)

SB3UGS_v1.2.8

  • Fixed vanished shader selection in Material editor after "Refresh" in the Object Tree
  • Fixed export and preview of textures in RGB24 format with mipmaps
  • Fix for showing wrong external material being selected for a submesh
  • Added "(none)" and "(external)" material/texture in Mesh/Material editor

Known Issues:
  1. The change in 1.2.5 for cf_top_05.unity3d, cm_hair_00.unity3d caused problems for list files (in abdata\list\characustom). Issue is fixed, but not released yet.
  2. list files dont show the asterisk for changes in TextAssets.

Download:
megafileupload, sendspace

Sources:
megafileupload, sendspace



SB3UGS_v1.2.9

Fixes for the issues mentioned above.

Known Issues:
External materials aren't used by the game and you see purple meshes. Not all external materials are stored in the AssetBundle asset - fix in progress. Workaround: copy external materials into the file of the mesh.

Download:
megafileupload, sendspace

Sources:
megafileupload, sendspace
 
Last edited:
Re: SB3Utility (GUI + Script)

Does version 1.2.9 fixes the "Copy-Paste" animator?
 
Re: SB3Utility (GUI + Script)

Can you make it export the audio to some other format that more universal like FLAC if it is lossless?
No, Sb3UGS exports exactly what is in the assets. Please use the FSBtool for conversions. It supports many formats.



Does version 1.2.9 fixes the "Copy-Paste" animator?
It wasn't broken as I wrote. If anything was broken - and I cant judge because you didn't tell me the version you used - then it might have been the incorrect file headers.



I'm trying to use SB3Utility to mod hair, but nothing shows up in the renderer, what am I doing wrong? I have installed everything needed for it to work.View attachment 12624
Your attachment isn't visible to me. So, here are the basic steps to see something in the renderer.
  1. open file or drag it into Sb3UGS.
  2. open an Animator
  3. switch to the Mesh tab and select a mesh.
  4. if nothing is shown have a look into the Mesh editor on the right side. An external mesh cant be shown in the current version of Sb3UGs.
 
  • Like
Reactions: fguelffstan

Users who are viewing this thread

Latest profile posts

yonatanzxc123 wrote on Ryzen111's profile.
nono2014 wrote on Otokonoko's profile.
hope you can reupload this
RJ344682 5.71GB
mizuno ai wrote on Otokonoko's profile.
can you reupload RJ422728 RJ397938 RJ351580 RJ01076499?thanks