March 22Mar 22 Localization Getting these models has already been possible but I'm trying to look for a way to streamline it and finally manage to extract rigging, I would like to eventually make a Noesis script for these or something similar but I've got no scripting experience so I'll focus on rigs for now. Using Advanced Mesh Reaper - Extreme, I've recently been able to get blend weights and just automatically generating the rigs which leads to mixed results. Bones seem to be assigned to the verts correctly but are not parented to each other and are located incorrectly and leads to the mesh deforming weirdly. I have absolutely no prior knowledge of getting rigged models with hex tools so I don't know what type of data pattern I have to look for to find possible skeleton data so I've included some reference files from the game and some notes I wrote for each file, some of the notes might be a tad bit off but it's all the stuff that I've figured out after awhile. WGCOTW_RefFiles.zip Any help with this is greatly appreciated and I thank everyone who's got great advice for these. Edited March 22Mar 22 by Hell Inspector added a sentence I forgot to put in
March 22Mar 22 Supporter 29 minutes ago, Hell Inspector said: Using Advanced Mesh Reaper - Extreme, I've recently been able to get blend weights and just automatically generating the rigs Hi, could you give a short description how you did that (steps, no wall of text), please?
March 22Mar 22 Author Localization 17 minutes ago, shak-otay said: Hi, could you give a short description how you did that (steps, no wall of text), please? Using Model Researcher I just found the spots in the hex data that weren't used and just guessed they were somewhere around there, I'm not sure if it was the correct way but I just stumbled my way into them and screwed around with AMR and things just kinda lined up. And then with AMR I just added the mesh to the Parameter List and was able to just Auto Generate the bones A lot of my "knowledge" on this format is literally just trial and error lol Edited March 22Mar 22 by Hell Inspector
March 22Mar 22 Supporter Thanks, well,there only 17 bones autogenerated (without hierarchy) but there's 122 "Bip01" in the wallace.ovl file. I guess the skeleton must be created using Durik's skelfinder (see 2 post here). Iirc there was also a skeleton tool from Bigchillghost, (wait, it was ASH) picture AmateurSkeletonHunter edit: first you'll need to sort out the bone names: these: Quote 1. Bip01.Or 2. Bip01.Pos 3. Bip01 Pelvis.Or 4. Bip01 Spine.Or 5. Bip01 Spine.Pos 6. Bip01 Spine1.Or 7. Bip01 Spine1.Pos 8. Bip01 Neck.Or 9. Bip01 Head.Or 10. LeftEyelidStage2.Or 11. RightEyelidStage2.Or 12. Bip01 L Clavicle.Or 13. Bip01 L Clavicle.Pos 14. Bip01 L UpperArm.Or 15. Bip01 L ForeArm.Or 16. Bip01 L Hand.Or 17. Bip01 L Finger0.Or 18. Bip01 L Finger01.Or 19. Bip01 L Finger02.Or 20. Bip01 L Finger1.Or 21. Bip01 L Finger11.Or 22. Bip01 L Finger12.Or 23. Bip01 L Finger2.Or 24. Bip01 L Finger21.Or 25. Bip01 L Finger22.Or ... or those? Quote 155. Bip01 156. Bip01 BetweenEyesDmy 157. Bip01 Head 158. Bip01 L Calf 159. Bip01 L Clavicle 160. Bip01 L Finger0 161. Bip01 L Finger01 162. Bip01 L Finger02 163. Bip01 L Finger1 164. Bip01 L Finger11 165. Bip01 L Finger12 166. Bip01 L Finger2 167. Bip01 L Finger21 168. Bip01 L Finger22 169. Bip01 L Finger3 170. Bip01 L Finger31 171. Bip01 L Finger32 172. Bip01 L Finger4 173. Bip01 L Finger41 174. Bip01 L Finger42 175. Bip01 L Foot 176. Bip01 L ForeArm 177. Bip01 L Hand 178. Bip01 L Thigh 179. Bip01 L Toe0 180. Bip01 L UpperArm 181. Bip01 LeftEar 182. Bip01 Neck 183. Bip01 Pelvis 184. Bip01 R Calf 185. Bip01 R Clavicle 186. Bip01 R Finger0 187. Bip01 R Finger01 188. Bip01 R Finger02 189. Bip01 R Finger1 190. Bip01 R Finger11 191. Bip01 R Finger12 192. Bip01 R Finger2 193. Bip01 R Finger21 194. Bip01 R Finger22 ... Edited March 22Mar 22 by shak-otay
March 22Mar 22 Author Localization 8 hours ago, shak-otay said: Thanks, well,there only 17 bones autogenerated (without hierarchy) but there's 122 "Bip01" in the wallace.ovl file. I guess the skeleton must be created using Durik's skelfinder (see 2 post here). Iirc there was also a skeleton tool from Bigchillghost, (wait, it was ASH) picture AmateurSkeletonHunter edit: first you'll need to sort out the bone names: these: or those? I know that character skeletons are more robust and seem to have duplicate bones(?) so I think looking at the skeletons for birdy.ovl and Hedgehog.ovl might be easier first, and while doing some more file digging I found a file that's just a single animation with a small skeleton list. I've got ASH but I don't know any syntax settings that'll fit. Skagbridge_T59.zip
March 23Mar 23 Supporter 17 hours ago, Hell Inspector said: so I think looking at the skeletons for birdy.ovl and Hedgehog.ovl might be easier first, Good idea. Quote and while doing some more file digging I found a file that's just a single animation with a small skeleton list. The problem is that the ovl format is not too obvious. These might be some animation curves, but not sure:
March 23Mar 23 Author Localization 3 hours ago, shak-otay said: Good idea. Quote The problem is that the ovl format is not too obvious. These might be some animation curves, but not sure: Oh yeah, I think these .ovl files are technically Archive files since they've got so many different types of files in them but absolutely no tool works with these so I've just been manually sifting through them to rip textures, models and character transcripts.
March 25Mar 25 Author Localization I've gone through a different character file and tried to just separate what I think is skeleton and animation data with a bone list and possible count, I don't even know if what I did is correct here but if I ended up completely missing it I included the original character file. Reverend_SkelAnims.zip
March 25Mar 25 Supporter At least there's some shape at 0x2CC10: Frames remain a riddle. Edited March 25Mar 25 by shak-otay
March 25Mar 25 Author Localization 5 hours ago, shak-otay said: At least there's some shape at 0x2CC10: Frames remain a riddle. Those are shape keys, they're usually right after the last mesh. They aren't too necessary but ripping them is still possible. You can find the phoneme list within the file as well.
March 29Mar 29 Author Localization On 3/22/2026 at 8:10 AM, shak-otay said: I guess the skeleton must be created using Durik's skelfinder Trying out Durik's SkelFinder with birdy.ovl and.... I have absolutely no idea what I'm doing or what hex data I'm supposed to be looking for but I got the bone names listed at least so I guess it's a start?
March 29Mar 29 Supporter 1 hour ago, Hell Inspector said: Trying out Durik's SkelFinder with birdy.ovl and.... I have absolutely no idea what I'm doing or what hex data I'm supposed to be looking for Not the best condition to start. I assume you've read here? (Without knowing about the 3 addresses mentioned you won't get far.) Quote but I got the bone names listed at least so I guess it's a start? Yep. 16 bones? Assuming a matrix block (transVec + rotMat) having 64 (48?) bytes there should be a 1k block (0x400) with the required data. But we'll need more structure before, I checked 0x619 with a block size of 60 and the first column looks like frame time: (switch to floats required for other columns) address 0x619: 32 2 14 0 1 0 0 49024 0 0 48430 46011 0 0 0 16256 0 0 48430 13243 0 0 0 49024 28855 12605 9040 48526 36513 15143 48 2 5 0 1 0 52693 13324 0 0 0 49024 0 49024 48429 45883 52693 46092 48429 45883 0 16256 34025 42958 55044 45475 12952 12052 20033 42480 64 2 15 0 5 0 55928 16253 16531 15498 12769 48643 38673 48643 60738 15982 49196 49014 17457 15455 58751 16248 9497 15983 31979 48607 43001 15835 23261 15415 80 2 16 0 15 0 38396 16185 38414 48519 33959 48943 40337 15656 27868 16255 22311 48472 1272 16176 60057 15396 56819 16185 32494 15996 46523 12755 11489 45533 96 2 17 0 5 0 51714 16254 24213 48556 48411 48454 38282 15768 30105 16046 60501 16239 24328 48511 46777 49007 55363 16048 43483 48608 38824 48607 14312 15507 112 2 18 0 17 0 38396 16185 38428 48519 33959 48943 40337 15656 27868 16255 22311 48472 1272 16176 60057 15396 56819 16185 32494 15996 60772 12565 30803 45296 128 2 3 0 5 0 42199 48754 61660 42730 46471 16248 0 0 0 16256 65535 6863 46471 49016 60863 9940 42199 48754 44300 48570 55044 45475 42346 15494 144 2 4 0 3 0 54786 48753 65282 48550 57731 49015 18568 48286 9666 16255 15732 48546 46471 16248 15775 10782 42199 48754 14899 15879 31455 12544 5766 48335 160 2 19 0 4 0 50160 46092 0 16256 18851 13301 52699 13364 32974 46073 0 16256 0 16256 45301 13289 44521 46142 30445 15816 10539 45762 22371 48666 176 2 20 0 5 0 25844 46071 0 16256 25844 13303 60286 16042 40348 45974 20596 16241 20596 16241 58640 13341 60286 48810 28133 15996 21925 9501 8731 15780 192 2 11 0 5 0 25844 46071 0 16256 25844 13303 64027 13361 25844 46071 0 16256 0 16256 25844 13303 64027 46129 7377 15338 2096 15660 42414 48524 208 2 12 0 5 0 25844 46071 0 16256 25844 13303 64027 13361 25844 46071 0 16256 0 16256 25844 13303 64027 46129 7377 15338 2096 48428 42414 48524 224 2 2 0 1 0 52693 13324 0 0 0 49024 0 49024 48429 45883 52693 46092 48429 45883 0 16256 34025 42958 45569 45665 57967 48731 11184 15821 240 2 0 17920 1435 14881 33399 15753 32600 15691 0 16256 0 16384 0 16256 0 0 0 0 0 17920 24743 15940 0 0 2 0 13 0 Sadly floats don't show much: # 0x625: blocks= 16 -1.000000 0.000000 -0.000000 0.000000 0.000000 -1.000000 0.991615 0.016876 -0.128120 0.724945 -0.066204 -0.685618 0.995270 -0.084165 -0.048520 0.724945 -0.066204 -0.685618 -0.236957 -0.000000 0.971520 -0.236168 -0.081541 -0.968285 -0.000000 1.000000 0.000000 -0.000000 1.000000 0.000000 -0.000000 1.000000 0.000000 -0.000000 1.000000 0.000000 0.000000 0.000000 -1.000000 0.067143 0.049682 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 # 0x9e5 Edited March 29Mar 29 by shak-otay
March 29Mar 29 Author Localization 7 hours ago, shak-otay said: Not the best condition to start. I assume you've read here? I did, I tried to look for the example file used there for some reference but it seems to be removed since then.
March 29Mar 29 Supporter Example can be found here, in OP. edit: sorry, forget about it. Worst example ever. Edited March 29Mar 29 by shak-otay
March 29Mar 29 Author Localization 1 hour ago, shak-otay said: Example can be found here, in OP. Thanks, I am finding similar symbols but I know similar symbols might not mean anything so I'll try to keep fiddling with stuff which means I might just end up going one by one and hopefully stumble on something. 10 hours ago, shak-otay said: Yep. 16 bones? I still don't know if 16 is the actual bone count due to all those .Pos and .Or extra bones, with those in mind it could inflate it to 31.
March 31Mar 31 Supporter Thanks! ("Allow custom variables" must be enabled in Options, btw.) How did you get the bone names? (I get bone_0, bone_1, etc although the base address is 0xF6 - changing it doesn't matter, btw) Edited March 31Mar 31 by shak-otay
March 31Mar 31 1 hour ago, shak-otay said: Thanks! ("Allow custom variables" must be enabled in Options, btw.) How did you get the bone names? (I get bone_0, bone_1, etc although the base address is 0xF6 - changing it doesn't matter, btw) The file I used was birdy.ovl. I used the ASH tool with the settings shown in the image, and it correctly read the bone names
March 31Mar 31 Supporter I know that. Which version/date is the ASH.exe of? Does your version load layouts correctly? (For me with version 1.3.2 only the line uint32 boneIdx loads. I have to copy the missing lines manually.) edit: maybe I need to change the PC... same problem. Guess, I need to pick up my old Skel2SMD project again... Columns 3/5 here don't fit as boneID/parentID but the hierarchy can be added manually (maybe ignore "Groundpoint" for now): //0 "!GroundPoint" 0 1 "<root>" -1 2 "<world>" 1 3 "Beak_Pigeon" 1 4 "Bip01_Body" 1 5 "Bip01_Head" 8 6 "Bip01_LWing1" 4 7 "Bip01_LWing2" 6 8 "Bip01_Neck" 4 9 "Bip01_RWing1" 4 10 "Bip01_RWing2" 9 11 "Bird" 1 12 "FootL" 4 13 "FootR" 4 14 "Tail" 4 Edited March 31Mar 31 by shak-otay
March 31Mar 31 Author Localization 8 hours ago, AngelYan said: The skeleton fails to appear in T-pose due to a lack of bone hierarchy。 Oh, so there's actual bone data for the .Pos and .Or listings and it's not some weird naming thing.
March 31Mar 31 Supporter It's easier to get the hierachy for reverend_english, imho: (while the skel looks horrible as for now) Edited March 31Mar 31 by shak-otay
March 31Mar 31 Author Localization 25 minutes ago, shak-otay said: It's easier to get the hierachy for reverend_english, imho: (while the skel looks horrible as for now) What's your hierarchy settings so I can try others? And as for the misplaced skeleton, is there some kind of extra pose data needed or should that just be a part of the existing bone data.
March 31Mar 31 Supporter I've set the hierarchy manually (may contain wrong parenting IDs): Quote 0 "!GroundPoint" -1 1 "<root>" 0 2 "<world>" 1 3 "Bip01" 1 4 "Bip01 Belt11" 3 5 "Bip01 Belt12" 4 6 "Bip01 Belt13" 5 7 "Bip01 Belt21" 6 8 "Bip01 Belt22" 7 9 "Bip01 Belt23" 8 10 "Bip01 BetweenEyesDmy" 12 11 "Bip01 Hair1" 12 12 "Bip01 Head" 29 13 "Bip01 L Calf" 26 14 "Bip01 L Clavicle" 29 15 "Bip01 L Finger0" 25 16 "Bip01 L Finger01" 15 17 "Bip01 L Finger1" 25 18 "Bip01 L Finger11" 17 19 "Bip01 L Finger2" 25 20 "Bip01 L Finger21" 19 21 "Bip01 L Finger3" 25 22 "Bip01 L Finger31" 21 23 "Bip01 L Foot" 13 24 "Bip01 L Forearm" 28 25 "Bip01 L Hand" 24 26 "Bip01 L Thigh" 30 27 "Bip01 L Toe0" 23 28 "Bip01 L UpperArm" 14 29 "Bip01 Neck" 49 30 "Bip01 Pelvis" 1 31 "Bip01 R Calf" 44 32 "Bip01 R Clavicle" 29 33 "Bip01 R Finger0" 43 34 "Bip01 R Finger01" 33 35 "Bip01 R Finger1" 43 36 "Bip01 R Finger11" 35 37 "Bip01 R Finger2" 43 38 "Bip01 R Finger21" 37 39 "Bip01 R Finger3" 43 40 "Bip01 R Finger31" 39 41 "Bip01 R Foot" 31 42 "Bip01 R Forearm" 46 43 "Bip01 R Hand" 42 44 "Bip01 R Thigh" 30 45 "Bip01 R Toe0" 41 46 "Bip01 R UpperArm" 32 47 "Bip01 SkirtRt" 30 48 "Bip01 Spine" 30 49 "Bip01 Spine1" 48 50 "Bip01 Tail" 49 51 "Bip01 Tail1" 50 52 "BrowLeft" 54 53 "BrowRight" 57 54 "LeftEye" 12 55 "LeftEyelidStage2" 54 56 "RevCassock" 1 57 "RightEye" 12 58 "RightEyelidStage2" 57 Which "misplaced" skeleton do you mean? edit: when starting with matrices at 0x49EFA in Rev_english.ovl I'm getting "double" bones, weird: (there must be missing a "minus", for translation x?) Quote 28 0.094184 -0.000000 0.193565 0.000000 0.707107 0.000000 0.707107 29 0.094184 -0.000000 0.193565 -0.000000 0.707107 -0.000000 0.707107 30 0.111933 0.000000 0.000000 -0.087101 0.012658 -0.001831 0.996117 31 0.111933 -0.000000 0.000000 0.087101 0.012658 0.001831 0.996117 32 0.270926 0.047490 0.156090 0.707107 0.707107 0.000000 -0.000001 33 0.270926 -0.044236 0.156090 0.707107 0.707107 0.000000 -0.000001 34 0.195164 0.030424 0.147857 0.707107 0.707107 0.000000 -0.000001 35 0.195164 -0.030000 0.147857 0.707107 0.707107 0.000000 -0.000001 36 0.192005 0.031000 0.144068 -0.000001 -0.000000 0.707107 0.707107 37 0.192005 -0.031000 0.144068 -0.000001 -0.000000 0.707107 0.707107 38 0.282865 -0.000000 0.000000 0.000000 -0.016157 0.000000 0.999869 39 0.282865 0.000000 0.000000 -0.000000 -0.016157 -0.000000 0.999869 40 0.312480 0.000000 -0.000000 -0.706825 0.000000 -0.000000 0.707388 41 0.312480 -0.000000 -0.000000 0.706825 0.000000 0.000000 0.707388 Edited April 1Apr 1 by shak-otay
March 31Mar 31 Author Localization 5 minutes ago, shak-otay said: Which "misplaced" skeleton do you mean? Oh, I thought that's what "while the skel looks horrible as for now" meant, my bad lol
April 1Apr 1 Supporter ASH: the unknown uint32 should be the bone's parent ID. But since the bone IDs are mixed like 2, 4, 57, 59, 3 ... I won't give a d. Assuming the numbering to be like here makes more sense. But I didn't get mirrored translation data for hands, etc so far. Edited April 1Apr 1 by shak-otay
Create an account or sign in to comment