Demo Editing/Demo How To Info: Difference between revisions

From Unofficial Homecoming Wiki
Jump to navigation Jump to search
imported>Scuzzbopper
imported>Scuzzbopper
Line 54: Line 54:
== How To Create Invasion Effects (Sky & War Walls) ==
== How To Create Invasion Effects (Sky & War Walls) ==


Normal sky: SKYFILE SKY 1 0 1.000000
The '''SKY''' and '''DYNARRAY''' commands, including limited information on how each is used during Rikti Invasions, are discussed in the [[Demo Editing/Understanding Demo Code | Understanding Demo Code]] sectionIn further detail, these two command lines are used together for managing the changes to the sky color and operational state of the War Walls.
  Invasion sky: SKYFILE SKY 0 1 1.000000


That's using the first two fields (which is how it records during an actual invasion), which appear to be binary.
The sky color is changed during a Rikti Invasion by "swapping" the binary values of the first two variables following the '''SKY''' command, as follows:


You can also play with the final number to tweak things, though I don't know how that functions. My best guess being that it's a saturation value of some sort -- the more you increase it, the more color starts washing out all detail, although interestingly it seems to predominate in the foreground, rather than the sky or distance. Possibly a depth of field value.
{| border="1" cellspacing="0" cellpadding="5" align="left"
! Sky "Type"
! Demo Code
|-
| Normal/Default Sky
| 0 SKYFILE SKY 1 0 1.000000
|-
| Invasion Sky
| 0 SKYFILE SKY 0 1 1.000000
|-
|}
{{clr}}


  War Walls Up0  DYNGROUPS DYNARRAY |100,0
 
War Walls Down0  DYNGROUPS DYNARRAY |0,0
The operational state of the War Walls is controlled by the '''DYNARRAY''' command by changing the first value of the array data between "100" (for active or "up" War Walls) and "0" (for inactive or "down" War Walls). These command lines, when there is only a single data set attached to the '''DYNARRAY''' command, are as follows:
 
{| border="1" cellspacing="0" cellpadding="5" align="left"
! War Wall Status
! Demo Code
|-
| Active/Up
| 0  DYNGROUPS DYNARRAY |100,0
|-
| Inactive/Down
| 0  DYNGROUPS DYNARRAY |0,0
|-
|}
{{clr}}
 
 
When there is more than one element specified by the '''DYNARRAY''' command (such as for the pillbox status boards in [[Atlas Park]]), then the first data set in the array controls the War Walls (when War Walls are present), like so:
 
{| border="1" cellspacing="0" cellpadding="5" align="left"
! War Wall Status
! Demo Code
|-
| Active/Up
| 0  DYNGROUPS DYNARRAY |100,0|100,0|100,0|100,0|50,0|100,0|50,0|50,0
|-
| Inactive/Down
| 0  DYNGROUPS DYNARRAY |0,0|100,0|100,0|100,0|50,0|100,0|50,0|50,0
|-
|}
{{clr}}


== How To Make Characters Walk ==
== How To Make Characters Walk ==

Revision as of 18:23, 10 June 2008

This article is a stub. You can help the Wiki by expanding it.

Overview

Intro text needed

How NPCs/Objects/Models Work

How Entities work.

How the Camera Works

How Movement Works

How FXs Work

How To Make Transparent Entities

Most stealth, invisibility, and transparency FX do not play back in demos. Although the FX commands for these powers are present in the demo recording, they produce no visible change in a model's appearance. The are a few exceptions, such as Numina and War Witch (her trainer model), but in these cases the transparency inherent to the model and an FX that you can apply to other entities.

However, although none of the standard stealth or transparency powers work in demo playback, there is one transparency FX which does work:

OBJECTIVEOBJECTFX/GHOSTED.FX

This is the placeable mission objective FX such as you would see for planting bombs in a Mayhem Mission Arson secondary mission. It is this FX which makes these mission objectives transparent until they are activated or clicked on. Although, this FX is normally only used for these SEQ entities, it also function for regular models. The following example shows this FX being applied to Back Alley Brawler in Galaxy City:

0   17  NEW "Back Alley Brawler"
0   17  NPC Model_Back_Alley_Brawler_Trainer
0   17  POS 367 65.921875 -832
0   17  PYR 0 -1.570796 -0
0   17  MOV READY_XARMS 0
0   17  FX Maintained 717 OBJECTIVEOBJECTFX/GHOSTED.FX 0

The FX command line is the only addition being made. This is all that is required to apply this transparency effect to an entity, as can be seen here:

Back Alley Brawler
Normal appearance
Back Alley Brawler
GHOSTED.FX applied

Note, though, that there are two qualifier to using this FX to achieve transparency:

  • The transparency effect pulsates, just as you would see with the mission objectives which normally utilize this effect, so it is not a consistent, steady level of transparency.
  • This FX also includes the mission objective audio component (the alert noise to notify you that you are near the objective), so if you are using this FX to create a demo for video capture that audio component will be present and must be worked with if you are capturing the demo's audio as part of the capture.

How To Make Invisible Models

Using Puddle or other invisible models for total invisibility or using FXs "on their own."

How To Create Invasion Effects (Sky & War Walls)

The SKY and DYNARRAY commands, including limited information on how each is used during Rikti Invasions, are discussed in the Understanding Demo Code section. In further detail, these two command lines are used together for managing the changes to the sky color and operational state of the War Walls.

The sky color is changed during a Rikti Invasion by "swapping" the binary values of the first two variables following the SKY command, as follows:

Sky "Type" Demo Code
Normal/Default Sky 0 SKYFILE SKY 1 0 1.000000
Invasion Sky 0 SKYFILE SKY 0 1 1.000000



The operational state of the War Walls is controlled by the DYNARRAY command by changing the first value of the array data between "100" (for active or "up" War Walls) and "0" (for inactive or "down" War Walls). These command lines, when there is only a single data set attached to the DYNARRAY command, are as follows:

War Wall Status Demo Code
Active/Up 100,0
Inactive/Down 0,0



When there is more than one element specified by the DYNARRAY command (such as for the pillbox status boards in Atlas Park), then the first data set in the array controls the War Walls (when War Walls are present), like so:

War Wall Status Demo Code
Active/Up 100,0|100,0|100,0|100,0|50,0|100,0|50,0|50,0
Inactive/Down 0,0|100,0|100,0|100,0|50,0|100,0|50,0|50,0


How To Make Characters Walk

How to make player characters walk.

How To Do "Greenscreening"

Using a "null" (or junk) Map name to create endless blue sky and diving deep down the Z axis to hide the clouds (verify). Creates "bluescreen" background.

How To Manage Destructible Objects

Object-based NPCs that are classed as "destructible" have a variable appearance based on their hit points, sometimes as simple as destroyed/not-destroyed, sometimes with multiple different appearances including partly-damaged states.

To make these work in demos, you have to assign hit points to the models. If you don't do that, then the game assumes the hit points are zero and treats the model as "destroyed", which usually, but not always, means that it's just gone.

So when you're splicing these into the demo code, include hit points for them like so:

0 23 NPC v_destcldrn_cauldron
0 23 MOV READY
0 23 HP 150.00
0 23 HPMAX 150.00

Setting the HP equal to HPMAX will give you the default, undestroyed appearance, and hopefully that should make them appear for you. If you want to see if there are transitional appearances, you can try setting HP to half of HPMAX, and so forth. Not all have transitional appearances, but some do. The Clockwork Paladin construction comes to mind as an object with multiple different transitional appearances depending on HP. This is also how the Rikti A Bomb warning lights color is controlled.

Not all object models are destructible, but seeing "dest" anywhere in the object name is generally a guarantee that it is one of these. But there are also destructible models that don't have "dest" in the name. If in doubt, add HP & HPMAX (at 100% HP) to the model code.