Register - Login
Views: 99797309
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies
05-03-22 05:52:17 AM
Jul - SM64 Hacking (Archive) - 3D Model importation explained New poll - New thread - New reply
Next newer thread | Next older thread
RomanianGirl

Level: 16


Posts: 28/42
EXP: 19638
For next: 618

Since: 01-31-08

From: Canada

Since last post: 12.9 years
Last activity: 12.9 years

Posted on 04-27-09 12:16:28 AM Link | Quote
Alright, so a lot of people have been asking for a model importer to replace Mario’s model (Or other characters potentially) into whatever character. A lot of hackers here have repeated the same “This is not possible with current knowledge of Super Mario 64”, yet people continue to beg. Well, I’ll hopefully clear up quite a few problems with this thread. : )

First of all, you must realize the fact that Super Mario 64 is a very early 3D game, and thus polygon models were NOT designed the way they are today. Today’s models of characters in video games use a ‘skeleton’ which attaches to the mesh, and primarily deals with animating the character smoothly.


(Please note this is a skeleton I created, not exported from the game’s data)

As you can see on video games, the character’s models aren’t ‘chunked out’ as Mario’s model is (see above). The Super Mario 64 engine uses a much different animating system; polygon body parts go through a series of rotations and transitions to animate Mario jumping, running, swimming, and every other animation. This is evident when Mario has Peach’s animation. His polygonal parts begin to act as if he has Peach’s structure, and thus his polygonal body parts move as if they were Peach’s.

A potential solution to this problem is perhaps a system where you ‘distort’ the body parts to create different characters, and importing these edited vertices into the game. The problem is that the character will maintain the same height and posture as Mario.

A second problem is how the models are built. As VL-Tone explained in a post long ago, the models are made up of triangles. An issue that arises is the fact the vertices are not ‘locked’ together. What this means is you cannot ‘tell’ one vertex to move say 50+ in the y position, and expect the other 3 connecting ones to do so. This leaves ‘holes’ in the models (and since polygons are not shown inside Mario, it’s even more odd].


(Please note this also occurs when RAM values are edited during gameplay)

In addition, you must realize that new vertices cannot be created. This means you are only limited to the number Mario has (plus if there are unused ones in the ROM)

Finally, the animation is the last problem. If people were to make new characters, to avoid over work, Mario’s animation data must be retained. I don’t know too much about how editable the animation data is, but Mario’s data is so vast (hundreds for all his actions + reactions), it would literally take months to create new animation data for every move, then re-write into the ROM. If you don’t understand the diversity of Mario’s moveset, refer to my incomplete list of hex values: http://jul.rustedlogic.net/thread.php?id=2529

With this thread, I did not mean to ‘burst anyone’s bubble’. I wrote this for Messiaen, VL-Tone, and whoever else worked on this to explain to others of the difficulty. Some of my analysis may have been incorrect, and I may have missed a few points, but this gives a general idea of the difficulty involved. I’m not trying to be pessimistic, but others must think realistically.
You are welcome to post questions, opinions, and ideas.

(Please forgive grammatical/spelling errors in this post.)
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 457/621
EXP: 1136482
For next: 20637

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 6 days

Posted on 04-27-09 04:41:06 AM Link | Quote
Time: Now - Date: Today - Weather: What can be seen outside. - Mood: How it feels. Answer to the universe: 42
Thanks RomanianGirl, there's a lot of interesting information there.

But Mario does have a skeleton-like hierarchy structure in the ROM. I had to modify it for the Luigi mod. Not only the body parts polygons were strectched, but also the skeleton.

And it is possible to replace Mario's body parts considering what we know now, and stretch the skeleton to accommodate the new body parts sizes. One of the early hacks I did was replacing Mario's head with Peaches.

The main problem we have is that we have to leave the skeleton structure intact, as the animation code depends on it. We can modify the position of body part joints, but not the number and hierarchy of body parts. That's why we can't directly use the Peach model, because she doesn't have legs, and she has a pony tail. Same goes for Yoshi, which doesn't have a matching humanoid body part structure.

And as you said, we don't have enough knowledge of Mario's animation code to make any drastic changes to it's body structure.

As for the vertex problem you highlighted, it comes from the fact that vertex items in the SM64 engine also contain vertex coloring/normals and texture coordinates. That means that while two triangle could use the same vertex located at the same coodinates, they might end up using two different vertex items because each needs to have different vertex colors/normals or texture coordinates. It wouldn't be that hard to fuse vertices using the same position so that they can be moved together.


____________________
RomanianGirl

Level: 16


Posts: 29/42
EXP: 19638
For next: 618

Since: 01-31-08

From: Canada

Since last post: 12.9 years
Last activity: 12.9 years

Posted on 04-27-09 02:38:39 PM Link | Quote
Originally posted by VL-Tone
Thanks RomanianGirl, there's a lot of interesting information there.

But Mario does have a skeleton-like hierarchy structure in the ROM. I had to modify it for the Luigi mod. Not only the body parts polygons were strectched, but also the skeleton.

And it is possible to replace Mario's body parts considering what we know now, and stretch the skeleton to accommodate the new body parts sizes. One of the early hacks I did was replacing Mario's head with Peaches.

The main problem we have is that we have to leave the skeleton structure intact, as the animation code depends on it. We can modify the position of body part joints, but not the number and hierarchy of body parts. That's why we can't directly use the Peach model, because she doesn't have legs, and she has a pony tail. Same goes for Yoshi, which doesn't have a matching humanoid body part structure.

And as you said, we don't have enough knowledge of Mario's animation code to make any drastic changes to it's body structure.

As for the vertex problem you highlighted, it comes from the fact that vertex items in the SM64 engine also contain vertex coloring/normals and texture coordinates. That means that while two triangle could use the same vertex located at the same coodinates, they might end up using two different vertex items because each needs to have different vertex colors/normals or texture coordinates. It wouldn't be that hard to fuse vertices using the same position so that they can be moved together.



He does have a skeleton? I thought the skeleton in SM64 was only used during the developing phase and removed.

It's strange because I was editing the ROM around where Mario's polygon data is found, I changed a value and when the game loaded up (I don't remember exactly, forgive me), Mario's left forearm was raised in the y position during the running animation.

Fusing vertices together would definitely make a few problems easier to deal with, but the new model would only be able to have as many vertices as Mario does.

I think if this were ever to be done, two things would have to be done; block out Mario's low poly (which you've already done), and perhaps block either Mario with a hat or without, since many potential characters would not use this feature. As well, more editing would be required to keep the model the same, which I know a lot of people wouldn't like to bother with.
radorn
Random nobody
Level: 5


Posts: 3/3
EXP: 367
For next: 162

Since: 08-23-08


Since last post: 13.0 years
Last activity: 13.0 years

Posted on 05-07-09 12:40:22 AM Link | Quote
I may be terribly wrong but I think what VL-Tone means when he says there's a skeleton-like hierachy in mario is that, since the body parts are organized in a hierarchy and each part's position in any given moment (which results of the animation code) is relative to the position of it's "parent" part, it conforms a skeleton of sorts, even if it's not a skeleton in the traditional sense.
Next newer thread | Next older thread
Jul - SM64 Hacking (Archive) - 3D Model importation explained New poll - New thread - New reply


Rusted Logic

Acmlmboard - commit 47be4dc [2021-08-23]
©2000-2022 Acmlm, Xkeeper, Kaito Sinclaire, et al.

28 database queries, 1 query cache hits.
Query execution time: 0.078282 seconds
Script execution time: 0.010984 seconds
Total render time: 0.089266 seconds