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

  • Hi enimaroah,

    Would you give your opinion on this feature request about the .xx file workspace?
    Spoiler



    Currently, I can find out what materials and textures are associated with the frame in SB3UGS, but I must drag and drop the materials and textures manually.
    I think it would be a great convenience if the materials and textures associated with that particular object are also included when the object is dropped in the workspace.

    when I drag the frame, the great majority of the time I would need the materials and textures as well, maybe others work differently?. So I hope that it could be possible that one drag and drop will take care of the the materials and textures as well!

    BTW, I use SB3UGS to rig Tachikoma from Ghost in the Shell, I relied heavily on the scripting functions to take care of repetitive tasks, the mod wouldn't be possible without the scripting functions!

    regarding my other projects, I wrote a small program that would automatically batch-process fbx and obj exported from other games and subsequently generate SB3UGS scripts to process these objects into .pp files. However, now I need to take a serious look making the .xl files for these maps, it would be nice if the GUI is there. But I understand, I will wait patiently until more modders feel the need for it.

    Thank you very much!
    Last edited by bdpq; 05-23-2013, 07:32 AM.

    Comment


    • This request is mesh specific. I think I will make that possible, but slightly different. When dragging a frame - including a mesh frame - the functionality will stay the same. But currently there is no sense in dragging the mesh into a workspace and if you do that the mesh will stay uselessly there.
      1. I will change that and dragging the mesh into the workspace shall get a meaning. This approach has a disadvantage: it works for one mesh only.
      2. While if I would change the frame handling you could drag the whole contents of an XX into the workspace at once.

      Still I would favor the first variant.

      The automatic rigging (New Skin) in SB3U would not be sufficient for skeletal bone animation. I guess you have used Max for that task. But it's nice that the scripting abilities were helpful for easing the creation of the mod!

      Currently I have prioritized the ODFPlugin, because of the release of Underoid. A few small things have to be corrected. And I also want to support a new interested modder in making a female uncensor. So support for external tools in SB3U will not come soon. I had used existing XL units from other maps in the past and just renamed them. That usually is sufficient as a start and can be improved later.

      Comment


      • Originally posted by enimaroah View Post
        1. I will change that and dragging the mesh into the workspace shall get a meaning. This approach has a disadvantage: it works for one mesh only.
        2. While if I would change the frame handling you could drag the whole contents of an XX into the workspace at once.

        Still I would favor the first variant.
        hmm... come to think about it, most of the time the map .xx files that I am dealing with right now are so big, having the entire .xx content into the workspace at once would be cumbersome... (have to remove a bunch of them, but then again, if the "delete key" works...) so I think option 2 would be out.

        as for option 1, do you mean if I drag one mesh, and the associated submesh, submesh materials and textures would be appear together on workspace? that would be swell!

        As for my myriad feature requests, please understand that I am from Canada, we are OK with waiting in lines for everything. It is nice to know that you are taking our requests so seriously!

        Comment


        • eh... sorry to add to the questions before you had chance to address the one above...

          So here is an interesting behaviour that I don't fully understand. In this screenshots there are two nice Gallardo, one shows a really strange glow from the interior and the other does not.
          Spoiler



          The PP file is packaged here, Just use the default PARK map.

          Both resides in the same .pp file, same structure, and same materials. I used to think this is probably a secret hex code that turn the glow on or off. so I experimented for hours...

          No, it's not in the hex. I tried a bunch of hex codes using memory hacking tools so I can see the effect in realtime.

          It has something to do with Normal calculation. in the glowing one, I calculated the normal using SB3UGS, I tried very small value such as 0.000001 and also big on like 1, the glow is there...

          However the in "no glow" version, I did not recalculate the normals after imported into SB3UGS. The funny thing is that the meshes were exported out of SB3UGS for editing in Metasequoia!!

          so are there some "mystery unknowns" some where in the xx that we don't see?
          Last edited by bdpq; 05-25-2013, 12:49 PM.

          Comment


          • Sorry for not replying, I thought it would be clear that there will be the agreed version #1 on my todo list.

            I'll check the pp file, but I'm pretty sure that it could be found. All hex values are made visible in the Hex Editor.

            Edit: the extra glow is also visible on the frame of the front glass. And N5 has a different number of submeshes.
            Edit2: the glow version of N4 has some normals (many invalid), while the non glow version has no normals at all.
            Edit3: the first screenshot shows the result after correcting all normals of the glowing version. It is now correctly lit. Then I edited the seat's material to lower the intensity - screenshot #2.
            Attached Files
            Last edited by enimaroah; 05-25-2013, 02:20 PM.

            Comment


            • SB3UGS_v0.4.42.53gamma on MU, SF

              Allows to drop meshes from the Object Tree into a workspace. Instead of the mesh it's mesh frame appears and all used materials and textures.

              Additionally I added a filter which ignores every second instance of any object in that workspace. So dropping the same mesh a second time doesn't add anything. Keep that in mind when dropping frames, they will also not appear a second time.
              Attached Files

              Comment


              • enimaroah, thanks for looking over the pp files.

                so is it safe to assume that the lighting bug is in illusion's own map? I have then noticed other illusion's own item also showed really really white glare in some maps.

                I almost want to say in this particular example I'd prefer the no normals at all.

                so, can you shed some more light, *pun intended* on this normals calculations issue? should I use a big threshold, or a small threshold? or different thresholds depends on the object? what would be a good way to do them to avoid generating invalid normals?

                thank you!

                Comment


                • I would consider it a bug when no or bad normals are present, but may be this had been used as a special effect or that object was shown only from a particular angle. Many games from Illusion bring xl units for each map. These include dynamic light sources which can point into a direction and can produce a colour shifting as in sunsets or similar. A material's attributes can ignore these effects or amplify them. So you can judge only a complete scene and not an isolated part of that scene.

                  PPD is playing much with light and having no normals spoils it. So if I'd consider to release an item for PPD it had perfect normals and materials with attributes which allow dynamic lighting.

                  Back on topic, the normals computation with a negative number is fast, but not considering unwelded meshes. Using a positive threshold is required for unwelded meshes. The exact value depends on your mesh - on the faces to be precise. Imagine a great flat square field with only one corner having a high poly count to build an object with many small faces. You would have some triangles with one very far vertex. The threshold allows to ignore these far distant vertices. But what is far and what is near? It depends on the scale.

                  Comment


                  • thank you for the SB3UGS_v0.4.42.53gamma release! having materials and textures together with the mesh really speed things up a lot for me.

                    Comment


                    • Originally posted by enimaroah View Post

                      Back on topic, the normals computation with a negative number is fast, but not considering unwelded meshes. Using a positive threshold is required for unwelded meshes. The exact value depends on your mesh - on the faces to be precise. Imagine a great flat square field with only one corner having a high poly count to build an object with many small faces. You would have some triangles with one very far vertex. The threshold allows to ignore these far distant vertices. But what is far and what is near? It depends on the scale.
                      Man, I don't understand a word of that, but I dig the crazy lingo.
                      But, one day, I will attain that knowledge. Even if it requires me to go hookerless for a month!

                      Originally posted by bdpq View Post
                      thank you for the SB3UGS_v0.4.42.53gamma release! having materials and textures together with the mesh really speed things up a lot for me.
                      Yes, thanks enimaroah! And thanks for that filter as well.
                      huh?

                      Comment


                      • The term "unwelded" is Max specific because the function to eliminate additional vertices on the same point in space was named so. Computing normals in SB3U with any negative threshold doesn't "see" two adjacent faces if the vertices have been doubled (each face has it's own vertices). And this means that such a face looks as if it would be a border while it might be in the middle of a bigger area. In Metasequoia you'd see such an area ripping if you'd move a single vertex (selected with a click instead of making a rectangular selection).

                        Hope that clears at least "unwelded". Please ask more specific and I'll try my best to explain.
                        Last edited by enimaroah; 05-27-2013, 01:17 AM.

                        Comment


                        • Originally posted by enimaroah View Post
                          The term "unwelded" is Max specific because the function to eliminate additional vertices on the same point in space was named so. Computing normals in SB3U with any negative threshold doesn't "see" two adjacent faces if the vertices have been doubled (each face has it's own vertices). And this means that such a face looks as if it would be a border while it might be in the middle of a bigger area. In Metasequoia you'd see such an area ripping if you'd move a single vertex (selected with a click instead of making a rectangular selection).

                          Hope that clears at least "unwelded". Please ask more specific and I'll try my best to explain.
                          Thanks for the further info, but your knowledge is still light years above my ability to grasp what you are describing.
                          To try and make it more simple or noob ready would defeat the actual context of what you've stated. I like the concise technical explanation, I'm just not to the point of needing to know that....yet.
                          But, like I said..one day.

                          I do have a question regarding SB3UGUI's Materials Tab/Textures Used, as I often find myself juggling through trying to achieve reflection.

                          There are four "textures used" drop down menus.
                          Are they specific in order?

                          as in...

                          First drop down menu is for Diffuse
                          Second is for Ambient
                          Third is for Specular
                          and Fourth is for Emissive

                          I've always wondered about this, since they are not marked as such.
                          huh?

                          Comment


                          • They seem to be used like that, but every game could handle that differently. SB3U presents those textures in the same order as they are arranged in the xx unit. But binary data doesn't come documented^^.

                            I'm eagerly waiting for that day when you ask. In the meantime I'll do my exercises from a collection of mathematical papers from Sir William Rowan Hamilton. I still try to understand - and not only to use - Quaternions.

                            Comment


                            • First drop down menu is for Diffuse
                              Second is for Ambient
                              Third is for Specular
                              and Fourth is for Emissive
                              since we talk about this, i have an Question about this, why is the row changed since
                              of SB3U because the old version starts with:
                              Diffuse
                              Ambient
                              Emissive
                              Specular
                              enimaroah's versions starts with:
                              Diffuse
                              Ambient
                              Specular
                              Emissive

                              also why is there a diffrent between the mesh row?
                              if i have 4 frames in a mesh like this: o01_P_adgsfh0,o01_P_Body,o01_P_qetwry0,o01_P_zcbxv n0 some versions of SB3U starts with another frame at the top why is that?

                              For your own safety, don't use Windows 10
                              Google is your best friend, Microsoft your worst enemy

                              Comment


                              • Originally posted by mk2000 View Post
                                since we talk about this, i have an Question about this, why is the row changed since
                                of SB3U because the old version starts with:
                                Diffuse
                                Ambient
                                Emissive
                                Specular
                                enimaroah's versions starts with:
                                Diffuse
                                Ambient
                                Specular
                                Emissive

                                also why is there a diffrent between the mesh row?
                                if i have 4 frames in a mesh like this: o01_P_adgsfh0,o01_P_Body,o01_P_qetwry0,o01_P_zcbxv n0 some versions of SB3U starts with another frame at the top why is that?
                                The first question could be answered by Alamar only. He made the new layout and I have no idea why he decided to put it in this different order.

                                The layout of the frames in the Object Tree is also new and Alamar decided to show meshes before child frames. This emphasizes the special meaning of the mesh frame and I consider this a good decision. The order of child frames shouldn't matter - at least to my knowledge Illusion doesn't use an index to address a frame. And you wouldn't want to count it

                                Comment

                                Working...
                                X