Important information: this site is currently scheduled to go offline indefinitely by end of the year.

trackmania noesis problem

Post questions about game models here, or help out others!
Post Reply
fajNYgosciu1234
veteran
Posts: 144
Joined: Fri Oct 30, 2020 2:31 pm
Has thanked: 1 time
Been thanked: 1 time

trackmania noesis problem

Post by fajNYgosciu1234 »

while i decompressed the gbx, i cannot convert most of the assets with noesis, because of the error, https://www.mediafire.com/file/00s01vin ... d.Gbx/file and https://www.mediafire.com/file/ss88lsre ... 9.Gbx/file are the files i tried
You do not have the required permissions to view the files attached to this post.
fajNYgosciu1234
veteran
Posts: 144
Joined: Fri Oct 30, 2020 2:31 pm
Has thanked: 1 time
Been thanked: 1 time

Re: trackmania noesis problem

Post by fajNYgosciu1234 »

actually, i fixed the mesh amount problem but i still need a fix for this one
fajNYgosciu1234
veteran
Posts: 144
Joined: Fri Oct 30, 2020 2:31 pm
Has thanked: 1 time
Been thanked: 1 time

Re: trackmania noesis problem

Post by fajNYgosciu1234 »

also, the plugin doesn't support ascii gbx
fajNYgosciu1234
veteran
Posts: 144
Joined: Fri Oct 30, 2020 2:31 pm
Has thanked: 1 time
Been thanked: 1 time

Re: trackmania noesis problem

Post by fajNYgosciu1234 »

bumpy lumpy jumpy
fajNYgosciu1234
veteran
Posts: 144
Joined: Fri Oct 30, 2020 2:31 pm
Has thanked: 1 time
Been thanked: 1 time

Re: trackmania noesis problem

Post by fajNYgosciu1234 »

and also everything is positioned at the same location
User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 4286
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 1147 times
Been thanked: 2242 times

Re: trackmania noesis problem

Post by shakotay2 »

fajNYgosciu1234 wrote: Mon Jan 17, 2022 4:09 pm and also everything is positioned at the same location
The "clumped mesh" problem, maybe?
Bigchillghost wrote: Thu Jan 13, 2022 12:46 pmlet along the vertices need to be transformed to the correct positions with the corresponding bone transformation info
--------------------
Concerning Gbx and the Noesis script: don't know the script (and if so wouldn't have the time to patch it), but mesh format looks simple:
.
dsStadiumCar-Gbx.png
You do not have the required permissions to view the files attached to this post.
Tuts: a) Bigchillghost, viewtopic.php?f=29&t=17889
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
fajNYgosciu1234
veteran
Posts: 144
Joined: Fri Oct 30, 2020 2:31 pm
Has thanked: 1 time
Been thanked: 1 time

Re: trackmania noesis problem

Post by fajNYgosciu1234 »

https://cdn.discordapp.com/attachments/ ... _gbx_PC.py
here's the plug-in, it can't read some or most cars with gbx decompressed
User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 4286
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 1147 times
Been thanked: 2242 times

Re: trackmania noesis problem

Post by shakotay2 »

fajNYgosciu1234 wrote: Wed Nov 23, 2022 8:03 am https://cdn.discordapp.com/attachments/ ... _gbx_PC.py
here's the plug-in, it can't read some or most cars with gbx decompressed
Thanks; whom is the py script from? (There are not many scripts that use bs.data[addr:bs.dataSize])

btw: any script is rather worthless as long as it isn't accompanied by a working sample, here .gbx.
(Not working samples aren't very helpful for trying to patch scripts.)

This is the patched script (sorry to unknown original author for spoiling it :cry: ) to give you the idea.
Loads one sub mesh only. Fails with MainbodyHigh.Solid.Decompressed.Gbx

Code: Select all

from inc_noesis import *
import noesis
#import rapi

def registerNoesisTypes():
	handle = noesis.register("Trackmania",".gbx")
	noesis.setHandlerTypeCheck(handle, noepyCheckType)
	noesis.setHandlerLoadModel(handle, noepyLoadModel)
	return 1
	
NOEPY_HEADER = "GBX"

def noepyCheckType(data):
   bs = NoeBitStream(data)
   if len(data) < 3:
      return 0
   if bs.readBytes(3).decode("ASCII") != NOEPY_HEADER:
      print("'gbx' not found!")
      return 0
   return 1  	

def noepyLoadModel(data, mdlList):
	ctx = rapi.rpgCreateContext()
	bs = NoeBitStream(data)

	texList = []
	matList = []
	TexNames = []

	bs.seek(0x89, NOESEEK_REL)
	NumMeshes = bs.readUInt()

	for i in range(1):
		addr=bs.tell()
		fileBuff = bs.data[addr:bs.dataSize]
		addr1= fileBuff.find(b'\x0E\x60\x00\x09\x38\x00\x00')
		addr += addr1
		bs.seek(addr);print(hex(addr))
		bs.seek(-0x48, NOESEEK_REL)
		MaterialName = (bs.readBytes(8).decode("ASCII").lstrip("\0FF"))
		#bs.seek(0x4C, NOESEEK_REL)

		addr=bs.tell()
		fileBuff = bs.data[addr:bs.dataSize]
		addr1= fileBuff.find(b'\x38\x00\x00\x00\x01\x00\x00\x00')
		print(hex(addr),hex(addr1))
		addr += addr1 + 8
		bs.seek(addr);print(hex(addr))

		VCount = bs.readUInt();print("vCnt: ", VCount, MaterialName)
		if VCount == 0:
			print("not supported"); return 1
		bs.seek(0x8, NOESEEK_REL)
		UVAddress = bs.tell()
		UVsize = VCount*8
		UVBuff = bs.readBytes(UVsize)
		rapi.rpgBindUV1BufferOfs(UVBuff, noesis.RPGEODATA_FLOAT, 8, 0)
		bs.seek(0x28, NOESEEK_REL)			
		VAddress= bs.tell()
		FVFsize = int(40)
		VBuff = bs.readBytes(VCount*FVFsize)
		rapi.rpgBindPositionBufferOfs(VBuff, noesis.RPGEODATA_FLOAT, FVFsize, 0)
		bs.seek(0x18, NOESEEK_REL)
		FCount = bs.readUInt()
		FAddress= bs.tell();print(hex(FAddress))
		FBuff = bs.readBytes(FCount*2)
		rapi.rpgCommitTriangles(FBuff, noesis.RPGEODATA_USHORT, FCount, noesis.RPGEO_TRIANGLE, 1)
		material = NoeMaterial(MaterialName,"")
		matList.append(material)
		rapi.rpgSetMaterial(MaterialName)
		bs.seek(addr+1, NOESEEK_ABS)

	mdl = rapi.rpgConstructModel()
	mdl.setModelMaterials(NoeModelMaterials(texList, matList))
	mdlList.append(mdl)
	rapi.rpgClearBufferBinds()
	return 1
You may change line 33 to

Code: Select all

	for i in range(5):
This will show the 4 wheels' material names, but doesn't load their meshes.
.
ds stadium car-Gbx.jpg
You do not have the required permissions to view the files attached to this post.
Tuts: a) Bigchillghost, viewtopic.php?f=29&t=17889
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
fajNYgosciu1234
veteran
Posts: 144
Joined: Fri Oct 30, 2020 2:31 pm
Has thanked: 1 time
Been thanked: 1 time

Re: trackmania noesis problem

Post by fajNYgosciu1234 »

shakotay2 wrote: Wed Nov 23, 2022 1:10 pm
fajNYgosciu1234 wrote: Wed Nov 23, 2022 8:03 am https://cdn.discordapp.com/attachments/ ... _gbx_PC.py
here's the plug-in, it can't read some or most cars with gbx decompressed
Thanks; whom is the py script from? (There are not many scripts that use bs.data[addr:bs.dataSize])

btw: any script is rather worthless as long as it isn't accompanied by a working sample, here .gbx.
(Not working samples aren't very helpful for trying to patch scripts.)

This is the patched script (sorry to unknown original author for spoiling it :cry: ) to give you the idea.
Loads one sub mesh only. Fails with MainbodyHigh.Solid.Decompressed.Gbx

Code: Select all

from inc_noesis import *
import noesis
#import rapi

def registerNoesisTypes():
	handle = noesis.register("Trackmania",".gbx")
	noesis.setHandlerTypeCheck(handle, noepyCheckType)
	noesis.setHandlerLoadModel(handle, noepyLoadModel)
	return 1
	
NOEPY_HEADER = "GBX"

def noepyCheckType(data):
   bs = NoeBitStream(data)
   if len(data) < 3:
      return 0
   if bs.readBytes(3).decode("ASCII") != NOEPY_HEADER:
      print("'gbx' not found!")
      return 0
   return 1  	

def noepyLoadModel(data, mdlList):
	ctx = rapi.rpgCreateContext()
	bs = NoeBitStream(data)

	texList = []
	matList = []
	TexNames = []

	bs.seek(0x89, NOESEEK_REL)
	NumMeshes = bs.readUInt()

	for i in range(1):
		addr=bs.tell()
		fileBuff = bs.data[addr:bs.dataSize]
		addr1= fileBuff.find(b'\x0E\x60\x00\x09\x38\x00\x00')
		addr += addr1
		bs.seek(addr);print(hex(addr))
		bs.seek(-0x48, NOESEEK_REL)
		MaterialName = (bs.readBytes(8).decode("ASCII").lstrip("\0FF"))
		#bs.seek(0x4C, NOESEEK_REL)

		addr=bs.tell()
		fileBuff = bs.data[addr:bs.dataSize]
		addr1= fileBuff.find(b'\x38\x00\x00\x00\x01\x00\x00\x00')
		print(hex(addr),hex(addr1))
		addr += addr1 + 8
		bs.seek(addr);print(hex(addr))

		VCount = bs.readUInt();print("vCnt: ", VCount, MaterialName)
		if VCount == 0:
			print("not supported"); return 1
		bs.seek(0x8, NOESEEK_REL)
		UVAddress = bs.tell()
		UVsize = VCount*8
		UVBuff = bs.readBytes(UVsize)
		rapi.rpgBindUV1BufferOfs(UVBuff, noesis.RPGEODATA_FLOAT, 8, 0)
		bs.seek(0x28, NOESEEK_REL)			
		VAddress= bs.tell()
		FVFsize = int(40)
		VBuff = bs.readBytes(VCount*FVFsize)
		rapi.rpgBindPositionBufferOfs(VBuff, noesis.RPGEODATA_FLOAT, FVFsize, 0)
		bs.seek(0x18, NOESEEK_REL)
		FCount = bs.readUInt()
		FAddress= bs.tell();print(hex(FAddress))
		FBuff = bs.readBytes(FCount*2)
		rapi.rpgCommitTriangles(FBuff, noesis.RPGEODATA_USHORT, FCount, noesis.RPGEO_TRIANGLE, 1)
		material = NoeMaterial(MaterialName,"")
		matList.append(material)
		rapi.rpgSetMaterial(MaterialName)
		bs.seek(addr+1, NOESEEK_ABS)

	mdl = rapi.rpgConstructModel()
	mdl.setModelMaterials(NoeModelMaterials(texList, matList))
	mdlList.append(mdl)
	rapi.rpgClearBufferBinds()
	return 1
You may change line 33 to

Code: Select all

	for i in range(5):
This will show the 4 wheels' material names, but doesn't load their meshes.
.
ds stadium car-Gbx.jpg
the plug-in i found was from the vg resource forums https://www.vg-resource.com/thread-37380.html
User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 4286
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 1147 times
Been thanked: 2242 times

Re: trackmania noesis problem

Post by shakotay2 »

Ok, the script author is Tuliopilloto.
who wrote to squidiskool
This script was tested only with the file you posted, so there is no guarantee that it will work with all files.
Tuts: a) Bigchillghost, viewtopic.php?f=29&t=17889
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
djibsone2
beginner
Posts: 21
Joined: Wed Dec 21, 2016 3:15 am
Has thanked: 5 times

Re: trackmania noesis problem

Post by djibsone2 »

Hi I would like to know how to convert a mod because gbx to obj
I am looking for a script for blender or noesis tools thank you.

https://www.vg-resource.com/thread-37380-page-2.html

i want to get these 2 mods for private use thanks for any help or info

https://drive.google.com/u/0/uc?id=1ZBc ... t=download
fajNYgosciu1234
veteran
Posts: 144
Joined: Fri Oct 30, 2020 2:31 pm
Has thanked: 1 time
Been thanked: 1 time

Re: trackmania noesis problem

Post by fajNYgosciu1234 »

https://cdn.discordapp.com/attachments/ ... ressed.Gbx
https://cdn.discordapp.com/attachments/ ... ressed.Gbx
https://cdn.discordapp.com/attachments/ ... ressed.Gbx
https://cdn.discordapp.com/attachments/ ... ressed.Gbx
https://cdn.discordapp.com/attachments/ ... ressed.Gbx
several samples from mappacks which were extracted from a zip file
one of these contain textures, so it's like table top racing stores it in .amodel
opening these in noesis gives an error about uv size
Post Reply