Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from inc_noesis import *
- import noesis
- import rapi
- #Code is by TheDude
- def registerNoesisTypes():
- handle = noesis.register("Resident Evil Outbreak skeletons", ".AHI")
- noesis.setHandlerTypeCheck(handle, noepyCheckType)
- noesis.setHandlerLoadModel(handle, noepyLoadModel)
- noesis.logPopup()
- return 1
- def noepyCheckType(data):
- f = NoeBitStream(data)
- if len(data) < 16:
- return 0
- return 1
- def noepyLoadModel(data, mdlList):
- ctxt = rapi.rpgCreateContext()
- rapi.rpgSetOption(noesis.RPGOPT_TRIWINDBACKWARD, 0)
- f = NoeBitStream(data)
- boneList=[]
- unk1=f.read("i")[0]
- numBones=f.read("i")[0]
- fileSize=f.read("i")[0]
- unkA=f.read("4i")[0]
- for x in range(0,numBones-1):
- start=f.read("H")[0]
- unkB=f.read("H")[0]
- unkC=f.read("i")[0]
- boneSize=f.read("i")[0]
- boneID=f.read("i")[0]
- boneName="bone " + str(boneID)
- boneParent=f.read("i")[0]
- print (boneParent)
- boneParentName="bone " + str(boneParent)
- boneChild=f.read("i")[0]
- unkD=f.read("i")[0]
- scl=NoeVec3.fromBytes(f.readBytes(12))
- s4=f.read("f")[0]
- q=NoeQuat.fromBytes(f.readBytes(16))
- trans=NoeVec3.fromBytes(f.readBytes(12))
- t4=f.read(">f")[0]
- unkE=f.read("i")[0]
- unkF=f.read("i")[0]
- unkG=f.read("46i")[0]
- mtrx = q.toMat43(1)
- mtrx[0] *= scl
- mtrx[1] *= scl
- mtrx[2] *= scl
- mtrx[3] = trans
- if boneID==0:
- boneList.append(NoeBone(boneID+1, boneName, mtrx, None, boneParent))
- else:
- boneList.append(NoeBone(boneID, boneName, mtrx, None, boneParent))
- boneList = rapi.multiplyBones(boneList)
- mdl = NoeModel()
- mdlList.append(mdl)
- mdl.setBones(boneList)
- rapi.rpgClearBufferBinds()
- return 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement