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 playing around with SB3 Utility trying to figure out how to import mesh into xx files. But I don't understand how to use SB3 utility.

    Basically what I want to do is to import hair from PPD to Digital Mate(School Mate 2 Poser) but I cannot add mesh to the xx files.
    Can anyone help me, telling me how to do it step by step?
    Thanks

    Comment


    • A mesh is always hanging in a frame and a frame can host only one mesh. To add a mesh either create a new frame or locate a free (meaning meshless) frame outside of the skeleton. Illusion often uses names which contain "_O_" for mesh frames. The doing is dragging a single mesh from the workspace onto the destination frame in the Object Tree. If the destination frame has the same name as the mesh in the workspace then you dont have to precisely land on the frame. You can simply drop in a free area of the Object Tree (blue area).

      Before creating a new hair style I would recommend to replace an existing one. If that works then care for extending hair style lists, etc.

      For more info about hair please have a look into the Glossary (link in my signature). There are several posts about that topic and even so they are for different games they will be useful still.

      Since you target SM2, I would bid to continue discussing in the modding thread for SM2.

      Comment


      • Originally posted by enimaroah View Post
        A mesh is always hanging in a frame and a frame can host only one mesh. To add a mesh either create a new frame or locate a free (meaning meshless) frame outside of the skeleton. Illusion often uses names which contain "_O_" for mesh frames. The doing is dragging a single mesh from the workspace onto the destination frame in the Object Tree. If the destination frame has the same name as the mesh in the workspace then you dont have to precisely land on the frame. You can simply drop in a free area of the Object Tree (blue area).

        Before creating a new hair style I would recommend to replace an existing one. If that works then care for extending hair style lists, etc.

        For more info about hair please have a look into the Glossary (link in my signature). There are several posts about that topic and even so they are for different games they will be useful still.

        Since you target SM2, I would bid to continue discussing in the modding thread for SM2.
        thanks for replying enimaroah, but unfortunately I cannot found add new frame button or something in SB3 Utility and that makes me more confused.
        How can I add new frames in SB3 Utility? I tried to delete the frame and drag and drop another frame to it but it also doesn't work.

        Also a few weeks ago I already asked this question in SM2 mod discussion thread but no one answer my question.

        Comment


        • Dragging frames works between Object Tree and Workspace only. You cant drag a frame and drop into the origin. The Workspace side can either be an xxFrame or an ImportedFrame. Childframes are automatically copied along. So if you want only one additional frame, drag a leaf frame from the workspace and drag it onto the (later) parent. Aftwards make sure that the name of the new frame(s) is(are) unique.

          When you drag a frame from the Object Tree into a Workspace, you see only a reference to it. If you delete the frame in the Object Tree or change its name, then the frame in the Workspace is immediately changed as well. It always points to its origin, it is not a copy.

          Modding SM2 has lost attraction to many, but you could try to ask YFP

          Comment






          • Is there a way to lock the blendshape while injecting new mesh?
            Attached Files

            Comment


            • Originally posted by sonyv12002 View Post
              Spoiler




              Is there a way to lock the blendshape while injecting new mesh?
              When you replace a morphed mesh with a new mesh you destroy the base of the blendshape and make all morphs invalid. It would make no sense to retain the morph data. Morphs and base mesh have a one morph vertex to one mesh vertex relationship.

              If you want to change a facial expression then you would have to replace a morph not the mesh.

              What do you want to do? Create a new head with all new facial expressions? That would be hard work and is currently not supported by Sb3UGS. Please let me know if you intend to do that.

              Comment


              • Originally posted by enimaroah View Post
                When you replace a morphed mesh with a new mesh you destroy the base of the blendshape and make all morphs invalid. It would make no sense to retain the morph data. Morphs and base mesh have a one morph vertex to one mesh vertex relationship.

                If you want to change a facial expression then you would have to replace a morph not the mesh.

                What do you want to do? Create a new head with all new facial expressions? That would be hard work and is currently not supported by Sb3UGS. Please let me know if you intend to do that.
                Even if I replace the same mesh, the blendshape will still reset to 0. Example the eyelash position...etc.
                I dun like the current head skull..so I remove it. Yes it involve lot of hard work.
                Attached Files
                Last edited by sonyv12002; 06-18-2015, 02:33 AM.

                Comment


                • Yes of course. As I said replacing a mesh always destroys the blendshape data, even if it is the same. You must replace the morphs instead. Are you familar with morphing? You can change the shape of the skull without touching the mesh.

                  Comment


                  • SB3UGS_v1.0.14 extends the mod creation, patching and removal functions to support unity3d files. I forgot to mention a hidden change that came with the previous version. The format of files is no longer detected by the extension .assets and .unity3d. The distinction is based on the content.

                    Download: ge.tt, zippyshare, SF

                    Sources: ge.tt, zippyshare, SF
                    Last edited by enimaroah; 06-19-2015, 03:07 AM. Reason: added mirrors

                    Comment


                    • Why is it that when I try to export a previously imported fbx (that I imported from a 3ds max fbx) sb3u returns this?

                      Started exporting to FBX 2015.1 format...
                      Exception has been thrown by the target of an invocation.
                      Couldn't find frame used by the bone

                      The mesh works fine ingame so I don't understand why this happens or how to fix it.
                      My blog, you can find my mods there too.

                      Comment


                      • Originally posted by roy12 View Post
                        Why is it that when I try to export a previously imported fbx (that I imported from a 3ds max fbx) sb3u returns this?

                        Started exporting to FBX 2015.1 format...
                        Exception has been thrown by the target of an invocation.
                        Couldn't find frame used by the bone

                        The mesh works fine ingame so I don't understand why this happens or how to fix it.
                        Before the actual export, Sb3UGS collects all required frames - including bone frames - and transfers them to FbxSdk. When the mesh's bones are to be transferred, Sb3UGS searches via FbxSdk for the bone's frame und the reported error would mean that a frame without name wasn't found in the scene. You need a valid Avatar for export! The bone doesn't store the frame's name, it stores a hash value for the frame, which Sb3UGS can only resolve with a valid Avatar.

                        Does that mesh have any "red" bones? In that case the skeleton wouldn't be correct.

                        I need some time for checking your sent file.

                        In the file you gave me I opened Animator cf_cosb05. Every mesh's BoneNameHashes table has been corrupted as all hashes are 0. Luckily the SkinnedMeshRenderer still holds the correct reference to the Transform. It will cost you a bunch of time, but you can heal this invalid state as described in How to make changes to a skeleton. For every SkinnedMeshRenderer you want to fix, select every bone (one at a time) and follow steps #8 and #9. If you do this correct, the name of the bone remains the same when you press Return. If you make one error during this and have forgotten the name of the Transform you will have to reload the file and have to begin from the start. So save the file every now and then - with enabled backups, of course.
                        Last edited by enimaroah; 07-03-2015, 12:09 PM. Reason: added fixing instructions

                        Comment


                        • Originally posted by enimaroah View Post
                          Before the actual export, Sb3UGS collects all required frames - including bone frames - and transfers them to FbxSdk. When the mesh's bones are to be transferred, Sb3UGS searches via FbxSdk for the bone's frame und the reported error would mean that a frame without name wasn't found in the scene. You need a valid Avatar for export! The bone doesn't store the frame's name, it stores a hash value for the frame, which Sb3UGS can only resolve with a valid Avatar.

                          Does that mesh have any "red" bones? In that case the skeleton wouldn't be correct.

                          I need some time for checking your sent file.

                          In the file you gave me I opened Animator cf_cosb05. Every mesh's BoneNameHashes table has been corrupted as all hashes are 0. Luckily the SkinnedMeshRenderer still holds the correct reference to the Transform. It will cost you a bunch of time, but you can heal this invalid state as described in How to make changes to a skeleton. For every SkinnedMeshRenderer you want to fix, select every bone (one at a time) and follow steps #8 and #9. If you do this correct, the name of the bone remains the same when you press Return. If you make one error during this and have forgotten the name of the Transform you will have to reload the file and have to begin from the start. So save the file every now and then - with enabled backups, of course.
                          Thanks for the info.

                          Say, wouldn't it be possible to do this with a script that loops through every single bone?

                          Still, manually doing this may be easier than having to reweight everything...

                          EDIT: Now I see I can't do it with a script, since Go to Frame doesn't show any output in the script log.

                          It'd be nice to have an option to disable the autoscroll in the Object Tree tab, mostly when you have like 108 bones.
                          Last edited by roy12; 07-03-2015, 12:53 PM.
                          My blog, you can find my mods there too.

                          Comment


                          • "Goto Frame" is selecting a Transform. Such a selection isn't implemented in scripting functions. The functions need explicit input.

                            The showstopper here is that "Get Hash" has no scripting function, but is implemented in the GUI instead.

                            I am not sure if I have any time this weekend for an update, sorry.

                            Comment


                            • SB3UGS_v1.0.15alpha - Update for a new scripting function: GetTransformHash
                              Code:
                              id = animatorEditor0.GetTransformId(name="cf_J_Spine01_s")
                              hash = animatorEditor0.GetTransformHash(id=id)
                              animatorEditor0.SetMeshBoneHash(id=0, boneId=0, hash=hash)
                              animatorEditor0.SetMeshBoneHash(id=1, boneId=0, hash=hash)
                              increase the value of id upto the id of the last mesh
                              id = animatorEditor0.GetTransformId(name="cf_J_Spine02_s")
                              hash = animatorEditor0.GetTransformHash(id=id)
                              animatorEditor0.SetMeshBoneHash(id=0, boneId=1, hash=hash)
                              ...
                              Download:
                              zippyshare, ge.tt
                              Last edited by enimaroah; 07-03-2015, 03:43 PM.

                              Comment


                              • Originally posted by enimaroah View Post
                                SB3UGS_v1.0.15alpha - Update for a new scripting function: GetTransformHash
                                Code:
                                id = animatorEditor0.GetTransformId(name="cf_J_Spine01_s")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=0, hash=hash)
                                animatorEditor0.SetMeshBoneHash(id=1, boneId=0, hash=hash)
                                increase the value of id upto the id of the last mesh
                                id = animatorEditor0.GetTransformId(name="cf_J_Spine02_s")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=1, hash=hash)
                                ...
                                Download:
                                zippyshare, ge.tt
                                Amazing.

                                I'm gonna try constructing the script with php, unless I can do loops in SB3U's own scripting?

                                EDIT:

                                Damn, I ran this on the first mesh, and it did get the right hashes, but it still throws the same error and won't export:

                                Spoiler


                                Code:
                                id = animatorEditor0.GetTransformId(name="cf_J_Spine01_s")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=0, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Spine02_s")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=1, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Spine03_s")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=2, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Neck_s")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=3, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Head_s")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=4, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Shoulder_s_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=5, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Wrist_s_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=6, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_dam_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=7, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_ArmLow01_s_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=8, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_ArmLow02_s_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=9, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_s_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=10, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Index01_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=11, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Index02_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=12, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Index03_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=13, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Middle01_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=14, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Middle03_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=15, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Middle02_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=16, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Ring01_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=17, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Ring03_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=18, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Ring02_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=19, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Baselit_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=20, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_ArmUp02_s_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=21, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_ArmElboura_s_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=22, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_ArmUp03_s_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=23, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_ArmElbo_low_s_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=24, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Shoulder02_s_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=25, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Mune00_s_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=26, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Mune01_s_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=27, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Mune02_s_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=28, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Mune_Nip01_s_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=29, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Mune03_s_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=30, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Mune04_s_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=31, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Mune_Nip02_s_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=32, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Mune00_s_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=33, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Mune01_s_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=34, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_ArmUp03_s_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=35, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_ArmElboura_s_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=36, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_ArmUp01_s_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=37, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_ArmUp02_s_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=38, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_ArmElbo_low_s_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=39, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Shoulder02_s_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=40, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_ArmLow01_s_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=41, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_dam_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=42, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Shoulder_s_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=43, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Wrist_s_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=44, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Index01_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=45, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_ArmLow02_s_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=46, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Middle01_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=47, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Middle03_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=48, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_s_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=49, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Index02_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=50, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Index03_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=51, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Middle02_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=52, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Baselit_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=53, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Ring03_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=54, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Ring01_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=55, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Little02_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=56, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Ring02_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=57, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Little01_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=58, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Little03_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=59, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Thumb01_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=60, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Thumb03_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=61, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_ArmUp01_s_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=62, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Thumb00_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=63, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Thumb02_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=64, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Mune02_s_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=65, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Mune04_s_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=66, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Mune_Nip01_s_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=67, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Mune03_s_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=68, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Mune_Nip02_s_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=69, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_LegKnee_low_s_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=70, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_LegUp03_s_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=71, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_LegKnee_back_s_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=72, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_LegUpDam_s_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=73, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_LegUpDam_s_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=74, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_LegUp01_s_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=75, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_LegLow01_s_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=76, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Foot01_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=77, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_LegLow02_s_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=78, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Foot02_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=79, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Toes01_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=80, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_LegLow03_s_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=81, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Toes02_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=82, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_LegUp02_s_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=83, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Thumb02_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=84, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Thumb03_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=85, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Little01_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=86, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Little02_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=87, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Little03_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=88, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Thumb00_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=89, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Hand_Thumb01_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=90, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Kosi01_s")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=91, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Kosi02_s")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=92, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Kokan_s")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=93, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Siri_s_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=94, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_LegUp01_s_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=95, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_LegLow01_s_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=96, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_LegLow02_s_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=97, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Foot02_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=98, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Toes01_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=99, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_LegLow03_s_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=100, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Toes02_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=101, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Foot01_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=102, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_LegKnee_low_s_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=103, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_LegUp03_s_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=104, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_LegUp02_s_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=105, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_LegKnee_back_s_L")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=106, hash=hash)
                                id = animatorEditor0.GetTransformId(name="cf_J_Siri_s_R")
                                hash = animatorEditor0.GetTransformHash(id=id)
                                animatorEditor0.SetMeshBoneHash(id=0, boneId=107, hash=hash)


                                EDIT2: Oh wow, it actually exports. The problem was exporting it from the bondage_00H animator. I'm guessing the hashes are different per animator. With the hashes set, I set the material in cf_cosb05, and now export works.

                                I'll see if I can put the php script on a free server for quick generation of the SB3U script. That or port it to C++ or something.

                                EDIT3: Fixed already, thanks a lot for the help enimaroah.
                                Last edited by roy12; 07-05-2015, 12:47 PM.
                                My blog, you can find my mods there too.

                                Comment

                                Working...
                                X