Batman: Dark Knight Rises;
Captain America: The Winter Soldier;
Disney Magic Kingdom;
I know that there is a script available for 3DS Max, but I don't have it and I doubt it would run properly with my current configuration ( Which is next Gen abso-shitty box ). Acewell created a script for Spider-Man: Unlimited which isn't compatible with these models, so hopefully someone can quickly update it to support these three titles. I've uploaded samples of each title to my Drive account: https://drive.google.com/open?id=0B2nb4 ... Wd0aktkV2c
Acewell's Original script:
Code: Select all
from inc_noesis import *
import noesis
import rapi
def registerNoesisTypes():
handle = noesis.register("Spider-Man Unlimited", ".bdae") #change this extension
noesis.setHandlerTypeCheck(handle, noepyCheckType)
noesis.setHandlerLoadModel(handle, noepyLoadModel)
#noesis.logPopup()
return 1
def noepyCheckType(data):
bs = NoeBitStream(data)
Magic = bs.readBytes(4).decode("ASCII")
print(Magic, ":magic")
if Magic != "BRES":
return 0
ByteOrderMark = bs.readShort()
padding = bs.readShort()
version = bs.readInt()
print(version, ":version")
if version != 64: #32, 60, 64
return 0
return 1
def noepyLoadModel(data, mdlList):
ctx = rapi.rpgCreateContext()
rapi.setPreviewOption("setAngOfs","0 270 0") #set the default preview angle
bs = NoeBitStream(data)
myString = bs.readBytes(len(data))
myIndex = myString.find(b"\x30\x2C\x30\x2C\x30\x2C")
print(hex(bs.tell()), ":here 1")
bs.seek(myIndex - 0xc, NOESEEK_ABS)
print(hex(bs.tell()), ":here 2")
start = bs.readInt()
print(hex(start), ":start")
bs.seek(start + 0x8, NOESEEK_ABS)
print(hex(bs.tell()), ":here 3")
jumpToFC = bs.readInt()
TMP = bs.getOffset()
print(hex(TMP), ":TMP")
bs.seek(0x8, NOESEEK_REL)
VCount = bs.readInt()
print(hex(VCount), ":VCount")
if VCount == 0:
skip = bs.readInt()
print(hex(bs.tell()), ":before VCount")
VCount = bs.readInt()
print(hex(VCount), ":VCount final")
bs.seek(0x30, NOESEEK_REL)
VOffset = bs.readInt()
print(hex(VOffset), ":VOffset")
bs.seek(0x3c, NOESEEK_REL)
VBytes = bs.readInt()
print(hex(VBytes), ":VBytes")
bs.seek(TMP + jumpToFC + 0x18, NOESEEK_ABS) #d8
print(hex(bs.tell()), ":here 4")
FCount = bs.readInt()
print(hex(FCount), ":FCount")
bs.seek(0xc, NOESEEK_REL)
FIOffset = bs.readInt()
bs.seek(VOffset, NOESEEK_ABS)
VBuf = bs.readBytes(VCount * VBytes)
rapi.rpgBindPositionBufferOfs(VBuf, noesis.RPGEODATA_FLOAT, VBytes, 0) #position of vertices
rapi.rpgBindNormalBufferOfs(VBuf, noesis.RPGEODATA_FLOAT, VBytes, 12) #normals -optional
rapi.rpgBindUV1BufferOfs(VBuf, noesis.RPGEODATA_FLOAT, VBytes, 24) #UV1
IBuf = bs.readBytes(FCount * 2) #multiply by 2 for word, 4 for dword indices
checkTri = int(FCount % 3) #check if FCount is evenly divisible by 3
if checkTri == 0:
rapi.rpgCommitTriangles(IBuf, noesis.RPGEODATA_SHORT, FCount, noesis.RPGEO_TRIANGLE, 1)
else:
rapi.rpgCommitTriangles(IBuf, noesis.RPGEODATA_SHORT, FCount, noesis.RPGEO_TRIANGLE_STRIP, 1)
mdl = rapi.rpgConstructModel()
mdlList.append(mdl)
rapi.rpgClearBufferBinds()
return 1
