Super-interesting read that hopefully can make conversions etc easier?
https://godotengine.org/article/we-shou ... me-engines
Important information: this site is currently scheduled to go offline indefinitely by end of the year.
Spotlight: Señor Casaroja's Noesis
-
- ultra-veteran
- Posts: 423
- Joined: Mon Aug 11, 2008 11:30 pm
- Has thanked: 27 times
- Been thanked: 15 times
- Tosyk
- double-veteran
- Posts: 1027
- Joined: Thu Oct 22, 2009 10:24 am
- Location: Russia, Siberia
- Has thanked: 269 times
- Been thanked: 154 times
- Contact:
Re: Spotlight: Señor Casaroja's Noesis
When I load SMD with long bone names Noesis stripped them into something like 'bone_XX'.
Can you fix this, MrAdults?
Can you fix this, MrAdults?
-
- beginner
- Posts: 38
- Joined: Sun Aug 27, 2017 2:08 pm
- Has thanked: 9 times
- Been thanked: 37 times
Re: Spotlight: Señor Casaroja's Noesis
I am still working on my Bayonetta 1/2, Vanquish, Nier Automata (let's say PG now) plugin and I would like to know how to blend two materials with a ratio given by the red component of the color vertex buffer. I think I would need to use material expressions for this to work but I couldn't find example of it's usage. I found out that chrrox used them but couldn't find where.
Thanks in advance.
edit: never mind I may have found what I was searching here: viewtopic.php?p=81687#p81687
edit 2: but maybe material expressions are not the way to go. If I understand correctly vertex color is blended with first material and then the result is blended with the next. So maybe classical blending would suffice
Thanks in advance.
edit: never mind I may have found what I was searching here: viewtopic.php?p=81687#p81687
edit 2: but maybe material expressions are not the way to go. If I understand correctly vertex color is blended with first material and then the result is blended with the next. So maybe classical blending would suffice
-
- beginner
- Posts: 38
- Joined: Sun Aug 27, 2017 2:08 pm
- Has thanked: 9 times
- Been thanked: 37 times
Re: Spotlight: Señor Casaroja's Noesis
Any idea why lightmap don't move with the model?
They also don't disappear when you skip the rendering of the corresponding mesh in the data viewer.
Edit: Using another pass for the lightmap and using the NMATFLAG_USELMUVS flag does the trick, rather than using the rpgSetLightmap command.
Edit: Okay, blending terrain is possible thanks to material expressions and classical blending, here is an example of three materials blended together (with lightmap as an additional pass):
This technique is nonetheless slightly problematic with transparent meshes that have a lightmap:
any idea of how I could avoid this? I think I would need to change the blending function for alpha and I am unsure how I should do this using noesis.
They also don't disappear when you skip the rendering of the corresponding mesh in the data viewer.
Edit: Using another pass for the lightmap and using the NMATFLAG_USELMUVS flag does the trick, rather than using the rpgSetLightmap command.
Edit: Okay, blending terrain is possible thanks to material expressions and classical blending, here is an example of three materials blended together (with lightmap as an additional pass):
This technique is nonetheless slightly problematic with transparent meshes that have a lightmap:
any idea of how I could avoid this? I think I would need to change the blending function for alpha and I am unsure how I should do this using noesis.
-
- ultra-n00b
- Posts: 3
- Joined: Thu May 11, 2017 3:51 pm
Re: Spotlight: Señor Casaroja's Noesis
I humbly request for Soul Calibur 6 support, it has the same issue as Tekken 7 with mismatched skeletons and meshes when using gildor's umodel viewer.
I also have long wished for animation support of Soul Calibur series since Soul Calibur 4 but no-one has ever succeeded (or made it public), so support of soul calibur 6 animations would be fantastic!
I also have long wished for animation support of Soul Calibur series since Soul Calibur 4 but no-one has ever succeeded (or made it public), so support of soul calibur 6 animations would be fantastic!
-
- advanced
- Posts: 73
- Joined: Wed Jul 06, 2016 1:51 am
- Has thanked: 5 times
- Been thanked: 12 times
Re: Spotlight: Señor Casaroja's Noesis
I second thisjoeyq wrote:I humbly request for Soul Calibur 6 support, it has the same issue as Tekken 7 with mismatched skeletons and meshes when using gildor's umodel viewer.
I also have long wished for animation support of Soul Calibur series since Soul Calibur 4 but no-one has ever succeeded (or made it public), so support of soul calibur 6 animations would be fantastic!
-
- Site Admin
- Posts: 4073
- Joined: Wed Jan 15, 2003 6:45 pm
- Location: Dungeons of Doom
- Has thanked: 450 times
- Been thanked: 682 times
- Contact:
Re: Spotlight: Señor Casaroja's Noesis
http://richwhitehouse.com/index.php?postid=72
Use your Roomba bot to map your house and turn it into a Doom level with Noesis.
Use your Roomba bot to map your house and turn it into a Doom level with Noesis.
-
- advanced
- Posts: 50
- Joined: Tue Dec 04, 2018 9:29 am
- Has thanked: 7 times
- Been thanked: 9 times
Re: Spotlight: Señor Casaroja's Noesis
I have been making a script to export all rx2 "xbox 360 EA Games" files from all games that use them lately and can now export every single texture format in the games I have tested except for one.
That last format is "r5g6b5".
I can't find anywhere how to export that from an xbox 360 game with noesis.
So any help on that would mean a lot =]
Thanks,
GHFear
That last format is "r5g6b5".
I can't find anywhere how to export that from an xbox 360 game with noesis.
So any help on that would mean a lot =]
Thanks,
GHFear
-
- advanced
- Posts: 64
- Joined: Sat Nov 10, 2007 3:01 pm
- Has thanked: 6 times
- Been thanked: 14 times
Re: Spotlight: Señor Casaroja's Noesis
It may have been mentioned here before .. but can Noesis preview window have an option to flip UVs vertically?
I know objs are a bit backward but it displays normally in other viewers and 3ds max.
I know objs are a bit backward but it displays normally in other viewers and 3ds max.
- zheneq
- advanced
- Posts: 43
- Joined: Fri Jul 17, 2015 6:09 am
- Location: Moscow, Russia
- Has thanked: 7 times
- Been thanked: 30 times
Re: Spotlight: Señor Casaroja's Noesis
Tools -> Data Viewer -> Model -> Global UV Flip
My plugins for Noesis: https://github.com/Zheneq/Noesis-Plugins
-
- veteran
- Posts: 97
- Joined: Sat Oct 11, 2014 10:29 pm
- Has thanked: 17 times
- Been thanked: 7 times
Re: Spotlight: Señor Casaroja's Noesis
Probably a stupid question, but is there a triangle strip function variation with strip termination? If so, how do i call it in a script?
-
- advanced
- Posts: 47
- Joined: Mon Dec 05, 2016 11:12 am
- Has thanked: 8 times
- Been thanked: 14 times
Re: Spotlight: Señor Casaroja's Noesis
I tried to read materials from modelcontainer with 153 meshes, 65 materials and 41 textures. I assign textures to every material and then read materials to MatList and construct models with 153 range loop. When I load the file it appears 9945 (=153 x 65) materials in Noesis. It reads right material for every meshes but Noesis crashes when I go to Data Viewer because of huge amount of materials. When I move mdl.setModelMaterials(NoeModelMaterials(TexList, MatList)) out of range loop it appears 153 materials in Noesis but materials isn't loaded for meshes. What I do wrong?
Code: Select all
#Noesis python importer - EA NHL games stadium container .rx2 files - version 1.0
from inc_noesis import *
import noesis
#rapi methods should only be used during handler callbacks
import rapi
#registerNoesisTypes is called by Noesis to allow the script to register formats.
#Do not implement this function in script files unless you want them to be dedicated format modules!
def registerNoesisTypes():
handle = noesis.register("NHL Legacy (X360)", ".rx2")
noesis.setHandlerTypeCheck(handle, noepyCheckType)
noesis.setHandlerLoadModel(handle, noepyLoadModel)
noesis.logPopup()
#print("The log can be useful for catching debug prints from preview loads.\nBut don't leave it on when you release your script, or it will probably annoy people.")
return 1
#check if it's this type based on the data
def noepyCheckType(data):
bs = NoeBitStream(data)
Magic = bs.readBytes(7)
if Magic != b'\x89\x52\x57\x34\x78\x62\x32':
return 0
return 1
#load the model
def noepyLoadModel(data, mdlList):
VInfo = []
VOff = []
VBufferSize = []
FInfo = []
FOff = []
FBufferSize = []
MatInfo = []
MatIndexInfo = []
MatIndexTable = []
TexIndexInfo = []
TexIndex = []
MatNames = []
NameInfo = []
TexList = []
MatList = []
MaterialInfo = []
ctx = rapi.rpgCreateContext()
bs = NoeBitStream(data, NOE_BIGENDIAN)
bs.seek(0x20, NOESEEK_ABS)
fileCount = bs.read(">i")
bs.seek(12, NOESEEK_REL)
fileTable = bs.read(">i")
bs.seek(16, NOESEEK_REL)
hdrSize = bs.read(">i")
bs.seek(fileTable[0], NOESEEK_ABS)
meshCount = 0
texCount = 0
materialCount = 0
ebCount = 0
for i in range(0, fileCount[0]):
fileInfo = bs.read(">iiiii")
fileType = bs.readBytes(4)
elif fileType == b'\x00\x02\x00\x05':
bs.seek(-48, NOESEEK_REL)
info = bs.read(">iiiiiiiiiiii")
VOff.append([info[0]])
VBufferSize.append([info[2]])
VInfo.append([info[6]])
elif fileType == b'\x00\x02\x00\x07':
bs.seek(-48, NOESEEK_REL)
info = bs.read(">iiiiiiiiiiii")
FOff.append([info[0]])
FBufferSize.append([info[2]])
FInfo.append([info[6]])
elif fileType == b'\x00\x02\x00\x09':
meshCount +=1
elif fileType == b'\x00\xEB\x00\x03':
MatIndexInfo.append([fileInfo[0]])
ebCount +=1
elif fileType == b'\x00\xEC\x00\x10':
NameInfo.append([fileInfo[0]])
elif fileType == b'\x00\xEF\x00\x01':
TexIndexInfo.append([fileInfo[0]])
elif fileType == b'\x00\xEF\x00\x05':
MatInfo.append([fileInfo[0]])
materialCount +=1
#Read material names
bs.seek(NameInfo[0][0], NOESEEK_ABS)
nameCount = bs.read(">HH")
bs.seek(4, NOESEEK_REL)
for i in range(0, nameCount[1]):
nameOff = bs.read(">i")
nameType = bs.readBytes(4)
nameIndex = bs.read(">i")
pos = bs.tell()
if nameType == b'\x00\xEF\x00\x05':
bs.seek(nameOff[0], NOESEEK_ABS)
MatNames.append(bs.readString())
bs.seek(pos, NOESEEK_ABS)
#Read material indices for meshes
for i in range(0, ebCount):
bs.seek(MatIndexInfo[i][0] + 0x10, NOESEEK_ABS)
contents = bs.read(">i")
tablesize = bs.read(">i")
bs.seek(tablesize[0] + 12, NOESEEK_REL)
for j in range(0, contents[0]):
materialIndex = bs.read(">i")
MatIndexTable.append(materialIndex[0])
bs.seek(40, NOESEEK_REL)
#Read texture indices for materials
for i in range(0, materialCount):
bs.seek(TexIndexInfo[i][0] + 256, NOESEEK_ABS)
index = bs.read(">i")
textindex = index[0] // 2
TexIndex.append(str(textindex)+".tga")
for i in range(0, materialCount):
material = NoeMaterial(MatNames[i], TexIndex[i])
MatList.append(material)
#Construct Models
for i in range(0, meshCount):
bs.seek(VInfo[i][0] + 32, NOESEEK_ABS) #Seek to vertices info
VData = bs.read(">HHi")
VBsize = VData[0]
VCount = VData[2]
bs.seek(FInfo[i][0] + 32, NOESEEK_ABS) #Seek to faces info
FCount = bs.read(">HH")
bs.seek(VOff[i][0] + hdrSize[0], NOESEEK_ABS) #Seek to Vertices Start
VertBuff = bs.readBytes(VBufferSize[i][0])
rapi.rpgSetOption(noesis.RPGOPT_BIGENDIAN, 1)
rapi.rpgBindPositionBufferOfs(VertBuff, noesis.RPGEODATA_FLOAT, VBsize, 0)
rapi.rpgBindUV1BufferOfs(VertBuff, noesis.RPGEODATA_FLOAT, VBsize, 16)
bs.seek(FOff[i][0] + hdrSize[0], NOESEEK_ABS) #Seek to Faces Start
FaceBuff = bs.readBytes(FBufferSize[i][0])
rapi.rpgSetMaterial(MatNames[((MatIndexTable[i] - 1) // 3) - 28])
rapi.rpgCommitTriangles(FaceBuff, noesis.RPGEODATA_USHORT, FCount[1], noesis.RPGEO_TRIANGLE, 1)
mdl = rapi.rpgConstructModel()
mdl.setModelMaterials(NoeModelMaterials(TexList, MatList))
mdlList.append(mdl) #important, don't forget to put your loaded model in the mdlList
rapi.rpgClearBufferBinds()
rapi.rpgReset()
return 1
-
- advanced
- Posts: 47
- Joined: Mon Dec 05, 2016 11:12 am
- Has thanked: 8 times
- Been thanked: 14 times
Re: Spotlight: Señor Casaroja's Noesis
I think that solution is read submeshes instead of construct every meshes to single model. Now I have 153 models 153 meshes 153 textures and 9945 materials. Can someone help me to fix the script to read 1 model 153 submeshes and 65 materials? I extract textures separately with name of texture index 1-41.
Here is model sample file with extracted textures:
https://app.box.com/s/gjpzsy19pb45g9cuncwrwl2ewifeg9dd
Here is model sample file with extracted textures:
https://app.box.com/s/gjpzsy19pb45g9cuncwrwl2ewifeg9dd
You do not have the required permissions to view the files attached to this post.