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

enimaroah

Modding Dai Shogun
Apr 8, 2013
491
323
The Hitchhiker's Guide to the Galaxy by Douglas Adams said:
"and we'll be saying a big hello to all intelligent life forms everywhere ... and to everyone else out there, the secret is to bang the rocks together, guys. And of course, the big news story tonight is the sensational"
SB3Utility(GUI+Script) made by Alamar with a few ideas and additions from enimaroah - me. Concepts and requirements have been posted at HF.

Note: Currently all names written in bold face are referring to members of HongFire. This may change when members of ASF contribute in any form to it and will therefore be named likewise.

Old news in the spoiler
What's New in [size=+1]SB3Utility(GUI+Script) 1.0.52[/size]?

UnityPlugin:
  • Added support for compressed Asset Bundle files
  • Fixed crash after LoadAndSetMesh() for meshes unmatching current Avatar
  • Added renaming AssetBundle assets
  • Fixed CreateFrame() when replacing meshes if a Transform with the mesh's name already exists
  • Fixed FlareLayer size
  • Fixed creating Transform when Avatar had no entry for parent
  • Removed requirement of Avatar when creating and renaming Transforms
  • Fixed Log and Script window could vanish after being made floating and docking back
  • Fixed crash in FBX export for renderers with external meshes or no mesh at all, e.g. ParticleSystemRenderers - thanks to ramoram
  • Added Bone path of Transform to PathID info - requested by ayryz
  • Fixed SetRendererAttributes lightmap parameter
  • Fixed missing dependencies of ParticleSystemRenderer assets in AssetBundle

Known Issues
  • Fbx exports of skinned meshes can have no weights on some vertices of submeshes behind the first.
    This is caused by an optimization of Unity. FbxSdk reverts this optimization on import. Replace and export again.
  • Ctrl-C/Ctrl-V dont work in the Log window and Command window when a unity file is loaded. Use Shift-Ctrl-C and Shift-Ctrl-V respectively.
  • UnityPlugin has memory leaks.
  • Windows 7 Home Premium x64 : SB3Utility opens but doesn't respond and the right side doesn't show the renderer window. Install SlimDX x86 manually!
  • FBX: For XAs, interpolation still doesn't have Euler Continuity.
  • Shortcut keys dont work in the Script window and Log window
  • Crashes aren't logged.
  • UnityPlugin handles Cubemaps as Texture2D and drops the m_SourceTextures.
What's In?
  • Support for all Illusion games supported by the old SB3Utility plus HET, Musu, PPD / PSP, IW, RP, AA2, HM*​, PC*​, SBPR*​, SecS*​.
  • pp, xx and xa files can be dropped (or opened) directly.
  • Import formats: MQO (Metasequoia), X (DirectX), DAE1​ (Collada), FBX1​ (Autodesk), 3DS1​ (3DMax), OBJ1​, DXF1​ (AutoCAD), NIF
    1) imported by FbxSDK
  • Export formats: All of the above except for 3DS. Morphs exported as MQO are named *.morph.mqo.
  • Dragging and dropping of frame hierarchies, meshes, materials and textures from and to the Object Tree and Workspace. Morphs and animations in the workspace have to be dropped into their own views for replacement.
  • Meshes are shown in the renderer which is based on directx. Skeleton bone animation is also visible. Submeshes are highlighted when selected.
  • Scripting allows automated modding; even without the GUI!
What's Not In?
  • No xx filter, but you can bind animations to the correct gender with XX Lock & Map using regular expressions.
  • The animation track editor hasn't been ported, but there is a Keyframe editor and an extension written by ganota from UV. moff moff kindly reposted it here.
What's Extra?
  • ODF/ODA support for TeaTime/FullTime games including morphs and animations.
  • FPK/REM/REA support for REAL/Interheart games including animations.
  • PPD_Clothes_Preview - lets you see selected clothes in the preview of PPD (HET?), SVIEX correction
  • *) UnityPlugin allows to edit Unity3d files, especially those in HM, PC, SBPR.

Documentation:
There is none, but you can find tutorials with examples for many games in the [size=+1]Glossary on HF[/size] and [size=+1]Glossary & Tutorials on ASF[/size].​

Requirements:
  • Fonts: Microsoft Sans Serif, MS PGothic, Tahoma
  • .Net Framework 4.0
  • VC++ redistributables: 2010, 2012 (included in binary releases)
  • SlimDX 32bit (included in binary releases)
Required until 0.4.42.42a:
VC++ 2010 redist., SlimDX's 32 bit Runtime for .NET4.0 or SDK at least from January 2012.
Even if you run a 64-bit Windows, you must install the 32-bit version of SlimDX!​

SB3Utility and plugins download:
SB3Utility repositories on github:
  • master - no versioning, no extra plugins
  • forked - no versioning, ODF and Aidroid plugins


Big thanks from me to Alamar for starting development of SB3U a second time and working together with me; also to SSP, the inventor of the tools required to mod REAL games.
Additional thanks to darkhound and Inquisitor for technical suggestions and comments.
And thanks to the HF community for reporting errors and making suggestions for improvements.

History of changes is included in the releases. I no longer maintain them here except for the predecessor.
SB3Utility(GUI+Script) 1.0.51
  • Added support for RGB24 BMP format - thanks to ramoram
  • Added Material editor multi selection handling - thanks to ramoram
  • Added extra exception handling after saving file to prevent double deletion - thanks to Syncroz
  • Added support for CharacterJoint assets
  • Changes in saving Unity files to allow creating mods
  • Fixed writing Mesh asset - mostly Unity5
  • Fixed Unity5 handling for Sprite
  • Fixed morph preview after replacing mesh - thanks to linkerman
  • Fixed AnimationClip list not showing changes for the same clip in other lines - thanks to linkerman
  • Added SetMaterialTextureAttributes() to set offset and scaling of textures - thanks to DillDoe
  • Fixed ConvertRenderer() in *.assets files
    [Pasting MeshRenderers into *.assets files drops Material references]
  • Added persisting status of View menu: Image/Renderer, Log, Script - thanks to izum1
  • Added locking gui layout - thanks to DillDoe
  • Added sorting file tabs by type and name - thanks to DillDoe
  • Added Materials to Texture Animator which is therefore now called MaterialTextureAnimator - thanks to aastaroth
  • Added three background choices in Texture editor - thanks to aastaroth
  • Changed "Select All Loaded" and "Unselect All" to include Material tab
  • Added editing of TextAssets and textual MonoBehaviours - thanks to navmesh
 
Last edited:
Re: SB3Utility (GUI + Script)

Please can you point out a piece of code with these fixes?
Okay, I'll publish it soon. Hopefully today, because I will be off for a few days starting tomorrow.

\Plugins\SB3UtilityPP\ppFormat.cs
Code:
93. private string Name { get; set; }
Why private? Change to:
Code:
public string Name { get; protected set; }
No :) See the overriding ToString() method. And there is no need to change the Name later.
 
Re: SB3Utility (GUI + Script)

What kind of problem is that? --> E_OUTOFMEMORY: Ran out of memory (-2147024882)
This happen everytime, after I open an 15th or 20th xx files and no matter what I do, want to insert a mesh or insert/ replace a texture, etc., I get this wanrning message and SB3U is crashing.
 
Re: SB3Utility (GUI + Script)

What kind of problem is that? --> E_OUTOFMEMORY: Ran out of memory (-2147024882)
This happen everytime, after I open an 15th or 20th xx files and no matter what I do, want to insert a mesh or insert/ replace a texture, etc., I get this wanrning message and SB3U is crashing.
Every opening of a xx or xa needs memory and this memory is NOT released by closing the editor! The memory is still needed until the pp file is written and CLOSED.

You can either save the pp file after your work on a few xx/xa units and restart SB3UGS afterwards (waiting for automatic garbage collection can take longer) or you could try to Reopen the pp file after saving and continue working without restart of SB3UGS.
 
Re: SB3Utility (GUI + Script)

An update with brand new features!

Version 0.6.9 features:
  • Fix for bone selection after "Min Bones"
  • Fix for display of Bones, added visible full skeleton
  • Added deleting unused materials and textures with preview
  • Added workspace "Automatic Material Translation" and "Append Missing Materials And Textures"
  • Added synchronization of Workspaces
  • Added frame and bone matrix correction after transformation changes

The newest feature is that bones are shown in three colours. Red still is the selected bone. The skeleton is shown completely. The old blue color shows bones which are used by the mesh, while the purple bones are only shown to view the full skeleton (bones without weights).

Binaries for everyone - Unskinned meshes let this version hang. Fixing in progress.
Sources for programmers
 

Attachments

  • MoreVisibleBones02.jpg
    MoreVisibleBones02.jpg
    195.6 KB · Views: 1,068
Last edited:
Re: SB3Utility (GUI + Script)

SB3UGS_v0.6.11 fixes some problems with the display of bones.

If two bones have identical world transformation matrices - like a01_J_UdeL_01 and a01_J_HijiL_01 - former versions didn't show both when selected. One of them was always hidden when selected.
MoreVisibleBones03a.jpg MoreVisibleBones03b.jpg

Bones with Identity matrix in their bone frame might be drawn upside down to be seen easier. The upper two would be hidden by the purple unused bones (if unselected).
MoreVisibleBones03c.jpg
 
Re: SB3Utility (GUI + Script)

SB3UGS_v0.6.12epsilon should have been a release version since I am ready with all dialogs and the Add Bone to Selected Meshes function. But I got an error report which seems to indicate a problem with the rescalable dialogs. I therefore changed some dialog flags, mostly changing visual aspects e.g. the icon at the titlebar.

Add Bone to Selected Meshes is a single click for Copy->New in the Bone Editor, renaming that new bone to the frame (the frame you are now selecting), computing the Combined + Inverse transformation matrix and copying it to the bone's. The new bone of that mesh will change its colour from purple to blue for indication that it is now a used bone.
 

Attachments

  • AddBoneToSelectedMeshes.jpg
    AddBoneToSelectedMeshes.jpg
    172.9 KB · Views: 541
Re: SB3Utility (GUI + Script)

SB3UGS_v0.6.12 allows to edit the morph mask in Metasequoia.

The following things are different to FBX:
  • You can edit the morph mask in one single mesh object (every mesh object is fine). Before saving the MQO: make the one with the changed morph mask visible. The first visible mesh object is considered by SB3U to define the morph mask (in the workspace). If none is visible SB3U takes the first mesh object.
  • Every other vertex colour than blue is not included in the morph mask. If you want to remove a vertex from the morph mask, make it white. This will make the vertex show the normal mesh object. Dont use Erase vertex color! That would make the vertex transparent as can be seen below.
    MorphMaskEditing05-mqo.jpg
    Additional hint: Dont SNAP vertices! One of the vertices will be deleted in Metasequoia which immediately makes your morph invalid for the games!

  • MQO files dont transport normals! A replaced morph from an MQO can show the morph mask, but this is caused by the absence of normals! Use the Mesh editor for computation of the normals of the XA.
    MorphMaskEditing04-mqo.jpg
SB3UGS_v0.6.12 also includes a fix for morphs exported as FBX. Duplicate keyframes in a clip are now exported only once. Former versions didn't filter doubletes.
 
Re: SB3Utility (GUI + Script)

:loudverdict: SB3Utility v0.8.0 is out!

While this update consolidates the last errors (reported and unreported), the biggest new feature is the ability to import NIF files. This allows to use skinned Skyrim models in Maya. Later updates might include support for animations and morphs, and I will also try to find a way for exporting NIF files.

Download here.
 

Attachments

  • NifBridge01.jpg
    NifBridge01.jpg
    253.8 KB · Views: 538
Re: SB3Utility (GUI + Script)

Hello, May I ask if there's a way to export the mesh without losing the rig?
Thanks.
 
Re: SB3Utility (GUI + Script)

FP has been updated to current version as it is not clear when HF shows up.

The next release could also be posted here. I have the Unity plugin ready to work on all Unity5 files. Compressed AssetBundles are always converted to uncompressed. If you have fast IO then the current game (Secrossphere) can load all maps, sounds and animations faster. You just have to open the file with Sb3UGS and save it.
 
  • Like
Reactions: Inquisitor
Re: SB3Utility (GUI + Script)

SB3Utility(GUI+Script) 1.0.52 is out. The list of changes and download links are included in the FP.

Top 3 changes:


  1. As describe above it allows to edit compressed AssetBundle files which are located in the StreamingAssets subfolder. Although small in size all sound files are good candidates for unpacking because the AudioClips inside the compressed AssetBundle files are already compressed (FSB5). This means that the original files are always unpacked twice before you can hear any sound. The next speedup you can see by unpacking the map files.

    Loading and saving files are still scriptable. So such a speedup of all files could be made an option in an HF-patch :)

  2. The removal of the requirement to have an Avatar in the Animator. This allows easier work on maps, but it has a risk for working on SkinnedMeshRenderers with bones: if you forget to set the Avatar in a virtual Animator the Avatar could get incomplete. Synchronizing the Avatar later is not so easy and you might have to repeat all changes in the non-p Animator. So watch carefully when opening virtual Animators. Sb3UGS shows a warning about the Avatar is uses or can not find respectively.

  3. ParticleSystemRenderers lost their materials and were shown completely pink after any change in the file. The fix for this is also important for SBPR.

Have fun modding!
 
Re: SB3Utility (GUI + Script)

SB3Utility(GUI+Script) 1.0.53alpha

  • Animator.StringToHash() integrated
  • Added "Copy & Paste" support for: ParticleSystem, ParticleSystemRenderer, BoxCollider, MeshCollider, SphereCollider
  • Fixed CharacterJoint asset for Unity4

Download:
megafileupload, sendspace
 
Last edited:
  • Like
Reactions: FoolBoy
Re: SB3Utility (GUI + Script)

Is it normal that 1.0.53alpha has a much smaller size than other versions?
1.0.52 is 10MB but 1.0.53alpha is just 5MB?
 
  • Like
Reactions: trtlatstewa
Re: SB3Utility (GUI + Script)

Nice to see that you found me :)

Yes, I had explained it in the now inaccessible release post. After approximately one and a half year I found out that bone hashes (also used for finding animation tracks) are computed with the CRC32 algorithm found in the 7zip implementation, which I just used to unpack compressed asset bundles. I made a salmon leap when I found out :D This made my Unity program named ArgToHash useless which is about 20m in size.

The next version will increase in size again, because it will support FSB5 sounds found in Unity5. The FMOD library can play all other sound formats like wav and ogg. So irrKlang will be completely replaced by that FMOD, but that is bigger.
 
  • Like
Reactions: trtlatstewa
Re: SB3Utility (GUI + Script)

...Added "Copy & Paste" support for: ParticleSystem, ParticleSystemRenderer, BoxCollider, MeshCollider, SphereCollider...

Can you show me how you do this?
I tried to copy the animator (which contains them), drag and drop to workspace, copy from "MonoB & Other" tag, but none of these methods seem working.
 
  • Like
Reactions: trtlatstewa
Re: SB3Utility (GUI + Script)

Can you show me how you do this?
I tried to copy the animator (which contains them), drag and drop to workspace, copy from "MonoB & Other" tag, but none of these methods seem working.

This is excatly what should work. Hm. I tested with SBPR's map_00_04.unity3d, Animator p_sb4_map_0358 and pasted it into weapon_01.unity3d. "Copy & Paste" always means "Mark for Copying" & "Paste all Marked", it does not refer to the workspace. I need to work on the workspace part, because the Transforms can be transported that way but other assets cant.

A MonoBehaviour is not a good asset to start with if you have a whole hierarchy in mind that you wish to copy. I was on the wrong track here.
 
  • Like
Reactions: trtlatstewa
Re: SB3Utility (GUI + Script)

This is excatly what should work. Hm. I tested with SBPR's map_00_04.unity3d, Animator p_sb4_map_0358 and pasted it into weapon_01.unity3d. "Copy & Paste" always means "Mark for Copying" & "Paste all Marked", it does not refer to the workspace. I need to work on the workspace part, because the Transforms can be transported that way but other assets cant.

A MonoBehaviour is not a good asset to start with if you have a whole hierarchy in mind that you wish to copy. I was on the wrong track here.

I think I am late to reply this quote/post. I was away recovering my health wasn't online for days. Today I came to find out that HF is down again (-_-). Hope that we don't roll back to December, hahaha. I tested 1.053 Alpha and "Copy-Paste" transform worked. After creating item fog and item waterfall caused the game to crash. Don't know the reason yet but I will look at it much later. Had used a different tactics to make it work.
RmAAo0cT.jpg
6cqyd7F.jpg


Let's enjoy the Euro Cup 2016

PS:
I don't know how the spoiler thing works here. And since connection speed is very slow. So sorry for the large picture post.
 

Users who are viewing this thread