These are the steps to make sure the rig is setup the same as for VRChat Unity package after editing. ((Some Basic Blender knowledge is required in these steps as in combining meshes, running python scirpts, and adjusting material order.)) (((Be sure to export with these settings under Transform inside Blender))) Scale 1.00, Apply Scalings (FBX All), Forward (-Z Forward), Up (Y Up), Apply Unit: (checked), Apply Transform: (not checked.) Keep and combine the meshes you wish to keep, (may require CAT's plugin or any method of combining meshes together in Blender.) (Will need to combine otherwise visemes won't work well) After combining, do the 2 python scripts bellow on the avatar's main combined mesh's. There be a list after the scripts of order you want to do the materials to try and keep slot order the same (As far my experience if it ever changed like new material added it just randomly orders and breaks any material swapping animation) (Just something always struggled to deal with in Unity2019) If keeping Digi grade option rig, make sure planti boxes are separate so can be hidden easily by deleting mesh rendering in Unity After ordering the blendshaes and renaming for MMD, the rest of the steps can be ignored but just in case you want to make sure, I left in the steps I do after exporting from Maya. (You will still need to check the Ankle rolls as for some reason it keeps flipping that back) ((make sure the roll is correct on the Ankle Joints set correct down bellow whenever empty skin weighted joints are deleted)) Python script 1: found at link: Link to it https://blender.stackexchange.com/questions/149738/how-to-sort-shape-keys-by-a-to-z-in-blender-2-8 ordering Blendshapes by alphabatizing on mesh that is selected: -------------------------------------------- copy scripts bellow #start1 import bpy ob = bpy.context.object skeys = ob.data.shape_keys.key_blocks skey_names = sorted(skeys.keys(), key=lambda v: v.upper()) for name in skey_names: idx = skeys.keys().index(name) ob.active_shape_key_index = idx bpy.ops.object.shape_key_move(type='BOTTOM') #end of script1: Python script 2: found at link: https://blender.stackexchange.com/questions/254643/rename-shape-keys-with-python This Renames the blendshapes of selected mesh to MMD blendshape names but make sure blendshape "Basis" on top first: (This only works on main mesh with all MMD blendshapes are listed correctly. The list of them all are bellow as example "MMD10_O_O はちゅ目" as first blendshape. it simply names from top down so they need to be ordered top of the list and in alphabit. ------------------------------ #copy script bellow: #start2 import bpy, re # get the selected object selected_object = bpy.context.object # get its shapekeys shape_keys = selected_object.data.shape_keys.key_blocks names = ['はちゅ目', 'わぉ?!', 'なごみω', '悲しむ', '敵意', '瞳小', '恐ろしい子!', 'あ', 'あ2', 'え', 'い', 'ん', 'お', 'う', '怒り', '下', 'にこり', '困る', '上', '喜び', '笑い', 'まばたき', 'にっこり', 'ウィンク', 'ウィンク右', 'ウィンク2右', 'ウィンク2', 'なごみ', 'はぅ', 'びっくり', 'じと目'] # loop through shapekeys and replace the names for index, key in enumerate(shape_keys): if key.name != "Basis": try: key.name = names[index - 1] except: pass #end of script2: # MMD listed blendshapes and translation MMD10_O_O はちゅ目 MMD11_Waoh わぉ?! MMD12_Howawa なごみω MMD13_Wail 悲しむ MMD14_Hostility 敵意 MMD15_EyeSmall 瞳小 MMD16_EyeFunky 恐ろしい子! MMD17_Vis_A あ MMD17_Vis_A2 あ2 MMD17_Vis_E え MMD17_Vis_I い MMD17_Vis_N ん (was half of NN blend) MMD17_Vis_O お MMD17_Vis_U う MMD18_Brow_Angrey 怒り MMD18_Brow_Down 下 MMD18_Brow_Smiley にこり MMD18_Brow_Trouble 困る MMD18_Brow_Up 上 MMD1_Joy 喜び MMD2_BlinkHappy 笑い MMD3_Blink まばたき MMD4_MouthSmile にっこり MMD5_WinkL ウィンク MMD5_WinkL_Happy ウィンク右 MMD5_WinkR ウィンク2右 MMD5_WinkR_Happy ウィンク2 MMD6_Howawa なごみ MMD7_EyesSqueeze はぅ MMD8_HA びっくり MMD9_JitoEye じと目 Order of Materials in Blender: BodyMatt Credits EyesInnerMatt EyesOuterMatt HairMatt MiscMatt PropsMisk_Matt WhiskersMatt (Rig edits after importing from Maya) These are my pipeline steps through Blender from Maya. -Reparent Neck on top of ChestUp -for Digi parent Ankles to TopFut -Make sure Toes are rotated correctly in the set rotations saved Right ankle needs to be rolled 180 (For some reason it flips on that side) Toes roll angles to straiten orientation: Rolls: Right Ankle 180 ToeIndex1_R 10 ToeIndex2_R 106 ToeMid1_R 178 ToeMid2_R 180 ToeRing1_R -50 ToeRing2_R -160 ToePinky1_R -9 ToePinky2_R -105 ToeIndex1_L -10 ToeIndex2_L -106 ToeMid1_L -178 ToeMid2_L -180 ToeRing1_L 50 ToeRing2_L 160 ToePinky1_L 9 ToePinky2_L 105 Planti leg Rotations Rolls: Right Ankle 105 ToeIndex1_R -12 ToeIndex2_R 106 ToeMid1_R 178 ToeMid2_R 180 ToeRing1_R -50 ToeRing2_R -160 ToePinky1_R 9 ToePinky2_R -105 Left Ankle -105 ToeIndex1_L 12 ToeIndex2_L -106 ToeMid1_L -178 ToeMid2_L -180 ToeRing1_L 50 ToeRing2_L 160 ToePinky1_L -9 ToePinky2_L 105