Announcement

Collapse
No announcement yet.

SB3Utility Releases and Discussion

Collapse
This is a sticky topic.
X
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • [Tools] SB3Utility Releases and Discussion

    Post anything related to SB3Utility, such as how to use it, requests, bugs, etc.
    Please let me know if I'm missing any links or if you want any links added through PM.
    You might also want to check out Illusion Wizzard & Morpher by darkhound for modding.

    I recommend using the Latest SB3Utility(GUI+Script) Version by enimaroah since I haven't updated SB3Utility in a long while.

    Pre-scripting Versions
    Spoiler

    SB3Utility Source Code: [MF Folder]

    Custom Versions
    SB3Utility_v0.9.18R10 by enimaroah
    SB3UtilityCustom v9.9 by bbas2011
    SB3UtilityAA by darkhound
    SB3Utility with 3D Studio Max + Okino Polytrans DirectX Import/Export by J1327 [Broken link]
    SB3Utility with Skeletal Animation Editing by profundis

    Supports: Battle Raper 2 (partially), Oppai Slider 2, RapeLay, Sexy Beach 3, SchoolMate (Figure/Trial/Retail), Artificial Girl 3 (Welcome/Retail), Digital Girl, Hako (Trial/Retail), SchoolMate Sweets, Esk Mate, @Home Mate (Figure/Trial/Retail), Yuusha (Trial/Retail), Real Girlfriend, SchoolMate 2 (Trial/Retail), Sexy Beach Zero, Characolle AliceSoft/BaseSon/Key (Benchmark/Retail), Artificial Academy (Trial/Retail except jch*.pp)
    3-D Formats: Metasequoia (text import/export, no normals, no skeleton), DirectX (binary & text import / text export), Collada (text import/export), FBX [recommended] (binary & text import / binary export), Ogre (binary export)

    Requires
    - Microsoft Visual C++ 2008 Redistributable Package (different from the editor)
    - .NET Framework 3.5 SP1 (different from the Compact Framework)
    - Latest DirectX 9.0c

    Changelog
    (v0.9.18) [SB3UtilityGlobals modified]
    - Reverted decryption algorithm to v0.9.15. Removed support for the compressed .pp format (jch*.pp)
    (v0.9.17) [SB3UtilityGlobals modified]
    - Fixed opening various .pp formats
    (v0.9.16) [SB3UtilityGlobals modified]
    - Added support for Best Collection and Artificial Academy
    - Fixed editing frame names again
    - Renderer will no longer throw an exception if a bone is missing
    Spoiler
    (v0.9.15)
    - Fixed morph export for .mqo
    - Fixed editing the name of frames that don't have meshes
    (v0.9.14)
    - Fixed importing Collada with matrix transforms and unused vertices
    (v0.9.13) [SB3UtilityGlobals modified]
    - Fixed DBNull errors when removing bones in the Mesh Object Editor
    - Importing Collada with Z-up will now be automatically converted to Y-up
    - Fixed importing Collada from Blender
    - The Editor now shows a selected image if no .xx tab is open
    - Importing .mqo now defaults to the CopyNear method for bones
    - Fixed replacing mesh objects when using the Merge option for a Mesh and added it as an option for Mesh Objects in the Workspace
    (v0.9.12) [SB3UtilityGlobals modified]
    - Fixed showing the number of mesh objects
    - Fixed error checking for bone operations
    (v0.9.11) [SB3UtilityGlobals modified]
    - Changed "Characolle Bench" to "Characolle AliceSoft" for .pp formats
    - Added support for Characolle BaseSon & Key versions and AA Trial (thanks to bbas2011)
    - Added bone operations (by pidey)
    (v0.9.10) [SB3UtilityGlobals modified]
    - Changed "Characolle Bench" to just "Characolle" for .pp formats
    - Collada importer can now parse empty visual scenes
    - Added support for .dxf, .3ds, and .obj
    (v0.9.9)
    - Fixed animations in the Renderer
    - The Object Tree tab in .xa Editors is now hidden since it isn't used
    (v0.9.8)
    - Fixed "Add Animations From XA Tab" not adding animations to the Workspace
    - Added ability to remove Animation Tracks in the Workspace
    - Removed resetting the Diffuse lighting value for the Renderer when opening a .xx file. Also, the value is now saved
    - Fixed the renderer showing exploded meshes for Rapelay and some others
    (v0.9.7) [SB3UtilityGlobals modified]
    - Fixed loading .xx textures in the renderer that aren't .bmp or .tga (thanks to varicham)
    - Replacing a mesh that has a base mesh no longer shows a warning about adjusting unknown data
    - Added a culling option for the renderer. Checked will render one side, and unchecked will render both sides of a face
    - Fixed the crashing when exporting morphs if a child node is selected
    - Fixed Hierarchy conversions between formats (< 4) and (>= 4) in the Workspace
    - Fixed the renderer to use directional lighting
    - Added code for an .xm parser, but it's not used
    (v0.9.6) [SB3UtilityGlobals modified]
    - Added support for SBZ and Characolle Bench (thanks to darkhound)
    - Fixed when the comma is used as the decimal separator in Frame and Bone tabs
    (v0.9.5)
    - Changed Matrix to Translate/Rotate/Scale in Frame and Bone tabs
    (v0.9.4)
    - Fixed memory problem when exporting large animations using DirectX format
    (v0.9.3)
    - Fixed .xx format conversion and merging bone lists when replacing in the Workspace
    (v0.9.2)
    - Added FBX import/export for morphs
    - FBX import will now skip empty animations
    (v0.9.1)
    - Added Add & Remove in the Bone tab
    - Added options for bones when replacing in the Workspace
    - FBX export will now make locators for nodes with no children and groups for nodes with children instead of making them all joints
    - Fixed FBX export for skins
    - Added FBX import
    - Added FBX support for multiple textures in a material. They will be connected as diffuse/ambient/emissive/specular textures even though they may actually be used for different things like normal/bump mapping or animation
    (v0.9.0)
    - Added export for FBX
    (v0.8.27)
    - Fixed saving .sb3uws for .xx Format Type 4-5 (RGF/SM2)
    - Changed the default "Merge" option for Meshes to "No" in the Workspace
    - Changed the default "Copy Hex" option for Hierarchies to "Yes" in the Workspace
    (v0.8.26)
    - Fixed target build to x86 (thanks to ScumSuckingPig). This was only a problem on 64-bit systems
    (v0.8.25)
    - Added support for SM2 Retail (thanks to ScumSuckingPig)
    (v0.8.24)
    - Added support for SM2 Trial (thanks to ScumSuckingPig)
    (v0.8.23)
    - Added .pp format auto-detection for .xa subfiles
    - Fixed saving .sb3uws for RGF
    - Application starts at the default location if offscreen
    (v0.8.22)
    - Fixed renderer aspect ratio for widescreen and dual monitors
    (v0.8.21)
    - Fixed replacing meshes for RGF when it has more vertices than the original
    (v0.8.20)
    - Added support for RGF (thanks to ScumSuckingPig & J1327)
    - Updated MOGRE from 1.4.8 to 1.6.5 beta r49
    (v0.8.19)
    - Added support for Yuusha Retail (thanks to ScumSuckingPig)
    (v0.8.18)
    - All frames used as bones and their children are now exported as joints for Collada
    - Fixed the positions of skinned meshes for Collada export
    (v0.8.17)
    - Added ability to add selected meshes from the Mesh list of the selected .xx Editor tab to the Workspace. If none in the Mesh list are selected, then all of them will be added
    - For replacing mesh normals, there are now options of replacing them (Replace) or keeping the normals of the base mesh object according to vertex order (CopyOrder) or the nearest vertex (CopyNear)
    - Added Morph Lists to "Align Vertices" and "Copy Near Vertex Normals" for the Workspace
    - "Calculate Normals" controls have been moved to a dialog box for the Workspace
    - "Align Vertices" in the Workspace now works similar to "Copy Near Vertex Normals"
    - Added the option to copy normals from the nearest vertex (no threshold) in the Workspace by using a negative threshold in "Copy Near Vertex Normals"
    - Fixed keeping base mesh object normals when replacing meshes
    (v0.8.16)
    - Fixed replacing materials for BR2. Some material RGBA values might still crash BR2, so it's not recommended to do so for that game
    - Fixed showing the Editor's bottom panel for the first opened .xx/.xa file
    - When replacing materials, used texture hex data is now copied if the texture name is the same
    (v0.8.15)
    - Added support for the BR2 character addon
    (v0.8.14)
    - Fixed mesh distortion by some bones for the Renderer
    - Fixed the Renderer when there are animation tracks with different numbers of keyframes
    (v0.8.13)
    - Fixed copying the mesh object unknown field when replacing a base mesh object
    - Fixed texture paths for Collada import
    - Added a "Merge" option for when replacing hierarchies in the Workspace
    - Re-added option to copy the Frame unknown hex for Hierarchies when replacing in the Workspace. The default is on, except for when dragging from the .xx Object Tree
    (v0.8.12)
    - Added partial support for BR2. Read this post for more info
    - When replacing hierarchies from the Workspace, it will always try to copy unknown fields instead of it being optional
    - Fixed keeping backups of base meshes when the hierarchy has been previously replaced. The feature was introduced in v0.8.7
    - The priority of the last auto-detected .pp format upon opening is bumped to the top
    (v0.8.11)
    - Fixed morphs for target meshes with multiple mesh objects
    - Fixed Collada import
    (v0.8.10)
    - When importing a DirectX .x file, unnamed materials with a texture will have the texture name followed by the material index
    - Unskinned meshes now move with animations in the Renderer
    - Added an optional mesh material offset for Hierarchies in the Workspace
    - Improved .pp format auto-detection when the .pp file contains .xx or image files
    - Fixed the animations/morphs already existing error
    (v0.8.9)
    - Fixed restoring "Selected Tab" / "All Open Tabs" settings in the Workspace
    - Fixed saving "Keep Backups" setting
    (v0.8.8)
    - Added preview of morphs to the Renderer. You can preview one morph keyframe per morph clip. Morphed normals aren't shown in the Renderer
    (v0.8.7)
    - When replacing, mesh unknown fields are now copied when the hierarchy with the base mesh has been previously replaced with a hierarchy without the base mesh within the same Workspace
    - Fixed parsing .xa files with multiple morphs of the same name
    (v0.8.6)
    - Fixed Collada export for unskinned meshes
    - Fixed Collada export of unused bones as joints for skinned meshes
    - Added normal calculation with no duplicate vertex detection by setting a negative threshold in the Workspace
    - Added ability to copy normals from close vertices in the Workspace. Read this post for more info
    - Added support for Esk Mate, AHM Figure, and AHM Trial (thanks to ScumSuckingPig)
    (v0.8.5)
    - Fixed removing all previous mesh objects when replacing meshes if not merging
    - Added option for replacing normals in the Workspace for meshes
    - Added export and import for simple morph editing. Read this post for more info
    (v0.8.4)
    - Added PNG, JPG, and DDS texture support
    - Removed check for valid names
    - Fixed incorrect rotations in matrix decomposition
    - Fixed adjusting unknown data for non-zero Mesh Types
    - Fixed displaying 0 as the last weight for unskinned meshes in the Mesh Object Editor. Actual bytes weren't affected
    - Added editor for unknown Hex fields in .xx files
    (v0.8.3)
    - Fixed using Yuusha MIK Trial in the Workspace
    - Fixed using meshes with different .xx formats in the Workspace
    - Fixed adding more skeletal animation clips
    - Fixed adjusting mesh material indices when removing materials
    - Added editor for mesh objects
    (v0.8.2)
    - Fixed mesh replacing
    - Added option to display bones in the Renderer
    (v0.8.1)
    - Fixed auto-detecting .pp format
    (v0.8.0)
    - Added support for SM Sweets, AHM Retail, and Yuusha MIK Trial (thanks to ScumSuckingPig and lauris71)
    - Changed some underlying code structures
    - Changed Collada format to Autodesk FBX v2010.0.2
    - Added support for SJIS filenames in .pp files
    Known Issues
    - Controls aren't locked or synchronized when performing tasks. Don't perform simultaneous tasks like saving again while it's already saving
    - May crash under 64-bit systems
    - When importing Collada into Maya/Max with Autodesk FBX, normals are reset. Exported normals in Collada from Maya/Max are retained when importing in SB3U


    Resources
    .xx File Format (partially outdated) by alessi
    .xx File Format (partially outdated) by RawMonk
    .xa File Format (might be partially outdated) by Alamar
    .vci & .vcs File Formats by Alamar
    .tty File Format by Alamar
    Parser for .xm by Alamar
    Parser for .js3krs by Alamar
    SB3 BotuPlay Cameo Mod Tutorial for SB3Utility v0.4 Pre22 by Alamar
    SB3 Body Accessory v6 Mod Tutorial for SB3Utility v0.4b Pre5 by Alamar
    SB3 Kokonoe Rin (SaYaKa Project) Mod Tutorial for SB3Utility v0.7.17 by Alamar
    Modding Club Tutorial Thread
    Various Posts About Transparency compilation by Sinbad
    Modding Digital Girl Rin by mariokart64n
    Utilizing .sfd Files by trogdor0071
    SB3U Vertex Options Explained by darkhound
    Last edited by Inquisitor; 04-19-2014, 06:00 AM. Reason: Add prefix

  • SB3UGS_v1.14.5
    • Added regular game file as valid target for external references - thanks to nihiro2
    • Added external references in MonoBehaviour and LoadedByTypeDefinition editors - thanks to nihiro2
    • Fixed crash when exporting a texture from Assets menu - thanks to MarC0

    Click image for larger version

Name:	DragNDropExternalAsset.gif
Views:	1
Size:	310.6 KB
ID:	6648750
    Download - Github release

    Sources - Github release

    Comment


    • Hallow,enimaroah.

      I appreciate that I have you add a function very much.
      However, MonoBehaviour did not seem to be able to recognize a main camera.

      However, this function addition was the thing which suggested new possibility.
      Unfortunately what I want to take did not come true, but thanks you.

      Comment


      • Hello nihiro2,

        that's what I feared right from the beginning. So, when I made my test and referenced a texture in resources.assets from my AssetBundle file successfully I was surprised.

        Did you have any error message related to your mod in output_log.txt? Or did the game crash then? It is always possible, especially in new functions, that Sb3UGS creates something which Unity causes to fail.

        May be you need to put a Camera asset directly into your Animator to get it working.

        And there are more Cameras, a bit hidden in level2. You would need to create a virtual Animator from a GameObject to access them.
        Click image for larger version

Name:	MoreCameras.png
Views:	1
Size:	66.7 KB
ID:	6652925

        Comment


        • Hi enimaroah.
          By this change, a game did not crash.
          However, the following message is written in at output_log.txt when I place the item which I remodeled in the studioNEO.[/PHP]

          " The file 'C:/illusion/HoneySelect/StudioNEO_64_Data/level3' is corrupted! Remove it and launch unity again! [Position out of bounds!] "

          I replaced it in a file of "level3" of the default just to make sure and tried it, but the result was the same.
          I think that there is not the error in particular except that I just wrote it.

          In fact, the thing which I was going to make is a searchlight (volume light).
          The name of MonoBehaiviour is ”LightShafts”.
          MonoBehaviour was in DLL of the honey select.
          Click image for larger version  Name:	WS001846.JPG Views:	2 Size:	227.5 KB ID:	6654363
          I quoted Shader necessary for this from free Asset of Unity and improved it.
          But level3 file seemed to be judged with corrupted, and this method led to failure.

          I installed a camera in the same file for trial and was able to reappear when I enrolled in MonBehaviour.

          Click image for larger version  Name:	WS001848.JPG Views:	1 Size:	111.4 KB ID:	6654364
          It is natural, but the function of the main camera disappears.
          But I was able to confirm that MonoBehaviour functioned.
          Therefore the remainder is only a method to register a main camera with MonoBehaviour.
          It is completion if I can acquire a main camera.

          The present conditions are such feelings.



          :Weblio translation
          Last edited by nihiro2; 12-24-2018, 09:48 AM.

          Comment


          • The translation is hard to understand.

            It is a riddle to me that level3 should be corrupted when you referenced an asset in it. I would have understood when the error message would have named your AssetBundle file. Or did you change the level3 file itself?

            Your concept is not clear to me. Do you try to attach a spot light ( https://docs.unity3d.com/Manual/Lighting.html ) to the camera?

            Our different languages and the details we would need to exchange build a too high hurdle. I doubt that I can help much further. Sorry.

            Comment


            • enimaroa, sorry.
              I can understand only simple words in English.
              So it may be better not to come here.
              But I write the answer.

              Well then, I will write.

              No, it only appears in error messages.
              The file (level 3) is not broken.
              The spotlight has volume lights.
              The camera ID is necessary to identify the camera to display.
              Attempting to obtain a camera results in an error.
              That error is what I wrote before.
              Because the script could not get the camera, the game thinks the file is broken. (Probably)

              This is the answer to the question.

              Thank you for your precious time.
              And I'm sorry.
              Last edited by nihiro2; 12-24-2018, 03:18 PM.

              Comment


              • No, I think it was good that you came here. Without you I would not have implemented the last two extensions in Sb3UGS. If more Japanese modders would come here then we could overcome the language barrier easier. You are welcome here!

                You could do a last test. Create two light items with LightShafts MBs.
                1. with a local Camera in a separate file.
                2. without local Camera and using the Camera from item #1.

                Try different orders of item selection in the studio. Do you get the same error in the output_log.txt then?

                In my understanding of Unity, a Camera asset is local to an Animator. And it is never a valid target in any other file. I expect that you will get the same error with item #2.

                Comment


                • Thank you,enimaroah.
                  I will be trying it .
                  And I will be trying the method of the reply that I overlooked.

                  Thank you for your advice.
                  Last edited by nihiro2; 12-25-2018, 05:41 AM.

                  Comment


                  • enimaroah Any chance for adding support for files that have been compressed by MinUnity3D?

                    I've been trying to do some modding for the Koikatsu translation project, but unfortunately SB3UGS completely chokes on the files if they've been compressed by MinUnity3D - it will open them and generally see contents, but it gets very confused, and it refuses to export or re-import files into the unity3d files.
                    Last edited by Dark Pulse; 12-26-2018, 01:34 AM.
                    Helping Hongfire by translating and editing, project by project.
                    A supporter of women of all shapes and sizes, whether they're in a skirt, pants, a suit, or even androgynous.

                    Works: Artificial Academy 2 (Editor), Custom Maid 3D 2 (Translator/Editor), Sexy Beach Premium Resort (Translator/Editor)

                    Comment


                    • Thanks for your report.

                      I thought I had already fixed the problem with the additional byte at the end in v1.13.4. Which version of Sb3UGS did you use?

                      Is there a mod released in compressed form with that problem? I would need something for testing.

                      Comment


                      • Originally posted by enimaroah View Post
                        Thanks for your report.

                        I thought I had already fixed the problem with the additional byte at the end in v1.13.4. Which version of Sb3UGS did you use?

                        Is there a mod released in compressed form with that problem? I would need something for testing.
                        I'd tried it with 1.13.4, 1.14.4, and when I came in here and saw you updated to 1.14.5, I tried that and they all didn't work.

                        Basically, any game file that's had MinUnity3D run on it, SB3UGS seems to not grasp, whether it's a mod or part of a game's file. The specific example I was trying to do was Koikatsu's default character cards, stored at abdata\custom\presets_f_00.unity3d and abdata\custom\presets_m_00.unity3d. In the end, the only way I was able to successfully mod those files was to get someone else involved with the project to send me clean and uncompressed versions of the files - there's no way to restore them via MinUnity3D itself, and worse, SB3UGS is considered the "decompressor" by the devs themselves - which means it's pretty bad if it can't properly export, modify, and save the files...

                        If they haven't been compressed by MinUnity3D, exporting from them happens flawlessly, as does re-importation, but if I run the files through MinUnity3D, while SB3UGS can open the files, it has all sorts of streaming/memory errors on trying to export, has error log crashes about decoding the LZ4 chunks, and so on.

                        EDIT: Here's some files I made using it, using Release 3 of the MinUnity3D compressor. The unity3d files in the Uncompressed 7z should load, extract, and allow for replacement just fine; the Compressed ones will load, but SB3UGS will generally be very confused, error out on reading it, and refuse to export.

                        Uncompressed.7z
                        Compressed.7z

                        Logfile output:

                        Settings are saved at P:\Eroge\Koikatsu\SB3UGS\SB3UGS_v1.14.5\SB3Utility GUI.exe.config
                        Autosaving script to P:\Eroge\Koikatsu\SB3UGS\SB3UGS_v1.14.5\SB3Utility GUI.autosavescript.txt
                        LZ4 Chunk 2 decoding error: Object reference not set to an instance of an object.
                        Crash while uncompressing at 3870A : System.ArgumentNullException: Buffer cannot be null.
                        Parameter name: buffer
                        at System.IO.MemoryStream.Write(Byte[] buffer, Int32 offset, Int32 count)
                        at UnityPlugin.UnityParser..ctor(String path)
                        Failed to load AssetBundle PathID=1
                        0 offset=x1085 Non-negative number required.
                        Parameter name: count
                        1 offset=x479D5 Unable to read beyond the end of the stream.
                        LZ4 Chunk 2 decoding error: Object reference not set to an instance of an object.
                        Crash while uncompressing at 3C069 : System.ArgumentNullException: Buffer cannot be null.
                        Parameter name: buffer
                        at System.IO.MemoryStream.Write(Byte[] buffer, Int32 offset, Int32 count)
                        at UnityPlugin.UnityParser..ctor(String path)
                        1 offset=x1159 Non-negative number required.
                        Parameter name: count
                        Failed to load TextAsset PathID=5790468298897722739
                        Warning! TextAsset PathID=5790468298897722739 incorrectly loaded: component size=304340 loaded=4
                        Exception has been thrown by the target of an invocation.
                        Cannot implicitly convert type 'UnityPlugin.NotLoaded' to 'UnityPlugin.TextAsset'
                        Failed to load TextAsset PathID=-8330848163041137193
                        Warning! TextAsset PathID=-8330848163041137193 incorrectly loaded: component size=289104 loaded=4
                        Exception has been thrown by the target of an invocation.
                        Cannot implicitly convert type 'UnityPlugin.NotLoaded' to 'UnityPlugin.TextAsset'
                        Last edited by Dark Pulse; 12-26-2018, 12:54 PM.
                        Helping Hongfire by translating and editing, project by project.
                        A supporter of women of all shapes and sizes, whether they're in a skirt, pants, a suit, or even androgynous.

                        Works: Artificial Academy 2 (Editor), Custom Maid 3D 2 (Translator/Editor), Sexy Beach Premium Resort (Translator/Editor)

                        Comment


                        • The error happens because of mixed compression methods. The files were pointless to compress because the only contents is a compressed PNG image. The result is that the file gets bigger when compressed.

                          Sb3UGS "forgets" to allocate a buffer because the first chunk is simply stored, but a later chunk is compressed and requires that buffer.

                          I will fix it, but using a compression tool blindly should be avoided. It wastes io and cpu resources for everyone.

                          Comment


                          • SB3UGS_v1.14.6 fixes a crash in files using mixed compressed methods - thanks to Dark Pulse

                            Download - Github release

                            Sources - Github release

                            Comment


                            • SB3UGS_v1.14.7 fixes a very old bug which was always present right from the beginning. When a mesh in an Animator was replaced with the "Replace" method and one of the "Copy" options for bones then the resulting skin could be a random distribution of weights or cause even errors in Unity - see issues posted in v1.14.3 release.
                              Click image for larger version  Name:	ReplaceBonesCopyXerror.png Views:	1 Size:	31.3 KB ID:	6681366
                              Download - Github release

                              Sources - Github release

                              Explanation of the methods and options using the example on the screenshot.
                              The method Replace will delete all submeshes of the destination mesh (cf_o_top_CM_oneP_d_06) while the Merge method retains submeshes in the destination mesh, expect those which are marked in the Workspace with the "Replace Original Submesh" option. But the deletion of submeshes regardless of the method is done at the end of the replacement. During the replacement you can use the submeshes with the Copy In Order and Copy Nearest options. So the replacement in the example uses the Base submesh (0) of the destination mesh for copying the nearest vertex's bone weights into the resulting submesh. Since it uses weights of the destination mesh, it must use its bone list too and the old version brought in the source mesh's bone list.
                              Last edited by enimaroah; 12-29-2018, 08:54 AM.

                              Comment


                              • Hi enimaroah
                                All my attempts did not go well.
                                So try looking for a way that does not use LightShaft.MonoBehaviour.
                                enimaroah, Thank you for everything.

                                Comment

                                Working...
                                X