Thatonebruh196 Posted June 6 Author Share Posted June 6 14 minutes ago, shak-otay said: @Thatonebruh196: because you seem to use the original .etc file, not the cut one. ------------ As Bigchillghost mentioned there's a mix of triangles and tri strips. (I've used C code to reproduce roocker666's script but without normals. I had adapted TriList(skipList) from the ShaolinMonks' thread already, that's why I didn't use the updated script from Bigchillghost.) What confuses me a little bit is rapi.rpgCommitTriangles(triangles, noesis.RPGEODATA_INT, len(triangles)// 4, noesis.RPGEO_TRIANGLE, 1) Usually CommitTriangles creates faces from a face index buffer (pointer? to buffer triangles here) and modifies it depending on the parameter RPGEO_xxx, where xxx=TRANGLE or TRIANGLE_STRIP for example. From my understanding. But what does it do here exactly? Just copy the index values? That's why I prefer using C which is more transparent to me. In a createTriList() clone I directly log the auto created face indices like so: if (faceDir > 0) fprintf( stream, "f %d %d %d\n", f1+1, f2+1, f3+1 ) ; else fprintf( stream, "f %d %d %d\n", f2+1, f1+1, f3+1 ) ; But I get a different shading when dragging/dropping the C-apps obj output onto Noesis (for "toggle face cull"): https://imgbox.com/06Myv6HF I hope that's because I didn't create normals from the .etc file. I'm not using the original .etc, I'm using the edited one it comes with, is there anything up with that file? Link to comment Share on other sites More sharing options...
shak-otay Posted June 6 Share Posted June 6 (edited) 7 hours ago, Thatonebruh196 said: I'm not using the original .etc, Sorry, then. Because I could reproduce the error (partially) using the original etc file. Original versus cut file And yes, the displayed model is from .obj. I was too lazy to create a new picture. The outcome is the same. edit: Kieu, left hand Yeah, it's left, not right. Yume, mesh missing edit: missing one is at 0x60DBC, vCnt= 165 edit2: couldn't track Vernon's sub meshes automatically, found 8 so far, Vernon head etc Edited June 6 by shak-otay Link to comment Share on other sites More sharing options...
Bigchillghost Posted June 6 Share Posted June 6 1 hour ago, Thatonebruh196 said: Ah, thanks for looking at it, unfortunately I get the same error... Just noticed that the original script was using the NoeBitStream::read() handler to read bytes which on your system apparently triggered a false judgement. You may try download the script again and see if it works this time. Link to comment Share on other sites More sharing options...
Thatonebruh196 Posted June 7 Author Share Posted June 7 8 hours ago, Bigchillghost said: Just noticed that the original script was using the NoeBitStream::read() handler to read bytes which on your system apparently triggered a false judgement. You may try download the script again and see if it works this time. It worked great! Tysm!! Unfortunately my lack of hex knowledge is stopping me from tracking down Kieu's other parts, I wonder if someone would be able to create a script to automatically disassemble the files.. Link to comment Share on other sites More sharing options...
shak-otay Posted June 7 Share Posted June 7 (edited) 6 hours ago, Thatonebruh196 said: I wonder if someone would be able to create a script to automatically disassemble the files.. roocker666 said there's no pointers (to blocks). You can use the string "Shape" as a ref for finding them. Works good for Kieu, for Yume partially. For Vernon there's only 2 findings, Finally I'll try counts and calculation; for Kieu the vertex starts were startOfString (containing "Shape") + vCount*32 +0x58 For vernon the vStarts are 0x42C8, 0xc6b0, 0xFBBC, 0x20954,..., 0x44510 Just checking a formula vStart_next= vstart-prev + vcount*16 +something (My results so far see my previous post.) Edited June 7 by shak-otay Link to comment Share on other sites More sharing options...
Bigchillghost Posted June 7 Share Posted June 7 The skeleton can be parsed correctly with ASH: Yet the anim data seem weird. Most of the translations match with the bind pose factor of correspond bone, while rotations look a bit off. And for both of them, there's a huge difference between the 1st frame and the rest. Anim preview: Still, there's no blend indices attribute in the file so it doesn't make much sense to care for the skinning info or anim, etc. 1 Link to comment Share on other sites More sharing options...
Bigchillghost Posted June 7 Share Posted June 7 (edited) 49 minutes ago, shak-otay said: roocker666 said there's no pointers (to blocks). The structure seem pretty straight-forward to me: Edited June 7 by Bigchillghost 1 1 Link to comment Share on other sites More sharing options...
shak-otay Posted June 7 Share Posted June 7 (edited) 28 minutes ago, Bigchillghost said: The structure seem pretty straight-forward to me: For Kieu, yes. For Vernon it says: meshcnt=2, but there's many sub meshes, (biggest ones at 0x42C8, vCnt 1676?; 0x16D8C, vCnt 699; 0x20954, vCnt 1091?; 0x2A7A0, vCnt 1439, 0x33CC4, vCnt 599; 0x44510, vCnt 1814 etc ) edit: ok, see, you've found long subMeshCnt... I'm too lame for it. Edited June 7 by shak-otay Link to comment Share on other sites More sharing options...
roocker666 Posted June 7 Share Posted June 7 (edited) 1 hour ago, shak-otay said: roocker666 said there's no pointers (to blocks).,, Sorry about that, later I found the pointer to meshes but I was trying to understand mesh header, lol. But yes, Bigchillghost info is correct, submesh count appears in mesh header, like in KIEU first mesh header has two submeshes(body and face). In Lhand and Rhand headers says 1 submesh. Edited June 7 by roocker666 Link to comment Share on other sites More sharing options...
Thatonebruh196 Posted June 7 Author Share Posted June 7 6 hours ago, Bigchillghost said: The skeleton can be parsed correctly with ASH: Yet the anim data seem weird. Most of the translations match with the bind pose factor of correspond bone, while rotations look a bit off. And for both of them, there's a huge difference between the 1st frame and the rest. Anim preview: Still, there's no blend indices attribute in the file so it doesn't make much sense to care for the skinning info or anim, etc. Animations are stored elsewhere, it might be acting weird cause it doesn't have the right data... I've listed the animations that correspond with the minigame (Rocket Rumble) ANIMS.zip Link to comment Share on other sites More sharing options...
Bigchillghost Posted June 8 Share Posted June 8 20 hours ago, Thatonebruh196 said: Animations are stored elsewhere, it might be acting weird cause it doesn't have the right data... Same structure, still bad outcome... (KieuIntroEnter.ETA) Maybe the bind-pose skeleton is required instead of the posed one in the ETC file. Link to comment Share on other sites More sharing options...
Thatonebruh196 Posted June 8 Author Share Posted June 8 3 hours ago, Bigchillghost said: Same structure, still bad outcome... (KieuIntroEnter.ETA) Maybe the bind-pose skeleton is required instead of the posed one in the ETC file. Hmm, unfortunately I don't think I ever found a bind-pose file in the folders, weird... Maybe if we ever update the plugin to have the rigs we should leave out the animations. Link to comment Share on other sites More sharing options...
Thatonebruh196 Posted June 8 Author Share Posted June 8 On 6/7/2024 at 7:23 AM, shak-otay said: roocker666 said there's no pointers (to blocks). You can use the string "Shape" as a ref for finding them. Works good for Kieu, for Yume partially. For Vernon there's only 2 findings, Finally I'll try counts and calculation; for Kieu the vertex starts were startOfString (containing "Shape") + vCount*32 +0x58 For vernon the vStarts are 0x42C8, 0xc6b0, 0xFBBC, 0x20954,..., 0x44510 Just checking a formula vStart_next= vstart-prev + vcount*16 +something (My results so far see my previous post.) Also I'd like to ask. How much data do you need to put into a new file? I've tried multiple times but it always ended with failure (I get an error basically) Link to comment Share on other sites More sharing options...
Bigchillghost Posted June 9 Share Posted June 9 On 6/8/2024 at 8:14 PM, Thatonebruh196 said: Hmm, unfortunately I don't think I ever found a bind-pose file in the folders, weird... Is there any skel file similiar to the ani? On 6/8/2024 at 8:14 PM, Thatonebruh196 said: Maybe if we ever update the plugin to have the rigs we should leave out the animations. Well, don't get me wrong, I was just looking for a chance to test my ARC app.🙃 Seems several world-space matrices of the skeleton use negative scaling factors. Though the left hand looks correcttly within Noesis, it's wrong when exported to FBX and imported into 3ds Max. There's a similar issue with ASH so one more problem to tackle. 1 Link to comment Share on other sites More sharing options...
Thatonebruh196 Posted June 9 Author Share Posted June 9 1 hour ago, Bigchillghost said: Is there any skel file similiar to the ani? Well, don't get me wrong, I was just looking for a chance to test my ARC app.🙃 Seems several world-space matrices of the skeleton use negative scaling factors. Though the left hand looks correcttly within Noesis, it's wrong when exported to FBX and imported into 3ds Max. There's a similar issue with ASH so one more problem to tackle. To answer your first one, no there's only animations and models, everything else is audio, textures, subtitles, particles and fonts. And second, is that the original not edited file? And would I be able to try it out for myself? Link to comment Share on other sites More sharing options...
Bigchillghost Posted June 10 Share Posted June 10 On 6/10/2024 at 12:34 AM, Thatonebruh196 said: And would I be able to try it out for myself? Sorry but it was just a test script and I'm not in the mood for potential maintenance. On second thought I just realized that it's not a problem about the bind-pose skeleton coz every single bone has at least one T, R and S frame so even if I wiped the transformation and use a fake skeleton it'll still produce the same result. If taking account of the scaling curves, half of the body looks fine while the other half not. Multiplying the rotation key with the last matrix among the four of each bone from the ETC skeleton, however, do reveal the correct result. 1 Link to comment Share on other sites More sharing options...
Thatonebruh196 Posted June 10 Author Share Posted June 10 14 minutes ago, Bigchillghost said: Sorry but it was just a test script and I'm not in the mood for potential maintenance. On second thought I just realized that it's not a problem about the bind-pose skeleton coz every single bone has at least one T, R and S frame so even if I wiped the transformation and use a fake skeleton it'll still produce the same result. If taking account of the scaling curves, half of the body looks fine while the other half not. Multiplying the rotation key with the last matrix among the four of each bone from the ETC skeleton, however, do reveal the correct result. Well shoot, seems like were getting somewhere! (Also I wanted the test script cause of it getting all of Kieu's model) Link to comment Share on other sites More sharing options...
Thatonebruh196 Posted June 10 Author Share Posted June 10 Update: I was able to get Kieu's hands with the original Noesis plugin, tho I'm having trouble tracking down her face. 1 Link to comment Share on other sites More sharing options...
Solution Bigchillghost Posted June 12 Solution Share Posted June 12 It appeared that the implicit indices encoding is not as simple as it may seem. For example the one on the left of the following image is what the script generated (with fixes of the existing code) while the one on the right seems more desirable. But I'll leave it just like that. On 6/11/2024 at 1:32 AM, Thatonebruh196 said: Also I wanted the test script cause of it getting all of Kieu's model Here is the final script that will work with all samples. fmt_EyeToyPlay_PS2_ETC.zip Link to comment Share on other sites More sharing options...
Thatonebruh196 Posted June 12 Author Share Posted June 12 21 minutes ago, Bigchillghost said: It appeared that the implicit indices encoding is not as simple as it may seem. For example the one on the left of the following image is what the script generated (with fixes of the existing code) while the one on the right seems more desirable. But I'll leave it just like that. Here is the final script that will work with all samples. fmt_EyeToyPlay_PS2_ETC.zip 1.34 kB · 0 downloads The first one is actually accurate to the model in-Game specifically in that one minigame! For some reason in that minigame, all the models are edited to be more low poly, with the messier verts, I know this as I have tried to rip from the game before using Ninjaripper, and thank you the script works like a charm! Every character model in the game works with it perfectly, some even have T-Poses It's probably down to what animation frame is first (Which is a T-pose for these two) Link to comment Share on other sites More sharing options...
Sparagas Posted July 2 Share Posted July 2 On 6/5/2024 at 9:30 PM, roocker666 said: I remember some scripts to generate faces, Sparagas created these. I think are based on a function by Bigchillghost, I can't remember very well, lol. Maybe these could help: Generate-Faces last version.zip 1.99 kB · 4 downloads Hi, I made this script. They were quickly made for private use (by private I mean, it has no explanation of what it does, and not that no one can use it). So I updated it with an explanation of what it does and how to use it: https://github.com/Sparagas/Triangle-Generator/tree/main Feel free to use it if it helps. 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now