Difference between revisions of "Camera"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
m
 
Line 40: Line 40:
 
The camera will take the shortest way to the new coordinates based on the previous ones.
 
The camera will take the shortest way to the new coordinates based on the previous ones.
 
You should always stay in a range on -180º to 180º to avoid unecessary rotations. I marked -135º, -45º, 0º, 45º and 135º with an asterix (*) to help.
 
You should always stay in a range on -180º to 180º to avoid unecessary rotations. I marked -135º, -45º, 0º, 45º and 135º with an asterix (*) to help.
*-03584 = -315,00º [Map_1]
+
*-03584 = -315,00º [Map_1] (South View)
*-02560 = -225,00º [Map_2]
+
*-02560 = -225,00º [Map_2] (East View)
*-01536 = -135,00º [Map_3]*
+
*-01536 = -135,00º [Map_3]* (North View)
*-00512 = -045,00º [Map_4]*
+
*-00512 = -045,00º [Map_4]* (West View)
 
*+00000 = +000,00º [Map_0]* ((0,0) at bottom left corner)
 
*+00000 = +000,00º [Map_0]* ((0,0) at bottom left corner)
*+00512 = +045,00º [Map_1]*
+
*+00512 = +045,00º [Map_1]* (South View)
*+01536 = +135,00º [Map_2]*
+
*+01536 = +135,00º [Map_2]* (East View)
*+02560 = +225,00º [Map_3]
+
*+02560 = +225,00º [Map_3] (North View)
*+03584 = +315,00º [Map_4]
+
*+03584 = +315,00º [Map_4] (West View)
 
 
  
 
== Camera Rotation : Half-Word (signed) ==
 
== Camera Rotation : Half-Word (signed) ==

Latest revision as of 19:40, 12 June 2022

{19} Camera

Camera(+XXXXX,+ZZZZZ,+YYYYY,+ANGLE,+MAPRT,+CAMRT,+ZOOM%,+TIMER)

Moves camera around the map, like a small helicopter.

The coordinates used are the map's absolute coordinates, not relative ones to where the camera currently is.

All entry fields can range from -32768 to 32767. Tiles are 28x28, and Camera motion is 4x more precise, so 112 = 1 Tile. 1h is 12 pixels high, so 48 = 1h, and regular units are 3h tall.

You might want to look into Xifanie's Camera Helper to easily design your camera instructions. (Requires Excel 2007+)


See Also: {1F} Focus{E5} WaitForInstruction(x04,x00)


X axis : Half-Word (signed)

  • +00112 = 28 pixels = 1 tile (center)
  • +00392 = 98 pixels = 3,5 tiles (border between tile 3 and 4)
  • +00896 = 224 pixels = 8 tiles (center)


Z axis : Half-Word (signed)

  • +00048 = 1h (centers 3h)
  • +00192 = 4h (centers 6h)
  • +00384 = 8h (centers 10h)


Y axis : Half-Word (signed)

  • +00112 = 28 pixels = 1 tile (center)
  • +00392 = 98 pixels = 3,5 tiles (border between tile 3 and 4)
  • +00896 = 224 pixels = 8 tiles (center)


Angle : Half-Word (signed)

Note: the base of the map is 0º.

  • +00000 = +00,00º
  • +00302 = +26,54º (often used in regular game)
  • +00341 = +30,00º
  • +00448 = ??? (upper view for in-battle camera)
  • +01024 = +90,00º (bird view)

Map Rotation : Half-Word (signed)

Positive result = Clockwise Rotation The camera will take the shortest way to the new coordinates based on the previous ones. You should always stay in a range on -180º to 180º to avoid unecessary rotations. I marked -135º, -45º, 0º, 45º and 135º with an asterix (*) to help.

  • -03584 = -315,00º [Map_1] (South View)
  • -02560 = -225,00º [Map_2] (East View)
  • -01536 = -135,00º [Map_3]* (North View)
  • -00512 = -045,00º [Map_4]* (West View)
  • +00000 = +000,00º [Map_0]* ((0,0) at bottom left corner)
  • +00512 = +045,00º [Map_1]* (South View)
  • +01536 = +135,00º [Map_2]* (East View)
  • +02560 = +225,00º [Map_3] (North View)
  • +03584 = +315,00º [Map_4] (West View)

Camera Rotation : Half-Word (signed)

Positive result = Clockwise Rotation And no, at 180º your characters won't fall from the map like ants. That's why it's the camera that is rotating, and not the map.

  • -02048 = -180,00º
  • -01024 = -090,00º
  • -00512 = -045,00º
  • +00000 = +000,00º
  • +00512 = +045,00º
  • +01024 = +090,00º
  • +02048 = +180,00º


Zoom : Half-Word (signed)

Distance between the camera and target.

This one is rarely ever used since resizing makes the maps, and mostly units, ugly.

  • +02048 = 050%
  • +04096 = 100%
  • +08192 = 200%


Time : Half-Word (signed)

Time required in frames to perform the whole instruction.

  • +00060 = 1,00 seconds
  • +00120 = 2,00 second
  • +00300 = 5,00 seconds