April 19Apr 19 Localization The format is actually fairly well-documented. The problem is that none of the tools available for ripping them work quite right. None of them handle materials, the ones that handle UVs get them blown up to a ridiculous scale, and if there are vertex colors, the model is going to break entirely. The Noesis script linked is the closest to being correct, but it appears to be mistaking colors as a third UVW vector. I'm mostly hoping for it to be fixed so that the majority of models in this format can actually be properly ripped, even if the actual materials have to be manually created. In the following ZIP, I've included several examples from the Machi-Chara software, and PVMicro, an official tool, to see what the models "should" look like. mbac.zip
April 19Apr 19 Author Localization 2 hours ago, Durik256 said: try it : fmt_mbac.py This is the noesis plugin I already linked to I appreciate you making it four years ago, but it has the already mentioned issues, and doesn't seem to have been updated to fix them.
April 19Apr 19 Supporter For Hitsuji_no_Shitsuji-kun_(Butler_Course).mbac there is a very interesting problem with Quote def setUVs(self, uvList, slot = 0): noesis.validateListType(uvList, NoeVec3) which says --------------------------- Noesis Python Error --------------------------- Traceback (most recent call last): File "C:\Noesis\noesisv4466-74\plugins\python\fmt_mbac.py", line 154, in mbacLoadModel if uvs: mesh.setUVs(uvs) File "C:\Noesis\noesisv4466-74\plugins\python\inc_noesis.py", line 1137, in setUVs noesis.validateListType(uvList, NoeVec3) RuntimeError: Undesirable object type at index 2064 in list (With cnt starting at 0) I logged the list (print(cnt, i,x, uvs[x]); cnt +=1) but I didn't understand the error: 2060 0 1147 [142, 19, 0] 2061 1 1149 [131, 22, 0] 2062 2 1151 [138, 23, 0] 2063 3 1150 [134, 27, 0] 2064 0 1150 [142, 19, 0] <<< index 2064 in the list, isn't it? 2065 1 1152 [131, 22, 0] 2066 2 1153 [138, 23, 0] 2067 3 1124 [134, 27, 0] The mbac2obj.py (+ mascotcapsule.py) creates an obj file from said mbac without such a problem so I'm wondering if the problem is in Noesis/inc_noesis.py (which is near to impossible, of course). edit: I've logged the uv list directly (without using setUVs()) so that Noesis finishes the job but the uvs are integers (same as for mbac2obj.py) which are not displayed: Quote vt 184 122 vt 184 122 vt 184 105 vt 184 105 vt 184 122 vt 183 122 vt 184 105 vt 183 105 vt 183 122 vt 183 122 vt 183 105 vt 183 105 vt 183 122 vt 183 122 vt 183 105 vt 183 105 vt 200 122 vt 200 122 vt 200 105 vt 200 105 vt 200 122 ... edit2: int to float, uvs don't look too nice: edit3: doronjo mbac Edited April 20Apr 20 by shak-otay
April 25Apr 25 Supporter On 4/19/2026 at 7:47 PM, Grounder said: handle UVs get them blown up to a ridiculous scale UVs in this format are not stored directly in 0..1, but are integer texture coordinates in pixels, and they need to be divided by the actual texture size. (u/txW_px, v/txH_px)
April 25Apr 25 Supporter On 4/20/2026 at 1:23 AM, shak-otay said: which says The provided *.mbac scenes contain both textured and untextured meshes. Therefore, the untextured ones had a UVS of None, which caused the error. I fixed this (simply filling their UVS with zero vectors). I also normalized the UVS to one (although this is incorrect (see the message above), it works on many models (those with a 256x256 texture). EDIT: (i update plugin in my gitHub) Edited April 25Apr 25 by Durik256
April 28Apr 28 Author Localization On 4/25/2026 at 7:13 PM, Durik256 said: The provided *.mbac scenes contain both textured and untextured meshes. Therefore, the untextured ones had a UVS of None, which caused the error. I fixed this (simply filling their UVS with zero vectors). I also normalized the UVS to one (although this is incorrect (see the message above), it works on many models (those with a 256x256 texture). EDIT: (i update plugin in my gitHub) Yep, this works. Thank you for the update!
April 28Apr 28 Author Localization EDIT 2: The old method for UVs, oddly, seems to work better minus the scaling issue. EDIT 3: It's getting way more faces than the OBJ script... Edited April 28Apr 28 by Grounder oi 2
Create an account or sign in to comment