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

Thank you very much
The "Replace" button works fine now, just because i didn't know how to use it before
i select the texture of unity3d ,then i drop the image that i want to replace into SB3UG and use "replace" button ,save unity3d and it works

Thanks alot ! i really appreciate it !
 
I don't know if the tool is updated or not. Is there any chance if the tool can also read the material as well when opening mesh? I mean in SBPR. When I open a file. It's gives a detail about the mesh model, materials & it's shader and texture. I hope it's not too much to ask. If not possible then thanks any way.
 
I don't know if the tool is updated or not. Is there any chance if the tool can also read the material as well when opening mesh? I mean in SBPR. When I open a file. It's gives a detail about the mesh model, materials & it's shader and texture. I hope it's not too much to ask. If not possible then thanks any way.
If you open both the mesh file and the material file at the same time in SB3UGS you can see all the material information when you select the animator and the animator material just like you did in SBPR. You also get in the render window the mesh with the texture on.
 
[Description]
Hi ,
i just did a test to detect if exporting textasset then re-import it back into unity3d would change the file content
(if the new file has duplicated content with the original file)
-I make a copy of an unity3d
-I tried exporting textasset from it, then re-import it back (without changing anything in that textasset)
-Then i use clonespy (a duplicate file finder program ,download at http://www.clonespy.com/?Download)
to detect if the new re-imported file is duplicated with the original file (the file that i make a backup)
here is the result
for some file ,the result file and the original file are duplicated (has the same content) :
like this file, you can make a test with it "cf_t_eyes_23.unity3d" ,you can download it here
https://drive.google.com/file/d/0B8EC-8K2RaK8WFIwYnFlOFJST3M/view?usp=sharing

but for most of files, the content of the result file is changed (different with the original)
like this "cf_t_eyes_21.unity3d"
https://drive.google.com/file/d/0B8EC-8K2RaK8QkxlTV9zVWVqc1U/view?usp=sharing

[Suggestions/Questions]
So i wonder if it 's possible to make the import textasset processing not make change to the file content (if the import textasset is the same with the one in unity3d) with all files ?


Thanks in advance
P/S : It seems that the past version of SB3UG (before 2015) the file content is not changed when importing textasset, but i'm not sure ,because i only made some test at that time)
 
Last edited:
An original file always changes when saved with Sb3UGS. Sb3UGS uses minimal gaps between assets while Unity Editor produces bigger gaps. So if you want to compare files start by opening and saving the file immediately. Then replace any content and compare the current file with the bak1 version.

I found that Illusion used different line breaks. Sb3UGS aligns this. But that caused no problems in other games.

Duplicate names will always be a problem when replacing. You have to rename an asset first, and rename it back after replacement. Or else it can happen that the wrong asset is replaced.
 
Hey enimaroah,

I've been trying to add new moles to Honey Select, but I can't get it to work properly.

I tried the usual, copying cf_t_mole_00.unity3d, changing its CAB string, then replacing a texture with mine, and then pointing to this in my custom list.

The entry gets added, but when I select it, nothing happens (whatever was applied before stays, no change shown), and the log throws this error:

Code:
NullReferenceException: Object reference not set to an instance of an object
  at AssetBundleManager.LoadAsset (System.String assetBundleName, System.String assetName, System.Type type, System.String manifestAssetBundleName) [0x00000] in <filename unknown>:0 
  at CommonLib.LoadAsset[Texture2D] (System.String assetBundleName, System.String assetName, Boolean clone, System.String manifestName) [0x00000] in <filename unknown>:0 
  at CharCustom.LoatTextureInfoBase (System.Collections.Generic.Dictionary`2 dictTex, System.Int32& id, UnityEngine.Texture2D& diffuse, UnityEngine.Texture& normal, UnityEngine.Texture& detail) [0x00000] in <filename unknown>:0 
  at CharFemaleCustom.LoatTextureInfo (TypeFemaleTexture type, System.Int32& id, UnityEngine.Texture2D& diffuse, UnityEngine.Texture& normal, UnityEngine.Texture& detail) [0x00000] in <filename unknown>:0 
  at CharFemaleCustom.CreateFaceTexture () [0x00000] in <filename unknown>:0 
  at CustomMenu.SmKindColorD.OnChangeType (UnityEngine.GameObject objClick, Boolean value) [0x00000] in <filename unknown>:0 
  at CustomMenu.SmKindColorD+<SetButtonClickHandler>c__AnonStoreyC0.<>m__DA (Boolean value) [0x00000] in <filename unknown>:0 
  at UnityEngine.Events.InvokableCall`1[System.Boolean].Invoke (System.Object[] args) [0x00000] in <filename unknown>:0 
  at UnityEngine.Events.InvokableCallList.Invoke (System.Object[] parameters) [0x00000] in <filename unknown>:0 
  at UnityEngine.Events.UnityEventBase.Invoke (System.Object[] parameters) [0x00000] in <filename unknown>:0 
  at UnityEngine.Events.UnityEvent`1[System.Boolean].Invoke (Boolean arg0) [0x00000] in <filename unknown>:0 
  at UnityEngine.UI.Toggle.Set (Boolean value, Boolean sendCallback) [0x00000] in <filename unknown>:0 
  at UnityEngine.UI.Toggle.Set (Boolean value) [0x00000] in <filename unknown>:0 
  at UnityEngine.UI.Toggle.set_isOn (Boolean value) [0x00000] in <filename unknown>:0 
  at UnityEngine.UI.Toggle.InternalToggle () [0x00000] in <filename unknown>:0 
  at UnityEngine.UI.Toggle.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) [0x00000] in <filename unknown>:0 
  at UnityEngine.EventSystems.ExecuteEvents.Execute (IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData) [0x00000] in <filename unknown>:0 
  at UnityEngine.EventSystems.ExecuteEvents.Execute[IPointerClickHandler] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.EventFunction`1 functor) [0x00000] in <filename unknown>:0 
UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object)
UnityEngine.DebugLogHandler:LogException(Exception, Object)
UnityEngine.Logger:LogException(Exception, Object)
UnityEngine.Debug:LogException(Exception)
UnityEngine.EventSystems.ExecuteEvents:Execute(GameObject, BaseEventData, EventFunction`1)
UnityEngine.EventSystems.StandaloneInputModule:ProcessMousePress(MouseButtonEventData)
UnityEngine.EventSystems.StandaloneInputModule:ProcessMouseEvent(Int32)
UnityEngine.EventSystems.StandaloneInputModule:ProcessMouseEvent()
UnityEngine.EventSystems.StandaloneInputModule:Process()
UnityEngine.EventSystems.EventSystem:Update()

It throws the error every time I select the new Mole entry.

I tried using another unity3d file, like the eyeshadow one. That way it does load the texture when the entry gets selected, but...

(see attached pic if it doesn't load)
attachment.php


I'm gonna try other unity3d files, but maybe something's up with moles.

EDIT:

Ok, found one that works, that was fast. Use cf_t_lip_00.unity3d as template to add moles if you need to add some. It works fine. This could be added as documentation somewhere.
 

Attachments

  • wot.JPG
    wot.JPG
    111.2 KB · Views: 437
Last edited:
Thanks for your report!

I had posted this problem at two places, but none of them were proper I must admit. My apologies for this.

But the good news is that this problem is addressed with the next update. All unknown and irregular bytes in the file header of Unity5 files will be gone. This might even allow to work crisscross with other tools. I hope I get this ready today.
 
:loudverdict:
And here we are with SB3UGS_v1.3.0!

This completes the support for all the deployment types for asset bundles: uncompressed, chunk-based compressed and stream-based compressed. HS is uncompressed, Secrossphere is stream-based compressed and VRKanojo Demo is chunk-based compressed. The latter title is NOT yet fully supported because Unity5.4.2 has additionally changed asset types. Still you can see and even mod some of the files already with this release.

The important feature of chunk-compression was the key to remove all cryptic header logic which produced errors like the one above reported by roy12. And this is because the header of even uncompressed asset bundles is chunk-compressed.

Note! Files stored with older versions of Sb3UGS should be editable with the new version. My tests with a few were successful as is expected, otherwise the games would not have accepted them. But as a precaution I have some debug output for certain error conditions. Please attach this output in your reports if the new Sb3UGS should fail to read files.

Two additional fixes:
  • Prevent crash during saving when sound was playing
  • Fix for crash (DXGI_ERROR_INVALID_CALL) during ExportTexture() with SB3UtilityScript.exe

Download:
sendspace, megafileupload

Sources:
sendspace, megafileupload

Known issues:
  • Exporting big textures may need to be done with the script version of Sb3UGS because of memory problems. Most often this happens if Sb3UGS must flip. The following script allows to export such big textures (even with SB3UtilityGUI.exe):
    Code:
    LoadPlugin(PluginDirectory+"UnityPlugin.dll")
    
    unityParser = OpenUnity3d(path="d:\VRKanojo Demo\abdata\mat\face\00.unity3d")
    //but this exports flipped!
    //ExportTexture(parser=unityParser, "sakura_t_face_d")
    
    unityEditor = Unity3dEditor(parser=unityParser, False)
    unityEditor.GetAssetNames(filter=True)
    animatorEditor = AnimatorEditor(cabinet=unityParser.Cabinet)
    texIdx = unityEditor.ComponentIndex("sakura_t_face_d")
    animatorEditor.AddTextureToEditor(unityParser.Cabinet.Components[texIdx])
    animatorEditor.ExportTexture(id=0, path="D:\VRKanojo Demo\abdata\mat\face", flip=False)

  • Flipping of DDS textures always converts to uncompressed. Faster. No quality loss. But incorrect and requires more memory.
 
Last edited:
  • Like
Reactions: plasticmind
Hi again
,i have an issue, please have
Description

I use external scripting program (autohotkey) to write script (import.txt) for sb3ug replace current selected textasset
(the method is get the name of selected textasset ,then put the name of unity3d into the script)
so the unity3d filename in my script has the same name with textasset

[example]
Here is an example
(I use this script to import textasset to sbpr_001.unity3d (PlayClub mods sbpr_casual_v2 by Moodyman )

the textasset is "SBPR_001_Data-54" ,so after using autohotkey to write the import script, the input unity3d in the script is "SBPR_001.unity3d"
while the "real" one is "sbpr_001.unity3d"

here is the script
Code:
LoadPlugin(PluginDirectory+"UnityPlugin.dll")
unityParser = OpenUnity3d("SBPR_001.unity3d")
unityEditor = Unity3dEditor(parser=unityParser)
unityEditor.ReplaceTextAssets(pattern="SBPR_001", path="01_exportdir")
unityEditor.SaveUnity3d(keepBackup=False, backupExtension=".unit-3d", background=False, pathIDsMode=1)
The problem :
because the unity3d filename in script is "SBPR_001.unity3d" instead of "sbpr_001.unity3d" the script would save the result as same as in the script (SBPR_001.unity3d) instead of sbpr_001.unity3d like the original
Suggestion :
i really appreciate if you make the script not make changes to the filename (the unity3d filename result not depends on the batch script )


here is the file to test (Casual Collection V2 (MEGA): )
original topic
http://www.hongfire.com/forum/forum...677481-sbpr-clothing-collection-for-play-club
download
https://mega.nz/#!4JYHSbzQ!JN8_Bjk0roIBXWHs9gM8v0jxEGEYaHs4Cge9zaIvxCg

Thanks alot
 
Last edited:
You could use
Code:
unityEditor.SaveUnity3d(path="CapsAsYouWantThem.unity3d", keepBackup=False, backupExtension=".unit-3d", background=False, int pathIDsMode=1)
. But this isn't easy in the command prompt, I know.
 
You could use
Code:
unityEditor.SaveUnity3d(path="CapsAsYouWantThem.unity3d", keepBackup=False, backupExtension=".unit-3d", background=False, int pathIDsMode=1)
. But this isn't easy in the command prompt, I know.
Thank you very much ,i know about it, so i use autohotkey to write and run the script
now i have a solution to get realpath with autohotkey ,the problem is now solved .thank you!
 
SB3UGS_v1.4.0

Textures with higher resolutions were often a problem because Sb3UGS - as soon as they had mimaps or were of DXT1 or DXT5 format - had to flip them for the preview and did this with many conversions internally. This caused the need for a high amount of memory. I had a look into the compression format and saw that flipping could be implemented directly on the data. And this without loss of quality, because it wouldn't require unpacking and repacking.

So, this version needs less memory and can preview and render faster than before. And on top of that there is no need for the "FlipY" option. Textures of meshes and gui elements for translations are exported with higher quality as a consequence. And when you replace textures they are handled in original orientation.

Changes:
  • Fixed crash for unknown animation binding.attribute values (SBPR swimsuits)
  • Flipping of DDS textures always converted to uncompressed.
  • Fixed imported PNG produced wrong data length when replaced unflipped
  • Warning for script writers! Removed all "flip" arguments from scripting functions in
    AnimatorEditor: AddTexture(), ReplaceTexture(), ExportTexture()
Download:
megafileupload, sendspace

Sources:
megafileupload, sendspace
 
Last edited:
  • Like
Reactions: plasticmind
Hi,
i have a problem with replacing textasset with an unity3d file (FemaleSocks_11.unity3d) (this mod works fine in game)
when i replace the textasset, the unity3d file is not save ,it creates a file name FemaleSocks_11.unity3d$$$
while the original FemaleSocks_11.unity3d is not changed (the date modified is not changed)
this problem only happen with this mod, the others .unity3d file have no problem

here is the file (unity3d and textasset) https://drive.google.com/file/d/0B_ugLGpN-5zjYlZObUVNTU9rTmM/view
please take a look , thank you
 
Last edited:
Cant reproduce this. When I replace your TextAsset file the unity file is saved normally.
Code:
LoadPlugin(PluginDirectory+"UnityPlugin.dll")

unityParser0 = OpenUnity3d(path="FemaleSocks_11.unity3d")
unityEditor0 = Unity3dEditor(parser=unityParser0)
unityEditor0.GetAssetNames(filter=True)
unityEditor0.ReplaceTextAsset(path="FemaleSocks_11_Data-13.TextAsset")
unityEditor0.SaveUnity3d(keepBackup=True, backupExtension=".unit-y3d", background=False, pathIDsMode=-1)
 
Cant reproduce this. When I replace your TextAsset file the unity file is saved normally.
I just found that this problem only happens ( with this file) when i disable "keep backup"
when i enable "keep backup" it works fine
i really appreciate if this issue can be fixed
Thanks
 
Thank you very much for the solution !
there are many read-only unity3d and i removed this attribute ,but this file is leftover
that's why I see this error familiar but i totally forgot :P
 
Re: SB3Utility (GUI + Script) - Glossary & Tutorials

Sorry to be of bother, but.. Can you in one post link all the software I need to MOD a game? For example HoneySelect. I'm completely new at this. And.. Sooo Confused. Again sorry for the bother.
 
Re: SB3Utility (GUI + Script) - Glossary & Tutorials

It depends on the part of the game you want to mod. Sb3UGS' main task is to access the game files for extraction and later for replacing or adding content. The extracted files you will edit with an editor of your choice and knowledge.

3D content, Animation, Morphs: Metasequoia is supported by Sb3UGS and the simplest 3d editor I know. Of course, you cant do everything with it you could do with 3DS Max or Maya. Blender is free and of professional standard too but harder to learn than Metasequoia. For special tasks you will need UnityEditor.

2D content: Gimp is free. You will need the DDS Plugin.

Sound: FMODtool is part of the UnityEditor and an external tool for further conversion of sound files. I have no recommendation for sound editors.

Text, Shaders: TextAssets and textual MonoBehaviours can be edited in Sb3UGS itself. Shaders might be developed and tested in UnityEditor.

All tools can easily be found with the search engine of your choice.

I will move our posts into the thread for Sb3UGS. This topic here is for tutorials only.
 
Last edited:
Are there any videos showing how to use this? I just tried using SB3U and I tried following some of the tutorials but for some reason I can't seem to fully understand them.. Even when I have the software opened and following step by step. Like for instance, making a new PP.file it says to open one with a costume. Ok done. After says to change the name of it. Ok do you mean change the name of it by right clicking the file itself and selecting "rename" OR is there a way to rename it in the software it'self? Now on to the next question, I tried rendering a pp.file with a costume to see it pop up in the far right side, but I tried almost everything to my knowledge and I could no way make the render appear. I'm am completely new at using SB3U, only have experience with Photoshop, Illustrator and some others. I would like some help. Thank you.
 
This first thing you should do - even before trying tutorials - is to explore the game files with Sb3UGS. If you do then you will find that they are named *.unity3d. *.pp are from older games and those are completely incompatible to the Unity world. Sure, they can be used for exploring and exporting things you want to port to newer games. But if your target is HS you should leave them. All editors are different from their Unity related counterparts.

After exploring game files you should be able to find meshes, materials, textures, TextAssets and textual MonoBehaviours in a file. HS adds some complexity, because materials were separated from the meshes. That's why I made one of the tutorials. Even if you dont know exactly what all those assets are or and how they are used learn to locate them.

Only the last tutorial in the thread is for beginners and related to Unity based games. The two before it are mostly informational and describe game principles.

This was meant for you! Leave clothes for a while. It will take much longer if you start with clothes without having any knowledge about the assets mentioned above.
 
This first thing you should do - even before trying tutorials - is to explore the game files with Sb3UGS. If you do then you will find that they are named *.unity3d. *.pp are from older games and those are completely incompatible to the Unity world. Sure, they can be used for exploring and exporting things you want to port to newer games. But if your target is HS you should leave them. All editors are different from their Unity related counterparts.

After exploring game files you should be able to find meshes, materials, textures, TextAssets and textual MonoBehaviours in a file. HS adds some complexity, because materials were separated from the meshes. That's why I made one of the tutorials. Even if you dont know exactly what all those assets are or and how they are used learn to locate them.

Only the last tutorial in the thread is for beginners and related to Unity based games. The two before it are mostly informational and describe game principles.

This was meant for you! Leave clothes for a while. It will take much longer if you start with clothes without having any knowledge about the assets mentioned above.

I see I was trying to start small. Like adding some accessories and such.

Ok, so... I guess I need to start by locating the accessory files. Since I have neve rpayed attention to them. I need to llocate them. Thanks again for the help.. I'll be back if I have an issue.

Yeah.. I'm good to the point where I can open up a accessory file in it. And explore it like look at the images that are in it and such.. But idk how to edit it or how to do anything else with it.. Or is that the job of a different software?


It would be great if someone could make a video modding HS like from beginning to end.. How they handle the unity files then how they convert it and edit it in photoshop and such. step by step sort of thing. That would help me out really well.
 
Last edited:

Users who are viewing this thread

Latest profile posts

fwmdbg wrote on Esan's profile.
I will request
Title / タイトル: 戦国†恋姫EX参 ~毛利家の絆編~
Brand / ブランド: BaseSon
Release / 販売日: 2023.07.28
hehehezozo wrote on Nihonjaki90's profile.
Hello, Dear Nihonjaki90, can you please reupload mexashare and katfile of 奴隷肉便器リコ ?! Many Thanks
testjp wrote on Otokonoko's profile.
Please reupload RJ01151156. I'm sorry. The URL of the link is too long to comment.
plaenco wrote on Shine's profile.
Can u please update these games?
[200601][アトリエちょいす] プリンセスシナジー先行版ver24.04
✨Shine✨[NoFuture] 祓魔少女シャルロットⅡ ~穢れの刻印~