Welcome Guest [Log In] [Register]

Announcements

Welcome to Zelda64.net. Announcements can be found below!

6.26.2018  Make sure you keep your passwords safe. If you use the same password on here as on other sites, it is highly recommended that you change it. If you can't change your password, and want it changed, let me or other active staff know, and we can force a reset or change it for you. ~PwnzLPs
Welcome to Zelda64. We hope you enjoy your visit.


You're currently viewing our forum as a guest. This means you are limited to certain areas of the board and there are some features you can't use. If you join our community, you'll be able to access member-only sections, and use many member-only features such as customizing your profile, sending personal messages, and voting in polls. Registration is simple, fast, and completely free. A valid email address is required. Your email address will NOT be sold as it is only needed to prevent spammers (and admittedly, some still get around this, but this makes it a bit more difficult, plus, if the moderators need to contact you, we have an email on file to do so). Thanks for considering us!


Join our community!


If you're already a member please log in to your account to access all of our features:

Username:   Password:
Add Reply
  • Pages:
  • 1
[MM] Actor Rotation and Actor Time Schedule
Topic Started: Apr 2 2016, 09:56 AM (1,413 Views)
Dzeko
Member Avatar

When it was created: April/2nd/2016


The Actor Rotation is very straight-forward, you adjust the rotation of a actor how you want, in this topic there's documentation for the most important rotations,
The Actor Time Schedule is a lot more complicated, you can choose when you want a actor to be existing,
When a actor is in the game, the actor's Time Schedule determines if the actor needs to appear depending what day it is and if it is daytime or nighttime.

Three bits of Time Schedule:
- During the daytime of the first day (1st-Daytime).
- During the nighttime of the day before the first day (0th-Nighttime).
- During the daytime of the day before the first day (0th-Daytime).
Seven bits of Time Schedule:
- During the nighttime of the day after the third day (4th-Nighttime).
- During the daytime of the day after the third day (4th-Daytime).
- During the nighttime of the third day (3rd-Nighttime).
- During the daytime of the third day (3rd-Daytime).

- During the nighttime of the second day (2nd-Nighttime).
- During the daytime of the second day (2nd-Daytime).
- During the nighttime of the first day (1st-Nighttime).


X Rotation-Three bits of Time Schedule: XXTT
XX [X Rotation]
...

TT [Three bits of Time Schedule]
...

Y Rotation-Unrelated: YY~~
YY [Y Rotation]
...

Z Rotation-Seven bits of Time Schedule: ZZSS
ZZ [Z Rotation]
...

~S [~0-~F of the Seven bits of Time Schedule]
...

S~ [0~-7~ of the Seven bits of Time Schedule]
...


Actor Rotation, 12 examples:
X Rotation
00 https://i.cubeupload.com/XqbmxS.png
2D https://i.cubeupload.com/LutRe6.png
5A https://i.cubeupload.com/cy6JVO.png
87 https://i.cubeupload.com/hZGakP.png
Y Rotation
00 https://i.cubeupload.com/Tixeiy.png
2D https://i.cubeupload.com/ctOWYT.png
5A https://i.cubeupload.com/KV2qhO.png
87 https://i.cubeupload.com/KQgj5N.png
Z Rotation
00 https://i.cubeupload.com/9yeA7V.png
2D https://i.cubeupload.com/kbs2lh.png
5A https://i.cubeupload.com/CfWq17.png
87 https://i.cubeupload.com/f4RT7p.png


Actor Time Schedule example:
In this video, I edit 3 actors that by default does not disappear during nighttime:
https://www.youtube.com/watch?v=sCVdiBzDlco

It was really time consuming doing this topic,
I hope it is useful.
Edited by Dzeko, Jun 11 2018, 12:03 PM.
Offline Profile Quote Post Goto Top
 
mzxrules

This discrepancy is already documented on the cloudmodding wiki.

In MM, rotations are stored as a single byte value, where each increment represents a rotation of 2 degrees. The smaller rotation data makes room for extra data, namely the flags used to spawn actors depending on the current half day.
Offline Profile Quote Post Goto Top
 
Dzeko
Member Avatar

Oh thanks a lot Mzxrules, I rewrote the topic.
Edited by Dzeko, Apr 12 2016, 06:35 AM.
Offline Profile Quote Post Goto Top
 
mzxrules

1) Rotation isn't 4 bytes per axis in OoT. You're messing up the length of a byte.
2) I just told you that MM's rotation per axis variables aren't the same length as OoT's. Why are you saying otherwise?
Offline Profile Quote Post Goto Top
 
Dzeko
Member Avatar

I messed up with the bytes, sorry I was hurry.
The rotation in MM is still 2 bytes lenght but this just the first byte who defines the rotation, no?
Edited by Dzeko, Apr 12 2016, 12:56 PM.
Offline Profile Quote Post Goto Top
 
mzxrules

If the second byte has nothing to do with rotation (which it doesn't), it's not part of the rotation variable, and shouldn't be counted as being part of it.
Offline Profile Quote Post Goto Top
 
Dzeko
Member Avatar

Alright I understand, this is better now?
Offline Profile Quote Post Goto Top
 
Garo-Mastah
Member Avatar
$99 Ninja Spy From Ikana
oh thanks, but one thing, and the values for the 1st, 2nd, final and the new day?
Offline Profile Quote Post Goto Top
 
Dzeko
Member Avatar

I don't really know in fact, if I really understand how it works it the X Time Flag + Z Time Flag = Value
But you should look at the wiki maybe it could help otherwise look at the Time Flag of the actor. ^^
Offline Profile Quote Post Goto Top
 
mzxrules

the page I linked to explains it, but I guess I could explain it again.

There are 5 days recognized by the engine: the 0th day which takes place before you enter Termina, the usual days 1, 2, and 3, then the 4th day, which is the "Dawn of a New Day". Each bit relevant to the Time Flag of an actor spawn determines whether the engine should spawn it for a particular half-day.

What makes things tougher for casuals is that the variable itself is split into two parts, the first being between the x and y rotations, and the second between the y and z rotations. We'll call them e and f to keep consistency with the wiki.

If you want an actor to always spawn regardless of the current time of day, you simply just set e to 0x07, and f to 0x7F, but if you want to prevent an actor from spawning on certain days/half days, you need to break these two variables down to their bits.

Code:
 
e = 00000111
f = 01111111


Consider just the 1 bits. From left to right, starting with e, you have the 0th day "day" flag, the 0th day "night" flag, and the 1st day "day" flag. Then, moving on to f, you have the 1st day "night" flag, the 2nd day "day" flag, and so on.

Offline Profile Quote Post Goto Top
 
1 user reading this topic (1 Guest and 0 Anonymous)
Go to Next Page
« Previous Topic · Documentation · Next Topic »
Add Reply
  • Pages:
  • 1