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

Spotlight: Señor Casaroja's Noesis

General game file tools that are useful for more than one game
finale00
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 2382
Joined: Sat Apr 09, 2011 1:22 am
Has thanked: 170 times
Been thanked: 307 times

Re: Señor Casaroja's Noesis

Post by finale00 »

There should be a function for me to load that in without having to manually convert stuff to triangles I think. At least, I'm assuming that's where the QUAD constant may be used.

Also when loading texture by handler, it looks like I have to explicitly pass in an extension.
So if a game uses a variety of formats (eg: both bmp and tga), I would store the extension of the referenced file and then pass it to the function call.

Now what if the game uses the extension "tga" for images that use DDS format? This method fails because my code sees "tga" and passes it in but the image format is DDS.

Now, all of the images are extension tga, but not all images are DDS. Some are actually tga. I'd have to open the file and do stuff with it to determine what format it actually is. A faster way to handle these situations would be helpful.
MrAdults
Moderator
Posts: 1007
Joined: Mon Mar 23, 2009 2:57 am
Has thanked: 44 times
Been thanked: 505 times

Re: Señor Casaroja's Noesis

Post by MrAdults »

Use RPGEO_QUAD instead of RPGEO_TRIANGLE. The primitive types are all listed in __NPReadMe.txt. The assumption on quad winding may or may not work for your index list.

The extension string passed to loadTexByHandler is only used to determine which data handler(s) to invoke, mainly for handlers which are name-dependent. If you're trying to load a DDS file from a .tga file that you loaded yourself, then just pass ".dds" to the function. The function doesn't care what your original filename was, and that isn't the reason the parameter exists. The data itself is also validated for each image format (this is the reason you're urged to write "check" functions for each data format you add), so if you have more than 1 format using the ".dds" extension (or whatever else), whichever handler confirms that the actual data is in an acceptable format is the handler that will be used.

Of course, it's also silly to be loading textures yourself when you don't have to. If the texture files are already available on the model's path, then you should just use the appropriate paths for the textures on your material(s) and let Noesis handle loading them for the preview. Especially in such cases where the textures don't even need to be converted/exported along with the model.
finale00
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 2382
Joined: Sat Apr 09, 2011 1:22 am
Has thanked: 170 times
Been thanked: 307 times

Re: Señor Casaroja's Noesis

Post by finale00 »

When working with text files, I ignore the data that is provided to the loadModel function and open the file as a text file and then parse it line by line.

But then I have to pack the values into bytes. Should I go with the struct module or is there something else I can use?

Also this error:

Code: Select all

UnicodeDecodeError: 'cp932' codec can't decode bytes in position 622-623: illegal multibyte sequence
Happens sometimes when I'm trying to read a line using file.readline()
The extension string passed to loadTexByHandler is only used to determine which data handler(s) to invoke
I can pass multiple extensions in one call?
MrAdults
Moderator
Posts: 1007
Joined: Mon Mar 23, 2009 2:57 am
Has thanked: 44 times
Been thanked: 505 times

Re: Señor Casaroja's Noesis

Post by MrAdults »

finale00 wrote:When working with text files, I ignore the data that is provided to the loadModel function and open the file as a text file and then parse it line by line.
That's fairly wasteful, since it's already loaded into memory, and parsing out of memory should be much faster.
finale00 wrote:But then I have to pack the values into bytes. Should I go with the struct module or is there something else I can use?
You don't need to for the purpose of passing it to Noesis. You can consider using the imm functions again if you're already parsing your data into native Python types. Otherwise, the struct module is probably the most common standard for Python binary packing.

Code: Select all

UnicodeDecodeError: 'cp932' codec can't decode bytes in position 622-623: illegal multibyte sequence
Sounds like you have an illegal multibyte sequence in the file. ;) The bitstream's readline merely reads up to a \n (or the end of the stream) and passes back a PyUnicode object formed from the UTF-8 input.
finale00 wrote:I can pass multiple extensions in one call?
No, you may still be misunderstanding. The extension is only to hint at what the format is and matters primarily for modules that require an input to have a given file extension associated with it to be recognized as that format. You shouldn't be passing data to loadTexByHandler without knowing that it can/should be handled already as an existing format, and knowing what format it is you should know which extension to pass in to get the loader that you want.
finale00
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 2382
Joined: Sat Apr 09, 2011 1:22 am
Has thanked: 170 times
Been thanked: 307 times

Re: Señor Casaroja's Noesis

Post by finale00 »

I found the issue with the readline.
Some of the strings are encoded in shift-JIS.

So for example it could say

Code: Select all

name: 黒艶有
vertex 492 {
   1.0 1.0 1.0
   ...
}
So I would just read a line, get the name, then read another line and grab the vert count and then start looping over the positions.

But now I'm stuck on getting the name lol
chrrox
Moderator
Posts: 2602
Joined: Sun May 18, 2008 3:01 pm
Has thanked: 57 times
Been thanked: 1422 times

Re: Señor Casaroja's Noesis

Post by chrrox »

are you working on somicomi
finale00
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 2382
Joined: Sat Apr 09, 2011 1:22 am
Has thanked: 170 times
Been thanked: 307 times

Re: Señor Casaroja's Noesis

Post by finale00 »

Nope this is just the metasequoia format cause it looks like a good candidate for immediate mode rendering.
I tried extracting sonicomi archives using asmodean's extractor but the files didn't seem to come out right.
LUBDAR
veteran
Posts: 95
Joined: Wed Jun 08, 2011 7:14 am
Has thanked: 18 times
Been thanked: 9 times

Re: Señor Casaroja's Noesis

Post by LUBDAR »

I wanted ask for help on using the "export from preview". I'm looking at Dissidia Final Fantasy models. If you need need for me to post a file for help I can but I think the problem is fairly generic and applies to other model formats.

I'll play the animation and stop it at any given point. I like the pose of the character and want to be able to export the model in the pose that it is in.

I select "export from preview", choose the destination as c:\, and change the main output type to ".dae - COLLADA" , tick the "Rotate 90" option and select OK.

I open up 3dsMax2010, drag and drop the .dae file into the window and select to use the open collada importer. To my dismay the model is in the original pose, not in the pose which I paused the animation in.

I hope I'm not totally confused on the use of "Export from preview" but if anyone could help me out with how to export models from preview mode and load them into 3dsMax I would greatly appreciate it.


EDIT: I should note that this sort of outcome happens when I look at the ff8 files as well; that's why I presumed it was a problem with myself that is somewhat generic.
LUBDAR
chrrox
Moderator
Posts: 2602
Joined: Sun May 18, 2008 3:01 pm
Has thanked: 57 times
Been thanked: 1422 times

Re: Señor Casaroja's Noesis

Post by chrrox »

just export it as fbx then play the animation in max and pause it on the frame you want.
LUBDAR
veteran
Posts: 95
Joined: Wed Jun 08, 2011 7:14 am
Has thanked: 18 times
Been thanked: 9 times

Re: Señor Casaroja's Noesis

Post by LUBDAR »

chrrox wrote:just export it as fbx then play the animation in max and pause it on the frame you want.
Thanks for the quick reply chrrox!

Is it just my computer?? I've attached the file.

I play the animation and go to "Export from preview". I selected .FBX as the output type, and export, and drag and drop it into max and I press play but nothing happens. It's still the original pose. the animation bar trudges along, but the number of total frames doesn't equal the same number from Noesis.
Last edited by LUBDAR on Mon Jan 09, 2012 1:51 am, edited 1 time in total.
hatyn
advanced
Posts: 47
Joined: Fri Dec 16, 2011 8:30 pm
Has thanked: 2 times
Been thanked: 3 times

Re: Señor Casaroja's Noesis

Post by hatyn »

Hi - I would like your opinion on the Dark Souls BND archive files and FLEV 3d format. Is there anyway you could take a look at these and comment if it is possible to access the 3D models from this game?

http://xis9.com/000000ef.flv

and the BND (Noesis doesn't support this version)
http://xis9.com/000000b3.bnd

thanks and looking forward!
User avatar
Rimbros
ultra-veteran
ultra-veteran
Posts: 495
Joined: Fri Jul 09, 2010 12:23 am
Has thanked: 41 times
Been thanked: 16 times

Re: Señor Casaroja's Noesis

Post by Rimbros »

chrrox wrote:
Rimbros wrote:Mr. Adults, its Noesis compatible with Iron Man 2 xbox360 or ps2 game?, (.pkg files)
its the same format as golden axe.
MMMM.. i never see .dat files in the golden axe bro, this its textures extracted from .pkg file any idea?

http://www.megaupload.com/?d=IQG9225C
Renders Art by Rimbros
http://s303.photobucket.com/albums/nn12 ... E/Renders/

Personal Game repository samples, send PM
MrAdults
Moderator
Posts: 1007
Joined: Mon Mar 23, 2009 2:57 am
Has thanked: 44 times
Been thanked: 505 times

Re: Señor Casaroja's Noesis

Post by MrAdults »

LUBDAR wrote:the animation bar trudges along, but the number of total frames doesn't equal the same number from Noesis.
It's loading the frames, Max just confines the range to whatever your global default is when you import animation from FBX. You have to click that little clock icon to the...I think it was to the lower-right of the animation bar by default. Then you have to expand the range of animation frames for the scene in the dialog that comes up.
LUBDAR
veteran
Posts: 95
Joined: Wed Jun 08, 2011 7:14 am
Has thanked: 18 times
Been thanked: 9 times

Re: Señor Casaroja's Noesis

Post by LUBDAR »

MrAdults wrote: It's loading the frames, Max just confines the range to whatever your global default is when you import animation from FBX. You have to click that little clock icon to the...I think it was to the lower-right of the animation bar by default. Then you have to expand the range of animation frames for the scene in the dialog that comes up.
Thanks for the help! Unfortunately, as I had feared, my I don't think my computer can handle it. It just took me about 7 minutes to get Max to recognize that I wanted to stop the animation.

Its O.K. though, usually as long as I can get the models into Max and they have bones, then I just spend time posing them.

Soon enough I'll upgrade computers...
MrAdults
Moderator
Posts: 1007
Joined: Mon Mar 23, 2009 2:57 am
Has thanked: 44 times
Been thanked: 505 times

Re: Señor Casaroja's Noesis

Post by MrAdults »

3.77 is up, this one is another pretty significant release due to large amounts of restructuring under the hood.

Code: Select all

 -3.77 - Removed all OpenGL dependencies and integrated a new graphics API standard into all of the Noesis modules. A new graphics module that uses OpenGL is now provided. (Direct3D and/or software renderers will probably be coming in the future)
 -3.77 - Fixed another bug in the Kinect module.
 -3.77 - Added RPGEO_QUAD_ABC_BCD, RPGEO_QUAD_ABC_ACD, RPGEO_QUAD_ABC_DCA to cover other common quad index order conventions. (RPGEO_QUAD is ABC_DCB, as now denoted by the comment in pluginshare.h)
 -3.77 - Fixed a crash in the SMD loader.
 -3.77 - When you select a bone in the data viewer, shift+clicking will auto-enable the bone's transform offset and allow you to rotate the bone with your mouse. (left and right buttons control which axes you're rotating)
 -3.77 - Fixed a bug that occurred when parsing OBJ files with blank usemtl entries.
The SMD loader crash fix is kind of speculative. It's a crash someone submitted through Noesis, and the stack seemed to be trashed, so I reviewed the area of the crash and generally tried to fool-proof everything to prevent any kind of stack corruption or out of range stack variables. (the actual crash happened when retrieving a counter variable off of the stack that had been corrupted by some other code that executed during a loop) Seemed like it may have been overflowing the texture name buffer, but I don't know. If by any chance you're the person that submitted that crash, if you can still reproduce it in 3.77 I'd appreciate you sending over the SMD file that's crashing it.

Edit: Oh, and one word of warning, your config and persistent settings will reset after you update to 3.77. I had to change one of the core config structures to fit space for the renderer DLL name. So you'll want to redo any custom settings. (which includes re-enabling auto-updating if you were using it)
Post Reply