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


  • I was thinking there should be an “overwrite” when doing “copy & paste”, so I can overwrite the original material and keep its reference in all meshes, allowing changing material on all selected meshes will also help.

    Comment


    • Alright, the multi-assignment first. This will align nicely with the Attributes dialog which sets the changed attributes for all selected (Skinned)MeshRenderes und their Meshes.

      "Paste All Marked" with overwriting will need more time as it must be handled for every asset separately. It would be possible to set the overwriting mode for each asset differently but that might be an overkill. And some combinations would be simply wrong, e.g. overwriting materials but reusing shaders or vice versa.

      Comment


      • Originally posted by enimaroah View Post
        "Paste All Marked" with overwriting will need more time as it must be handled for every asset separately. It would be possible to set the overwriting mode for each asset differently but that might be an overkill. And some combinations would be simply wrong, e.g. overwriting materials but reusing shaders or vice versa.
        That's true, I think assigning material on multiple meshes is sufficient enough for me now.

        Comment


        • SB3UGS_v1.10.2
          • Fix for ShaderKeywords and DisabledPasses not shown properly when they should be empty
          • Changed selected material is assigned to all material slots of all selected (Skinned)MeshRenderers - thanks to plasticmind

          Download:
          github release
          Sources:
          github release

          Comment


          • plasticmind
            plasticmind commented
            Editing a comment
            Thanks, that was really fast.
            I found some bug, it may reproduce in this way: go to material tab, select a material and select meshes in which it's used, then re-assign material. The first time it works fine, but when doing it on another material, the meshes what I just assigned got re-assigned again.

        • The reference is the actual Mesh list. Selected Meshes in this list will be updated.

          The Meshes below the Material list in the cross-references may select additional meshes, but never deselect any Mesh and therefore dont change the Mesh list (check the meshes in the renderer - those are the selected in the Mesh list).

          So when switching to another material you would have to deselect the meshes from the Mesh list first.

          But I see that the behaviour of Sb3UGS is not symmetrical. If you select a Material from the cross-references below the Mesh list then the selection is limited to the selected Material and others are deselected. Hm, not sure which behaviour would be better.

          Edit:
          I see that sometimes meshes are deselected from the cross-references below the Material list. So it is even more important to switch to the Mesh list to check the real selection before changing anything.
          Last edited by enimaroah; 03-02-2018, 09:07 AM.

          Comment


          • enimaroah

            Is there any way to handle the thumbnail files?

            The thumbnail textures are simple DXT5 images, but the ABs also contain sprites. Trying to do anything with the sprites throws something like this:

            Warning! Sprite PathID=-419884703977285263 incorrectly loaded: component size=380 loaded=172
            My blog, you can find my mods there too.

            Comment


            • Sure, I will add support for Sprites in Unity 5.6.x, but it may take a while. Unity had integrated half of a Mesh there. As a workaround, dont load any Sprite nor delete any asset in the file. If you need it for referencing in the Koikatsu list entries, then use a copy a thumb file and replace the textures.

              I am right in the middle of a big change which will nearly eliminate the problem of Transforms having the same name (often found in the PlayXXX series in resource.assets body Animators). All FBX import and export is affected, Bones and AnimationTracks especially. When I am done with this I will update Sprites (no Sprite editor, but you will be able to Copy & Paste them again).

              Comment


              • Originally posted by enimaroah View Post
                Sure, I will add support for Sprites in Unity 5.6.x, but it may take a while. Unity had integrated half of a Mesh there. As a workaround, dont load any Sprite nor delete any asset in the file. If you need it for referencing in the Koikatsu list entries, then use a copy a thumb file and replace the textures.
                I see what you mean, copying a whole file would work yeah.

                I ended up building them with the Unity Editor. Turns out they're simple 128x128 textures set as a simple sprite in the texture importing settings, not a lot of setup needed for them. But it still would be nice to be able to replace them in SB3UG, since it's faster that way.
                Last edited by roy12; 03-11-2018, 01:07 PM.
                My blog, you can find my mods there too.

                Comment


                • SB3UGS_v1.11
                  • Fix for crash in LoadAndSetAvatar of virtual Animators
                  • Changed LoadAndSetMesh by removing AlignSkinnedMeshRendererWithMesh functionality
                  • Changed priority when searching for Transforms in SkinnedMeshRenderer's bones to
                    m_Bones before Mesh's m_BoneNameHashes
                    Additionally affected: Cloth, MonoBehaviour, MQO exporter using world coordinates
                  • Changed all handling of Bone and AnimationTrack names to use their full path instead
                    Click image for larger version  Name:	NonUniqueTrackNames.png Views:	1 Size:	51.6 KB ID:	5949578
                  • Fixed crash when a Mesh had a smaller number of m_BoneNameHashes than the
                    SkinnedMeshRenderer had m_Bones
                  • Issue found: Meshes without tangents are exported with zero vectors as tangents - status: unfixed in this release
                  • Fixed number of uv sets for Unity versions before 5.0
                  • Fixed crash in export animations of tracks unrelated to exported meshes
                  • Fixed and changed computation of virtual Avatars. Now the root must be selected, not a branch. (more details)
                  • Added support for Sprite assets in Unity 5.6.2 (and 5.5.0) - thanks to roy12

                  While the big change of handling the full path for Bones and AnimationTracks simplifies replacement, it may need some extra information to use old export files where bones were linked incorrectly. This could be used in the current PH uncensors to correct linking into wrong branches. Feel free to ask here or in the PH modding discussion and I will explain.
                  Verify every modification done with this release carefully - the change is really big! And please report any bugs or odd behaviour here or in any modding discussion thread.

                  roy12
                  Koikatsu doesn't require Sprites. I made a test with an extra file which doesn't contain any Sprite. Still, Sprite support for Koikatsu is in.

                  Download:
                  github

                  Sources:
                  github
                  Last edited by enimaroah; 03-18-2018, 08:57 AM.

                  Comment


                  • roy12
                    roy12 commented
                    Editing a comment
                    Thanks. Is there any reason why they used sprite instead of normal textures then?

                • Actually, they did not. Or more precisely, after deleting all Sprite assets in 27 thumb files, I am pretty sure that Illusion either isn't using Sprites at all or if they do then they aren't using the ones in the files.

                  May be, Sprites were used in the creation process and are leftovers now.

                  Comment


                  • roy12
                    roy12 commented
                    Editing a comment
                    Actually, when you import a texture in Unity, you have the option to set it as a sprite right in the texture import settings, it's more like a preset. When you export to an asset bundle, it creates that sprite asset automatically. So yeah, maybe it's really leftovers.

                    Also, when you create an actual sprite on the scene, the only images you can put in it are the ones that have Sprite in their import settings, any other preset disallows you from setting it in the image slot of the sprite. I was thinking maybe it was necessary to set them in code as they are doing, but apparently it isn't. How odd, maybe it's a limitation set by the Unity Editor's UI.

                    Then this is better, because I can just make my textures and import them into an empty file with SB3UG.

                • SB3UGS_v1.11 gives me avatar missing bones error when importing mesh from fbx, SB3UGS_v1.10.1 works fine.

                  Comment


                  • Originally posted by plasticmind View Post
                    SB3UGS_v1.11 gives me avatar missing bones error when importing mesh from fbx, SB3UGS_v1.10.1 works fine.
                    Yes, of course. Sb3UGS v1.11 is still requiring an Avatar and the hash codes in it. I have seen Avatars in original files which were invalid when compared to the hierarchy. In such a case you would need to create a virtual Avatar for the root.

                    The order in which Sb3UGS tries to resolve names of bones is full path first, and if that fails then Sb3UGS tries to find the bone's name in the local branch of the mesh below the root, and if that fails also then Sb3UGS tries to find the name in the whole hierarchy - unsharp like in the old implementation.
                    Now when the name has been found, but not in the Avatar then you will get "Avatar misses bone(s): ..." which indicates that the Avatar is incomplete or missing an entry. This is critical for bodies and other meshes which need identical hash codes in AnimationClips. For hair animated by DynamicBone MB physics this would not be a problem. Sb3UGS cant decide such a difference and fails.

                    Creating a virtual Avatar has only one difference now in the v1.11. Select the parent instead of a sibling in older versions.

                    If it still fails then please give me more details about the hierarchy, especially if you are working in an Animator whose root is higher than the Animator's Transform. Or give me your FBX and unity workfiles and I will use it as an example in my next explanation.
                    Last edited by enimaroah; 03-18-2018, 06:04 AM.

                    Comment


                    • plasticmind
                      plasticmind commented
                      Editing a comment
                      thanks, in my case creating a virtual avatar just fixed it.

                  • plasticmind
                    Thank you for your feedback! I will link my post above in the v1.11 release post.

                    Comment


                    • Originally posted by qifenjile View Post
                      Can anyone help me how to use SB2utility to export one part of a cloth mod and add this exported one to another mod.
                      thx.
                      This post here has been better placed than the one in the thread of Sb3UGS. Please avoid cross posts.

                      Clothes are often split into several meshes, may be even submeshes. As long as you want to use any of those meshes or submeshes fully then the task can be done by exporting, importing/replacing where the replacement would probably include the creation of a Mesh Transform.

                      But if you want only a part of a single submesh, then the submesh needs to be split, and that can not be done in Sb3UGS. You will need a 3d editor for this purpose, like Blender, Metasequoia or Maya. Depending on the supported format the difficulty increases.

                      thanks for your reply.

                      I tried to export the mesh from one mod in format FBX 2018. Then when i tried to import it into another mod, SB3U says, missing type difinition for the following type. I cant add this mesh to the mode. what should i do?

                      Comment


                      • You should do what is written in the dialog, "Open AssetBundle files with the missing type definition" and that means
                        1. every file in the abdata folder and all its childs, because all of them are AssetBundle files. Not all of them include the missing type definition(s) though.
                        2. So in your case you have to seek for an AssetBundle file which includes the type definition for a SkinnedMeshRenderer. The first thing that comes to mind would be a body mesh or a clothes mesh. Those are target of skeletal bone animation and for this reason they must be SkinnedMeshRenderers. (meshes with morphs aka BlendShapes, like heads require this as well). In many games from Illusion the files with clothes include the name of the clothes, like cf_socks_00.

                        Now all that you have to do is, open such a file as described in the steps above with Sb3UGS, then repeat the original operation which had shown the dialog with the missing type definition.

                        Comment

                        Working...
                        X