I have a new update for you, one i am pretty proud of
This has alot of firsts for me, first time using Ghidra and decompiled code from source, debugging Aseembly code and generaly just alot of research.
To the best of my knowlage this is the first script that can now decompress BINK format along with many other new features.
Change List:
1. Added Auto Texturing for all .gr2 files with embeded textures including the following formats : RGBA32, DXT1/3/5 and BINK. so now games like Winter X-Games: Snocross can directly load/export textures from noesis without any 3rd party ripping tools.
Currebtly Turned on by Deafult, can be disabled with the following Option.
GAME_TAG_GRANNY = True
2. new option, allows to transform any loaded file to any coordinate system and UnitsPerMeter of your choosing,
Currently by default all files are converted to native noesis coordinate system where meshes will always be facing forward.
just an example of usefulness, if by some mistake a mesh and animation file where created in a different system the script will automaticly transform both to same system and allow for animation to work correctly with the mesh.
or if your exporting for a specific game in a different system you can easily adjust before exporting.
TRANSFORM_FILE
RightVector = [1,0,0]
UpVector = [0,1,0]
BackVector = [0,0,1]
UnitsPerMeter_new = 1.0
3. Adedd support for 64 bit Noesis- script will automatically recognize which system you are using and search for a compatible .dll file.
for 32 bit - granny2.dll
for 64 bit - granny2_x64.dll
4. Added QTangent Support for Baldur Gate 3.
5. Enabled Tangents in Script.
6. Fixed a bug with Old Animation to New format conversion function - should fix those floaty issues.
7. Added Initial Placement for Animation - while playining animations models will now load in the correct position in relation to world and other models of a scene.
8. Added absolute path to Noesis Main Folder for Granny2.dll and Mesh.txt files - should always look in correct path now.
9. Rewrote some code and memory optimzations on multiple functions.
10. Added some debug options, i dont expect almost anyone to use but why not right...
DISABLE_ALPHA - Disables Alpha blending when loading textures usefull for some games where alpha causes mesh to be transparent
LOAD_POINT_CLOUD - Load only mesh Vertcies.
DEBUG_NORMALS - Load Normals as colors.
Important information: this site is currently scheduled to go offline indefinitely by end of the year.
Granny .GR2 Reader plugin for Noesis
-
- mega-veteran
- Posts: 250
- Joined: Sun Jul 17, 2011 9:30 pm
- Has thanked: 61 times
- Been thanked: 241 times
Re: Granny .GR2 Reader plugin for Noesis
You do not have the required permissions to view the files attached to this post.
Last edited by jayn23 on Thu Jun 17, 2021 1:16 pm, edited 2 times in total.
-
- double-veteran
- Posts: 840
- Joined: Sat Nov 06, 2010 12:27 am
- Has thanked: 435 times
- Been thanked: 235 times
Re: Granny .GR2 Reader plugin for Noesis
I have never seen granny2 64-bit dll, care to name a game or two that has it?
- 05SpeedMaster
- veteran
- Posts: 127
- Joined: Mon Feb 10, 2020 9:24 pm
- Has thanked: 18 times
- Been thanked: 41 times
Re: Granny .GR2 Reader plugin for Noesis
Thank you for this new version. Are you still planning to fix the issue with Tyrael wings animations (or waiting for the full release ) ?
-
- mega-veteran
- Posts: 250
- Joined: Sun Jul 17, 2011 9:30 pm
- Has thanked: 61 times
- Been thanked: 241 times
Re: Granny .GR2 Reader plugin for Noesis
To be honest totaly forgot about that, since i deleted diablo until full game realeases, please uplaod samples both mesh and animations and ill take a look
Re: Granny .GR2 Reader plugin for Noesis
Here
Link
-
- mega-veteran
- Posts: 250
- Joined: Sun Jul 17, 2011 9:30 pm
- Has thanked: 61 times
- Been thanked: 241 times
Re: Granny .GR2 Reader plugin for Noesis
Well it does work
the skeleton embedded with the mesh file dosent work with the animation correctly , but the independent skeleton file does.
Just use the SKELETON_LOAD option to load the skeleton with the animatiom track set to 3, the other tracks are empty (just contain a static pose)
if you want to load it with mesh like i did, use MULTIFILE = 2 to merge meshes.
-
- ultra-n00b
- Posts: 7
- Joined: Wed Nov 22, 2017 3:56 pm
- Been thanked: 4 times
-
- mega-veteran
- Posts: 257
- Joined: Fri Jan 20, 2012 5:43 pm
- Has thanked: 49 times
- Been thanked: 139 times
Re: Granny .GR2 Reader plugin for Noesis
Can you try this model? D2R, iron golem.
https://www.dropbox.com/s/o2u3vyjxvv1br ... em.7z?dl=0
Thank you/
https://www.dropbox.com/s/o2u3vyjxvv1br ... em.7z?dl=0
Code: Select all
Traceback (most recent call last):
File "E:\noesisv4442\plugins\python\fmt_GR2reader135.py", line 5210, in noepyLoadModel
ctx = rapi.rpgCreateContext()
RuntimeError: Hit MAX_CONCURRENT_RPGEO_CONTEXTS!
-
- mega-veteran
- Posts: 250
- Joined: Sun Jul 17, 2011 9:30 pm
- Has thanked: 61 times
- Been thanked: 241 times
Re: Granny .GR2 Reader plugin for Noesis
its a noesis thing, this error happens when the .gr2 file contains to many unique models, just use the MERGE_SCENE option to combine all models.
Re: Granny .GR2 Reader plugin for Noesis
Hello,
While reading terrain model from Diablo 2 Resurrected using v1.3.5 I ran into this problem:
I fixed it by replacing "else:" on line 3213 with the following condition, but I'm sure there's a better way to deal with it
While reading terrain model from Diablo 2 Resurrected using v1.3.5 I ran into this problem:
Detected file type: GR2 Reader
Traceback (most recent call last):
File "noesisv4451\plugins\python\fmt_GR2reader135.py", line 5199, in noepyLoadModel
Models = GR2Reader(data)
File "noesisv4451\plugins\python\fmt_GR2reader135.py", line 4327, in GR2Reader
Models = extractData(StructHeaders)
File "noesisv4451\plugins\python\fmt_GR2reader135.py", line 3216, in extractData
for Tex in model.MeshBindings.Mesh.MaterialBindings.Material.Maps:
TypeError: 'dummy_member' object is not iterable
I fixed it by replacing "else:" on line 3213 with the following condition, but I'm sure there's a better way to deal with it
Code: Select all
elif type(model.MeshBindings[i].Mesh.MaterialBindings.Material.Maps) == list:
#for mesh with single material
-
- mega-veteran
- Posts: 250
- Joined: Sun Jul 17, 2011 9:30 pm
- Has thanked: 61 times
- Been thanked: 241 times
Re: Granny .GR2 Reader plugin for Noesis
Thanks for sharing,boskee wrote: ↑Sun Jul 04, 2021 12:53 pm Hello,
While reading terrain model from Diablo 2 Resurrected using v1.3.5 I ran into this problem:
Detected file type: GR2 Reader
Traceback (most recent call last):
File "noesisv4451\plugins\python\fmt_GR2reader135.py", line 5199, in noepyLoadModel
Models = GR2Reader(data)
File "noesisv4451\plugins\python\fmt_GR2reader135.py", line 4327, in GR2Reader
Models = extractData(StructHeaders)
File "noesisv4451\plugins\python\fmt_GR2reader135.py", line 3216, in extractData
for Tex in model.MeshBindings.Mesh.MaterialBindings.Material.Maps:
TypeError: 'dummy_member' object is not iterable
I fixed it by replacing "else:" on line 3213 with the following condition, but I'm sure there's a better way to deal with it
Code: Select all
elif type(model.MeshBindings[i].Mesh.MaterialBindings.Material.Maps) == list: #for mesh with single material
please upload the sample that gave this error, ill take a look
-
- veteran
- Posts: 134
- Joined: Sat Sep 13, 2008 3:13 pm
- Has thanked: 17 times
- Been thanked: 31 times
- Contact:
Re: Granny .GR2 Reader plugin for Noesis
Hi Jayn,
I can't tell you how much I appreciate this tool.
I notice that the UVs for ESO statics are still strange. They seem to be off in random ways.
I have uploaded a test sample with files for comparison. (model file converted using your tool (with strange UVs), and the same model obtained using Ninja Ripper with the correct UVs for comparison, exported as an OBJ, etc.)
Side note for anyone trying this: With Ninja Ripper in max you need to tile your textures 32 times in both directions to get correct UVs for ESO statics. I use UVW Xform modifier.
https://www.sendspace.com/file/lln8p6
I can't tell you how much I appreciate this tool.
I notice that the UVs for ESO statics are still strange. They seem to be off in random ways.
I have uploaded a test sample with files for comparison. (model file converted using your tool (with strange UVs), and the same model obtained using Ninja Ripper with the correct UVs for comparison, exported as an OBJ, etc.)
Side note for anyone trying this: With Ninja Ripper in max you need to tile your textures 32 times in both directions to get correct UVs for ESO statics. I use UVW Xform modifier.
https://www.sendspace.com/file/lln8p6