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

  • Thanks for your reports! I will see to fix this, but it might take some days.

    Belgar17
    Channel 4 in the mesh data holds the second UV map. You can simply delete it in Blender and export fresh.

    The error you described is probably caused by the mesh you are replacing. That mesh was created from an older version of Sb3UGS and that version had a bug which now causes this crash. Status: fixed.
    Last edited by enimaroah; 10-20-2018, 06:51 AM.

    Comment


    • Belgar17
      Belgar17 commented
      Editing a comment
      Thanks for the response. I found another workaround for my problem. Blender allow a mesh to have multiple UV maps. When I removed the extra UV maps so each mesh has only one and exported as FBX I didn't encounter the problem in SB3UGS.

  • SB3UGS_v1.13.3
    • Fixed crash when exporting or replacing meshes created with older versions of Sb3UGS - thanks to Belgar17
    • Fixed crash when saving non-AssetBundle Unity files - thanks to xyth024

    Download - github release

    Sources - github release

    Comment


    • xyth024
      xyth024 commented
      Editing a comment
      Thank you indeed, enimaroah! Your update solves my problem. Have to say, 1.13's feature is so great, saves me a lot of trouble!

  • SB3UGS_v1.13.4
    • Changed file length check to allow trailing unused bytes - thanks to Anon11 on discord

    Download - github release

    Sources - github release

    Comment


    • Mostly relevant for KK, Sb3UGS v1.14 can compress AssetBundle files as suggested by bepis on discord.
      Click image for larger version

Name:	image_323338.png
Views:	1
Size:	18.1 KB
ID:	6557489
      Download - github release

      Sources - github release
      Last edited by enimaroah; 11-17-2018, 01:07 PM.

      Comment


      • Sb3UGS v1.14.1
        • Fixed importing morphs now creating "unknown_blendshape" groups for each mesh again - thanks to roy12 and XeyNiu(SkioN) on discord
        • Fixed crashes in several script commands when executed from SB3UtilityScript.exe - thanks to Kenzato on discord
          The following functions dont consider other opened files (unlike in SB3UtilityGUI.exe):
          • destructor of ImportedEditor
          • Unity3dEditor.BeginTransfer
          • AnimatorEditor - all functions changing anything


        Download - github release

        Sources - github release
        Last edited by enimaroah; 11-26-2018, 02:16 PM.

        Comment


        • SB3UGS_v1.14.2
          Fixed "An entry with the same key already exists." in FBX import for a vertex with two equal weight values. Seen in Maya and C4D exports.
          v1.9.6 introduced this bug when it allowed to import vertices with more than four weights.

          Download - github release

          Sources - github release
          Last edited by enimaroah; 11-30-2018, 02:21 AM.

          Comment


          • The riddle, the solution and now the fix.

            SB3UGS_v1.14.3
            • Fixed time of StreamedClip keyframes in animations - thanks to Byrdesong on discord
            • Added use of cubic Hermite splite coefficients for interpolation in StreamedClip parts - follow the riddle and the solution above for details
            • Fixed crash when dragging a SkinnedMeshRenderer without Material
            • Changed when hiding Image preview the graphical resource is released from memory

            New issues in Sb3UGS found:
            • Unity requires a bone high enough in the hierarchy to reach the others.
              "Bone influences do not match bones." in output_log.txt
            • Selecting an animation can cause the following message in output_log.txt:
              ArgumentOutOfRangeException: Argument is out of range.
              Parameter name: index
              at System.Collections.Generic.List`1[DynamicBone+Particle].get_Item (Int32 index) [0x00000] in <filename unknown>:0

            Download - Github release

            Sources - Github release

            Comment


            • SB3UGS_v1.14.4 has a fix for a memory leak when saving files. Reported by Anon11 on discord - thanks!

              Download - Github release

              Sources - Github release

              Comment


              • Hi! I am Japanese Modder

                I come to ask for SB3U.
                I am using "SB3Uv1.6.13".
                The game is Honey Select.

                I would like to set the ID of the main camera of Studio NEO to MonoBehaviour, but how do I set it?
                Probably the main camera is in "C: \ illusion \ HoneySelect \ abdata \ studioneo \ level 3"
                I want to register it in MonoBehaviour of another file.
                I guess how to register the MonoBehavior in the same file, but is there any way to bring it from another file?
                I know that in the same file, we can duplicate MonoBehavior by entering PathID number.
                But how when copy it from? Or, we can't do that by SB3U?

                Sorry for my poor english.

                Comment


                • Hello nihiro2 !

                  Although I called v1.6.13 a matured version and good for HS, it has errors which have been fixed. Whenever I make critical changes I change the number in the middle. So if you dont need new features, you should still use the latest version before. In case of the current version that would be v1.13.4.

                  If the game reads the level2 file, it expects to find the Camera in there. Even if you would put duplicates somewhere else, the game would ignore those in other places. To make such a change you would have to rebuild the whole game in Unity, change the Camera's location and recompile the whole game.

                  What you can change in Sb3UGS are the attributes of the Camera assets. Open one of the Animators, navigate to the Camera in the ObjectTree and double click the Camera.
                  Click image for larger version

Name:	StudioNeo-Level2-Cameras.png
Views:	1
Size:	63.7 KB
ID:	6640562

                  And yes, MonoBehaviours can be copied into other files. But this function requires to provide the Type Definition of the MonoBehaviour. This is no problem in AssetBundle files (usually in abdata folder). In regular game files (usually in {game exe}_Data folder) there is no Type Definition for the MonoBehaviour in the file and you would have to find an AssetBundle file with that particular Type Definition for the MonoBehaviour. The chances for that are small because the regular game files have their dedicated special functions which rarely can be found in AssetBundle files.

                  For copying MonoBehaviours and other assets you can use the Workspace or even drag' n drop directly between Animators.

                  Comment


                  • No, external references are not supported currently. The PPtr<> would be able to reference external assets, but Sb3UGS doesn't allow to set it. If Unity would work and use it, I am not sure of.

                    The external file would have to be registered in the file with your LightShafts, and additionally it might require an AssetBundleManifest to let the game load the referenced file before your LightShafts.

                    So yes, I think I can implement that. An external regular game file could be a problem. I have never seen such being referenced from AssetBundle files except for "unity default resources" and unity_builtin_extra.

                    Comment


                    • Thank you for your quick response.
                      We can not get ID from a file without "CABinet value". Is it?
                      If so, it seems to be the only way to give up.
                      Because there is no main camera in the file with the CABinet value.

                      I will search for other methods by themselves.
                      Thank you for answering the question.

                      Comment


                      • Yes, we can get the value for m_FileID from a regular game file, such as level3. But I have never seen any AssetBundle file (such as your example you posted) referencing such a file. So even if I do all correctly, it might be that Unity refuses to use it, it might even crash.

                        Sb3UGS needs several changes:
                        1. regular game files must be allowed to be set as "External References" (the point above).
                        2. the editor for MonoBehaviours (more precisely LoadedByTypeDefinition) must be extended to get m_FileID and m_PathID as a tuple and then assign it.



                        When that is finished, I can try to test this with some assets, e.g. Texture2D assets would be ideal. If that would work, I will release it.

                        Comment


                        • Oh, if the function of No.2 is added, I can do what I want to do, maybe.
                          I was able to register level3 with "External References" when I used SB3Uv1.6.13.
                          Click image for larger version

Name:	WS001839.JPG
Views:	1
Size:	67.4 KB
ID:	6643642
                          Can I acquire FileID by this method?
                          If so, we have been able to already acquire both ID.
                          (FileID=1 , MainCamera ParhID=1627)

                          Afterward only as for the input of the ID to MonoBehaviour?
                          If so, I want you to add No.2 function to SB3U.
                          If that is done, perhaps I can register the main camera with MonoBehaviour.
                          Please realize No.2 function if possible.

                          I used Weblio translation this time.

                          Comment


                          • And that is exactly what I think is wrong, the assetpath should be "level3" without having the folder in front. But I haven't tested that yet. You could copy your level3 to the parent folder, but I dont know if it could be registered then.

                            Sure, the second function is nearly ready. I want to complete it all for the next release.

                            Comment

                            Working...
                            X