Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Changing the Camera Angle
#1
The default camera angle of a scene is a third-person behind-the-shoulder view.  The current tools out there don't allow you to easily change the camera settings, so you'll need to use a hex editor. This can be a bit difficult if you're not sure what you're doing. 

Do not fear, for I am here!... to write tutorials of course!

Anyway, let's get to business.

Explanation

On CloudModdingWiki, there is a page over the scene format in which there's a camera function that you'll be able to manipulate using the criteria and documentation listed there. For those who aren't familiar, I'll be showing the process and explaining what each important detail is.

1. Find the 0x03 scene header command in your scene file (Search "03000000"). This points collision header. 

2. The 0x03 command begins with  0x03 (sets up the command and tells the game this will point to the collision header), followed by three bytes of padding (useless 0s), and ends with a four byte segment address. The segment address is what the game will be reading to find where the collision header is located.

Segment addresses have two parts: a segment ID and an offset. The segment ID references a table of start addresses kept track of by the CPU, usually corresponding to important files in memory. The offset is then relative to these start addresses. There are 16 segment IDs in total. 

Segment Address Table

For example: "0x02000069" has a segment ID of 0x02 and an offset of 0x69. This means that the game will jump to the start of the current scene (Segment ID 0x02 = Current Scene) and move 0x69 bytes forward. It will then read data from there on. 

Knowing this, go to the segment address defined in the 0x03 command.

3. After you go to the specified offset, you'll find the collision header. It is formatted like so:
Code:
bbbbcccc ddddeeee ffffgggg vvvv0000
aaaaaaaa pppp0000 llllllll tttttttt
xxxxxxxx wwww0000 mmmmmmmm

This is what it may look like in the file:

[Image: ViRvjRJ.png]

"xxxxxxxx" is the segment address for where the camera variable is set. 

4. The segment ID in the picture above would be 0x02, and the offset would be 0xC770. This means that we must go to that offset and write the camera option that we want. There are many undocumented camera options, so in the future this tutorial will be updated with a more comprehensive list. However, here are some currently discovered options: 

Camera Options
 
That's about it! Here's a basic rundown: 

1. Open the scenefile in [Preferred Hex Editor]
2. Search for "03000000"
3. Find "0200xxxx"
4. Copy xxxx and go to that offset
5. Find "0200yyyy"
6. Copy yyyy and go to that offset
7. Write the camera variable you want set
8. ???
9. Profit!
  


Forum Jump:


Users browsing this thread:
1 Guest(s)