Actions

SCHG

Difference between revisions of "Sonic Generations/Objects"

From Sonic Retro

(Added/refined many things)
Line 2: Line 2:
 
In Sonic Generations, there are several objects that have special properties to them. If Sonic can interact with something in the level (such as push it, ride it if it's moving, or destroy it), chances are it's an object. Almost anything that moves, or can be moved, is an object with the exception of a few dynamic terrain objects (such as the Eagles in Dragon Road Day in Sonic Unleashed; no such similarity seems to be in Sonic Generations).
 
In Sonic Generations, there are several objects that have special properties to them. If Sonic can interact with something in the level (such as push it, ride it if it's moving, or destroy it), chances are it's an object. Almost anything that moves, or can be moved, is an object with the exception of a few dynamic terrain objects (such as the Eagles in Dragon Road Day in Sonic Unleashed; no such similarity seems to be in Sonic Generations).
  
There are a vast amount of objects, some that are general purpose objects and others that are level specific, but can be added to other levels if necessary (through modifying the resources; more on that later).
+
There are a vast amount of objects, some that are general purpose objects and others that are level specific, but can be added to other levels if necessary (through modifying the resources, but that's for another guide).
  
=Special Objects=
+
==Common Properties==
Certain objects have special properties to them that are unique to said objects. Here are some examples:
+
===IsCastShadow===
==Item Box (Classic)==
+
* This property is common to nearly if not most every object in the game. For objects such as rings and springs, it makes the object cast a shadow. For special objects such as cameras and sound effects, it doesn't seem to do anything.
===Item Type===
+
 
 +
===Range===
 +
* This property sets the draw distance of the object. If the range is really low, it probably won't be able to be seen from far away. If it's really high, then you can see it from a mile away.
 +
 
 +
===SetObjectID===
 +
* This is the object's ID, which is used to link it with other objects such as ObjCameraObjectLook.
 +
 
 +
==Ring==
 +
===IsLightSpeedDashTarget===
 +
* false = The ring cannot be light dashed upon.
 +
* true = The ring can be light dashed upon.
 +
 
 +
==Item==
 +
===ItemType===
 +
* 0 = 1-Up
 +
NOTE: ItemType of 1 or higher will cause the object to not exist.
 +
 
 +
==GoalSignboard==
 +
===ResultsPosition===
 +
* This is the place where the results screen happens. If you want to modify the rotation of the results screen, rotate the signboard object itself.
 +
 
 +
==GoalRing==
 +
===ResultsPosition===
 +
* This is the place where the results screen happens. If you want to modify the rotation of the results screen, rotate the object itself.
 +
 
 +
==ClassicItemBox==
 +
===IsRevive===
 +
* false = The item box, once popped open, will not respawn.
 +
* true = The item box will respawn after it is popped open.
 +
===ItemType===
 
* 1  = 10 Rings
 
* 1  = 10 Rings
 
* 2  = 1-Up
 
* 2  = 1-Up
Line 18: Line 47:
 
* 9  = Bubble Shield
 
* 9  = Bubble Shield
 
* 10 = Thunder Shield
 
* 10 = Thunder Shield
NOTE: Item type of 0/Undefined will simply cause the item box to not exist.
+
NOTE: An ItemType of 0/Undefined will simply cause the item box to not exist.
 +
 
 
===TreasureSearchHideType===
 
===TreasureSearchHideType===
 
* 0 = The item can't be detected via the treasure search skill.
 
* 0 = The item can't be detected via the treasure search skill.
 
* 1 = The item can be detected via the treasure search skill.
 
* 1 = The item can be detected via the treasure search skill.
  
==Switch==
+
==Spring (Any type)==
===Type===
+
===FirstSpeed===
* 0 = Once turned on, it will not turn off.
+
* This sets how fast Sonic is launched from the spring initially.
* 1 = Once turned on, it will turn off once stepped off.
 
* 2 = Once turned on, it will not turn off until it reaches the time specified (in seconds) by "OffTimer"
 
  
==UpReel==
+
===KeepVelocityDistance===
===IsWaitUp===
+
* This parameter sets how long Sonic keeps his velocity for before gravity starts acting on him. If you set it to a very high number (such as 5000), gravity will not work on Sonic and he'll keep on going forward until he hits another spring or object that snaps him out of it.
* false = Upreel activated by default, Sonic can use it anytime he wants
 
* true = Upreel will wait until an event triggers it so Sonic can use it
 
  
==(Air) Spring==
 
 
===MotionType (Modern)===
 
===MotionType (Modern)===
* 0: Sonic does his normal springing animation.
+
* 0 = Sonic does his normal springing animation.
* 1: Sonic does his normal springing animation.
+
* 1 = Sonic does his normal springing animation.
* 2: Sonic goes directly into his falling animation.
+
* 2 = Sonic goes directly into his falling animation.
* 3: Sonic spins momentarily, and then unspins.
+
* 3 = Sonic spins momentarily, and then unspins.
* 4: [http://oi49.tinypic.com/64m6q8.jpg Image to show.]
+
* 4 = [http://oi49.tinypic.com/64m6q8.jpg <---This is an image to show what Sonic looks like when he's launched from the spring; it's kinda hard to explain.]
* 5: Sonic does a frontflip.
+
* 5 = Sonic does a frontflip.
* 6: Sonic goes into the animation that he does when he hits a balloon.
+
* 6 = Sonic goes into the animation that he does when he hits a balloon.
 
* 7 and above: The game crashes.
 
* 7 and above: The game crashes.
 +
 +
===OutOfControl===
 +
* This sets how long the controls lock up after touching the spring.
 +
 +
===IsTo3D===
 +
* false = If Sonic is in a 2D section, Sonic will just speed along.
 +
* true = If Sonic is in a 2D section, Sonic will switch back into the 3D perspective.
  
 
===m_IsMonkeyHunting===
 
===m_IsMonkeyHunting===
Line 51: Line 83:
 
==AdlibTrickJump==
 
==AdlibTrickJump==
 
===SizeType===
 
===SizeType===
* 0 = The Trick Ramp will be smaller then before.
+
* 0 = The Trick Ramp will be smaller than before.
 
* 1 = The Trick Ramp will be its normal size.
 
* 1 = The Trick Ramp will be its normal size.
 +
 +
==UpReel==
 +
===IsWaitUp===
 +
* false = Upreel activated by default, Sonic can use it anytime he wants
 +
* true = Upreel will wait until an event triggers it so Sonic can use it
 +
 +
==Switch==
 +
===Type===
 +
* 0 = Once turned on, it will not turn off.
 +
* 1 = Once turned on, it will turn off once stepped off.
 +
* 2 = Once turned on, it will not turn off until it reaches the time specified (in seconds) by "OffTimer"
  
 
==General Floor==
 
==General Floor==
 
+
The model of the floors depend on the stage. The types and sizes are specific to each stage's resources.
The model of the floors depend on the stage prefix used(e.g, ghz, cpz, ssz, etc). The types and sizes are specific to each stage's resources.
 
  
 
===FloorSize===
 
===FloorSize===
Line 63: Line 105:
 
===FloorType===
 
===FloorType===
 
* While it depends on the stage, 0 tends to be the regular platform, 1 the kind of platforms that fall(red), and 2 or more are normally big blocks.
 
* While it depends on the stage, 0 tends to be the regular platform, 1 the kind of platforms that fall(red), and 2 or more are normally big blocks.
 +
 +
==(Classic)DashPanel==
 +
===IsUseDelayCamera===
 +
* false = The dash panel will not momentarily delay the camera.
 +
* true = The dash panel will momentarily delay the camera.
 +
===IsTo3D===
 +
* false = If Sonic is in a 2D section, Sonic will just speed along.
 +
* true = If Sonic is in a 2D section, Sonic will switch back into the 3D perspective.
 +
===OutOfControl===
 +
* This sets how long the controls lock up after touching the dash panel.
 +
 +
==SetRigidBody==
 +
* This object creates an invisible wall, but however, the collision is a little off in SonicGLVL for whatever reason.
 +
 +
==Cannon==
 +
===BaseVel===
 +
* This parameter sets how hard the cannon launches Sonic. If it's too high, Sonic will miss his target. Likewise, if it's too low, Sonic will fall short.
 +
===DstPos===
 +
* This sets the position to where the cannon launches Sonic.
  
 
=Cameras=
 
=Cameras=
Line 71: Line 132:
  
 
==ObjCameraFix==
 
==ObjCameraFix==
Locks the camera in one spot: the direction from the object itself to the TargetPosition.
+
Locks the camera in one spot; the direction from the object itself to the TargetPosition.
  
 
==ObjCameraNormal==
 
==ObjCameraNormal==
Line 77: Line 138:
  
 
==CameraCollisionBoard==
 
==CameraCollisionBoard==
Used in the beginning of Seaside Hill, this is like a ChangeVolumeCamera since it activates cameras, but instead of using a rectangle to define the area, it acts more like a wall. When Sonic passes it, the B camera activates. When he passes in the opposite direction, the A camera activates (defined by the SetObjectID for ACameraID and BCameraID respectively). However, if Sonic doesn’t pass the collision exactly, the camera will be stuck until Sonic hits another CameraCollisionBoard or dies. The LinkObjID Property can be used to link other CameraCollisionBoards by ID into a set, so that when Sonic passes through all of them, the camera returns to normal (by setting an ID of 0).
+
Used in the beginning of Seaside Hill, this is like a ChangeVolumeCamera since it activates cameras, but instead of using a rectangle to define the area, it acts more like a wall. When Sonic passes it, the B camera activates. When he passes in the opposite direction, the A camera activates (defined by the SetObjectID for ACameraID and BCameraID respectively). However, if Sonic doesn’t pass the collision exactly, the camera will be stuck until Sonic hits another CameraCollisionBoard or dies. The LinkObjID Property can be used to link other CameraCollisionBoards by ID into a set, so that when Sonic passes through all of them, the camera returns to normal (by setting an ID of 0). The camera also returns to normal when you go into a 2D section and leave it.
  
 
==ObjCameraParallel==
 
==ObjCameraParallel==
Line 92: Line 153:
  
 
==ObjCameraObjectLook==
 
==ObjCameraObjectLook==
Stares at an object, even if it moves. It’s probably best to set Target and TargetObject to the same ID (the one you want stared at).
+
Stares at an object, even if it moves. TargetObject is the object that it looks at. Target doesn't seem to do anything.
  
 
==ObjCameraPathPath==
 
==ObjCameraPathPath==
Line 107: Line 168:
  
 
==ChangeNormalCameraParam==
 
==ChangeNormalCameraParam==
Changes the default camera to different settings (e.g. distance, Fovy, etc). Dying will revert the camera to defaults. To revert back to the default camera without dying, I’m not quite sure yet. City Escape Act 2, however, does this.
+
Changes the default camera to different settings (e.g. distance, Fovy, etc). Dying and going into a 2D section will revert the camera to defaults. I don't think that there's any other way, however.
  
 
{{SCHGuides}}
 
{{SCHGuides}}
 
[[Category:Sonic Community Hacking Guide]]
 
[[Category:Sonic Community Hacking Guide]]

Revision as of 23:23, 5 October 2012

SCHG: Sonic Generations
Main Article

Objects
Collision Properties

File Index
BB

BB2
BB3

How-To
Import Levels

Create Breakable Objects
Create Splines

In Sonic Generations, there are several objects that have special properties to them. If Sonic can interact with something in the level (such as push it, ride it if it's moving, or destroy it), chances are it's an object. Almost anything that moves, or can be moved, is an object with the exception of a few dynamic terrain objects (such as the Eagles in Dragon Road Day in Sonic Unleashed; no such similarity seems to be in Sonic Generations).

There are a vast amount of objects, some that are general purpose objects and others that are level specific, but can be added to other levels if necessary (through modifying the resources, but that's for another guide).

Common Properties

IsCastShadow

  • This property is common to nearly if not most every object in the game. For objects such as rings and springs, it makes the object cast a shadow. For special objects such as cameras and sound effects, it doesn't seem to do anything.

Range

  • This property sets the draw distance of the object. If the range is really low, it probably won't be able to be seen from far away. If it's really high, then you can see it from a mile away.

SetObjectID

  • This is the object's ID, which is used to link it with other objects such as ObjCameraObjectLook.

Ring

IsLightSpeedDashTarget

  • false = The ring cannot be light dashed upon.
  • true = The ring can be light dashed upon.

Item

ItemType

  • 0 = 1-Up

NOTE: ItemType of 1 or higher will cause the object to not exist.

GoalSignboard

ResultsPosition

  • This is the place where the results screen happens. If you want to modify the rotation of the results screen, rotate the signboard object itself.

GoalRing

ResultsPosition

  • This is the place where the results screen happens. If you want to modify the rotation of the results screen, rotate the object itself.

ClassicItemBox

IsRevive

  • false = The item box, once popped open, will not respawn.
  • true = The item box will respawn after it is popped open.

ItemType

  • 1 = 10 Rings
  • 2 = 1-Up
  • 3 = Speed Shoes
  • 4 = Invincibility
  • 5 = Skateboard
  • 6 = Undefined
  • 7 = Undefined (presumably 0)
  • 8 = Fire Shield
  • 9 = Bubble Shield
  • 10 = Thunder Shield

NOTE: An ItemType of 0/Undefined will simply cause the item box to not exist.

TreasureSearchHideType

  • 0 = The item can't be detected via the treasure search skill.
  • 1 = The item can be detected via the treasure search skill.

Spring (Any type)

FirstSpeed

  • This sets how fast Sonic is launched from the spring initially.

KeepVelocityDistance

  • This parameter sets how long Sonic keeps his velocity for before gravity starts acting on him. If you set it to a very high number (such as 5000), gravity will not work on Sonic and he'll keep on going forward until he hits another spring or object that snaps him out of it.

MotionType (Modern)

OutOfControl

  • This sets how long the controls lock up after touching the spring.

IsTo3D

  • false = If Sonic is in a 2D section, Sonic will just speed along.
  • true = If Sonic is in a 2D section, Sonic will switch back into the 3D perspective.

m_IsMonkeyHunting

  • false = Spring acts normally
  • true = Sonic will be steered automatically to the target point(m_MonkeyTarget) after using the spring. Note that an accurate angle/speed is still needed to reach it.

AdlibTrickJump

SizeType

  • 0 = The Trick Ramp will be smaller than before.
  • 1 = The Trick Ramp will be its normal size.

UpReel

IsWaitUp

  • false = Upreel activated by default, Sonic can use it anytime he wants
  • true = Upreel will wait until an event triggers it so Sonic can use it

Switch

Type

  • 0 = Once turned on, it will not turn off.
  • 1 = Once turned on, it will turn off once stepped off.
  • 2 = Once turned on, it will not turn off until it reaches the time specified (in seconds) by "OffTimer"

General Floor

The model of the floors depend on the stage. The types and sizes are specific to each stage's resources.

FloorSize

  • Normally between 0-3, it will use a bigger platform model if available.

FloorType

  • While it depends on the stage, 0 tends to be the regular platform, 1 the kind of platforms that fall(red), and 2 or more are normally big blocks.

(Classic)DashPanel

IsUseDelayCamera

  • false = The dash panel will not momentarily delay the camera.
  • true = The dash panel will momentarily delay the camera.

IsTo3D

  • false = If Sonic is in a 2D section, Sonic will just speed along.
  • true = If Sonic is in a 2D section, Sonic will switch back into the 3D perspective.

OutOfControl

  • This sets how long the controls lock up after touching the dash panel.

SetRigidBody

  • This object creates an invisible wall, but however, the collision is a little off in SonicGLVL for whatever reason.

Cannon

BaseVel

  • This parameter sets how hard the cannon launches Sonic. If it's too high, Sonic will miss his target. Likewise, if it's too low, Sonic will fall short.

DstPos

  • This sets the position to where the cannon launches Sonic.

Cameras

Many camera objects are activated via a nearby ChangeVolumeCamera, which sets the collision area where a custom camera will be active (e.g. ObjCameraPan). These ChangeVolumeCameras use the Target property to link to such cameras. Ease_Time_Enter and Ease_Time_Leave are used to ease in and out of the camera. Other than that, a ChangeVolumeCamera doesn’t seem to do much on its own.

ObjCameraBlend

Presumably blends two cameras together.

ObjCameraFix

Locks the camera in one spot; the direction from the object itself to the TargetPosition.

ObjCameraNormal

Resets the camera, after being activated by a ChangeVolumeCamera or CameraCollisionBoard presumably.

CameraCollisionBoard

Used in the beginning of Seaside Hill, this is like a ChangeVolumeCamera since it activates cameras, but instead of using a rectangle to define the area, it acts more like a wall. When Sonic passes it, the B camera activates. When he passes in the opposite direction, the A camera activates (defined by the SetObjectID for ACameraID and BCameraID respectively). However, if Sonic doesn’t pass the collision exactly, the camera will be stuck until Sonic hits another CameraCollisionBoard or dies. The LinkObjID Property can be used to link other CameraCollisionBoards by ID into a set, so that when Sonic passes through all of them, the camera returns to normal (by setting an ID of 0). The camera also returns to normal when you go into a 2D section and leave it.

ObjCameraParallel

This camera stays a set distance away from Sonic and always points in the same direction regardless of Sonic’s own direction. Unfortunately, it appears rotating the object itself in SonicGLvl has no effect in-game; the Yaw property changes the camera’s direction (along the XZ pane). Pitch sets how much the camera looks down at Sonic (e.g. 45 and a value of 0 for Fovy would make this camera much like Sonic 3D Blast’s camera in theory), and ZRot is the rotation of the camera. TheOffsets seem to move the camera up and down along the respective axis (e.g. a value of 5 for offsetPitch causes the camera to be 5 units above Sonic’s head assuming a 0 pitch). IsCameraView seems to have no effect – setting it to false does nothing as long as a ChangeVolumeCamera targets it.

ObjCameraPan

Camera looks at Sonic from the location of the camera itself. The CameraPositionMode property sets whether the camera’s position stays stationery or follows Sonic at a user-set distance.

ObjCameraPanVertical

Similar to ObjCameraPan, but the camera aligns vertically to Sonic’s level. CameraPositionMode appears to not have the same effect as with ObjCameraPan.

ObjCameraPoint

Camera stares at this object, regardless of the Target property.

ObjCameraObjectLook

Stares at an object, even if it moves. TargetObject is the object that it looks at. Target doesn't seem to do anything.

ObjCameraPathPath

Hooks to a set path ID to move the camera. Crashes if the ID doesn’t exist.

ObjCameraPathParallel

Acts much like the ObjCameraParallel, but will auto-rotate if the path Sonic is currently on turns (works best in 2D sections, see my video at http://www.youtube.com/watch?v=eyeWQ-G_5lI&feature=player_detailpage#t=55s for a demonstration)

ObjCameraVertical

Like the ObjCameraPanVertical, but the camera faces this object, rather than pointing away.

ObjCameraTube

Made for places like Green Hill Modern’s cave after the waterfall, the camera “rides” the path set by the PathID, and points forward.

ChangeNormalCameraParam

Changes the default camera to different settings (e.g. distance, Fovy, etc). Dying and going into a 2D section will revert the camera to defaults. I don't think that there's any other way, however.

Sonic Community Hacking Guide
General
SonED2 Manual | Subroutine Equivalency List
Game-Specific
Sonic the Hedgehog (16-bit) | Sonic the Hedgehog (8-bit) | Sonic CD (prototype 510) | Sonic CD | Sonic CD (PC) | Sonic CD (2011) | Sonic 2 (Simon Wai prototype) | Sonic 2 (16-bit) | Sonic 2 (Master System) | Sonic 3 | Sonic 3 & Knuckles | Chaotix | Sonic Jam | Sonic Jam 6 | Sonic Adventure | Sonic Adventure DX: Director's Cut | Sonic Adventure DX: PC | Sonic Adventure (2010) | Sonic Adventure 2 | Sonic Adventure 2: Battle | Sonic Adventure 2 (PC) | Sonic Heroes | Sonic Riders | Sonic the Hedgehog (2006) | Sonic & Sega All-Stars Racing | Sonic Unleashed (Xbox 360/PS3) | Sonic Colours | Sonic Generations | Sonic Forces
Technical information
Sonic Eraser | Sonic 2 (Nick Arcade prototype) | Sonic CD (prototype; 1992-12-04) | Dr. Robotnik's Mean Bean Machine | Sonic Triple Trouble | Tails Adventures | Sonic Crackers | Sonic 3D: Flickies' Island | Sonic & Knuckles Collection | Sonic R | Sonic Shuffle | Sonic Advance | Sonic Advance 3 | Sonic Battle | Shadow the Hedgehog | Sonic Rush | Sonic Classic Collection | Sonic Free Riders | Sonic Lost World
Legacy Guides
The Nemesis Hacking Guides The Esrael Hacking Guides
ROM: Sonic 1 | Sonic 2 | Sonic 2 Beta | Sonic 3

Savestate: Sonic 1 | Sonic 2 Beta/Final | Sonic 3

Sonic 1 (English / Portuguese) | Sonic 2 Beta (English / Portuguese) | Sonic 2 and Knuckles (English / Portuguese)
Move to Sega Retro
Number Systems (or scrap) | Assembly Hacking Guide | 68000 Instruction Set | 68000 ASM-to-Hex Code Reference | SMPS Music Hacking Guide | Mega Drive technical information