|
| |
"I can customize my H2??
COOL! umm.. what does that mean?"
Choose a topic:

Starting with H2Turbo (v1.5), the
preconfigured HUDs are not programmable. You can still program a HUD
to do oyur bidding as before. Either use a version 1.3 HUD or the
version 1.5 "Blank" HUD. Before you start
customizing, make a copy, rename it, and work on the copy. Keep an
original version safe in inventory.
Appearance and function of the action buttons is controlled by the _config
notecard. You can control the number of buttons displayed, button
color, the texture on the button, and what happens when you click it. The
notecard contains a series of button definitions. The process of
customizing the HUD is:
 | Modify the _config notecard |
 | Touch the OD Logo at the top of the HUD and choose RESET from the blue
popup menu. This causes the HUD to
 | Reset itself |
 | Clear any slaved avatars |
 | Reread the config notecard and reconfigure the buttons accordingly. |
|
The top portion of the _config file controls the button size and
spacing. changing these values will make buttons smaller, larger and
control the horizontal spacing between buttons and text, and the vertical
spacing button to button. Make changes to these numbers in SMALL
increments. After making a change reset your HUD by clicking the OD logo
and clicking RESET.
[GENERAL]
button_height: 0.018
button_width: 0.018
horizontal_spacing: 0.12
vertical_spacing: 0.019
The appearance (and function) of each button is defined in the config
file. Each button has an entry in the config file. It is a series of
keywords separated by semicolons. It looks something like this:
===BTN;STOP;<1.0, 1.0, 1.0>;btn_red;
stopall ; gcmd ; Stop
The generalized format of the first line is:
===BTN;The Button Text; <text color> ; button_texture;
| ===BTN |
This keyword tells us that we are defining a new button |
| Button Text |
The text that will be beside the button. |
| <text color> |
This is a vector that controls the color of the text. Color
vectors are in the format <red, green, blue>. some examples:
<1, 0, 0> Red
<0,1,0> Green
<0,0,1> Blue
<1,1,1> White |
| Button Texture |
The texture to apply to a button. There are lots of button
textures ready to use in the HUD's inventory. |
Take a look through the config file. You will see a list of buttons
defined each with their functions also programmed. Rearranging
buttons is easy. lets say you have a Front and a Back button that you want
swapped. You will see something like this in your config file:
===BTN;Front;<1.0, 1.0, 1.0>;btn_yellow;
gcmd ; Front
===BTN;Back;<1.0, 1.0, 1.0>;btn_yellow;
stopallanim ; gcmd ; Back
Just cut and past to swap the order of the lines in the config
file. The actual function of each button is on the line(s) after the
===BTN statement... so make sure you keep the right set of instructions together
with each button.
===BTN;Back;<1.0, 1.0, 1.0>;btn_yellow;
stopallanim ; gcmd ; Back
===BTN;Front;<1.0, 1.0, 1.0>;btn_yellow;
gcmd ; Front
Let's say you want to remove a button from your HUD. Find that button
in the config file and delete its ===BTN statement and the action instructions
that go along with it. Let's say you have a "Hold Still" button
you want to delete.
===BTN;STOP;<1.0, 1.0, 1.0>;btn_red;
stopall ; gcmd ; Stop
===BTN; Hold Still;<1.0, 1.0, 1.0>;btn_red Delete this line
gcmd ; Front ; reanim ; h2.holdme.lp3 Delete this line
===BTN;Front;<1.0, 1.0, 1.0>;btn_yellow;
gcmd ; Front
===BTN;Back;<1.0, 1.0, 1.0>;btn_yellow;
Customizing and programming your HUD to follow your personal bidding is where
the REAL power is in H2. This is also what sets it apart from other simple
animation HUDs or gesture devices. Let's keep a few things in mind.
 | FIRST: Its not as hard as you might think. :) |
 | In H2, none of the action buttons have a "fixed"
function. The function of each button is programmed with a set
of instructions in the _config notecard. |
 | When you touch a button H2 executes those instructions as a command
sequence. The button text will get marked with some
">><<" so you can see that it is actively executing a
sequence of commands. |
 | You can have more than one sequence of commands running at
once. |
 | You can create your own command sequences. That's what this
section is about. |
 | A single HUD can hold up to 50 buttons. Usually that's too many, the
average screen will hold about 45; after that the HUD is too big to tall to
fit on the screen. |
 | The instructions are a set of keywords and commands separated by
semicolons. Let's look at a simple example. |
===BTN; Hold Still;<1.0, 1.0, 1.0>;btn_red
gcmd ; Front ; reanim ; h2.holdme.lp3
The first line is the button appearance. The second line is the
set of instructions that the button will execute. Let's look at them one
by one.
gcmd ; Front |
This sends a command to your OD Guitar to move to the
"front" position. |
reanim ; h2.holdme.lp3 |
This command stops all animations, ends any other running sequences
then starts the animation h2.holdme.lp3 |
Simple right? :) Let's take a look at the
entire command set and then some programming examples.
| Command |
ver |
Format |
Description |
| reanim |
1.0 |
reanim ; anim |
 | Ends any other active running sequences |
 | Stops all animations |
 | Starts animation anim |
|
| startanim |
1.0 |
startanim ; anim |
 | Starts animation anim |
|
| stopanim |
1.0 |
stopanim ; anim |
 | Starts animation anim |
|
| stopallanim |
1.0 |
stopallanim |
 | Stop all active animations |
|
| stopotherseq |
1.0 |
stopotherseq |
 | Stop any other command sequences but leave this one running |
|
| stopall |
1.0 |
stopall |
 | Stop all command sequences and all active animations |
|
| delay |
1.0 |
delay ; amount |
 | Pause the command sequence for a period of time. Amount is
given in seconds.
For example: |
delay ; 5
Pauses the execution of the sequence for 5 seconds |
| say |
1.0 |
say ; channel ; messsage |
 | Say a chat message on a channel. Channel zero is open
chat. "say" has a range of 20 meters. |
 | This can be used to send commands to any device listening on a
channel for commands. Depending on the device you may own, this
is useful for commanding lights, poofers, etc. |
 | Some examples: |
say ; 0 ; Hello Everyone !!
say ; 100 ; commandword |
| whisper |
1.0 |
whisper ; channel ; text |
 | Same as "say" but with a range of 5 meters |
|
| shout |
1.0 |
shout ; channel ; text |
 | Same as "say" but with a range of 100 meters |
|
| playsound |
1.0 |
playsound ; soundname |
 | Play a sound. |
|
| gcmd |
1.0 |
gcmd ; guitar_command |
 | Send a command to your OD guitar. Essentially this is a
shortcut that allows you to make the guitar think that one of its menu
buttons has been pressed. Some of the commands you can do: |
gcmd ; Front
gcmd ; Back
gcmd ; ZZTop
gcmd ; Orbit
gcmd ; FireBolt
gcmd ; BurnUp
gcmd ; Explode
gcmd ; Hearts |
| loop |
1.0 |
loop |
 | Loop back to the beginning of the command sequence and do it all
again. You could be annoying and greet everyone in the room
every 10 seconds: |
say ; 0 ; Hello Everyone !! ; delay ; 10.0 ; loop |
| label |
1.0 |
label ; my_label |
 | Establishes a "label". A label is a target
that "jumpto" will loop to. See "jumpto" |
 | You can have only one "label" in a command sequence. |
|
| jumpto |
1.0 |
jumpto ; label |
 | Jumps to a previously defined label in this command sequence.
Take the following command sequence for example: |
reanim ; h2.ao.female1 ; gcmd ; Back ; label ; HERE ; delay ; 14
stopanim ; h2.ao.female1 ; startanim ; h2.ao.female2 ; delay ; 12 ;
stopanim ; h2.ao.female2 ; startanim ; h2.ao.female3 ; delay ; 14 ;
stopanim ; h2.ao.female3 ; startanim ; h2.ao.female1 ;
jumpto ; HERE
This command sequence first does a reanim, which kills all other
sequences, stops all animations, then starts a female ao post
animation. It sends the guitar to your back, then goes through a
series of delays and animation switches to make the avatar change
poses. The jumpto command at the end jumps back to the HERE
label. and repeats the process. The effect is that you have
some one-time commands and then it goes into a repeating sequence of
poses. |
| startbutton |
1.0 |
startbutton ; button# |
 | Start the command sequence under a different button as if that
button had been touched. |
 | Buttons are numbered top-down: 0, 1, 2, etc. |
|
| stopbutton |
1.0 |
stopbutton ; button# |
 | Stop the command sequence under a different button. |
 | Buttons are numbered top-down: 0, 1, 2, etc. |
|
| attachpos |
1.0 |
attachpos ; pos ; rot |
 | Adjust the attached position of the guitar. This command
is used to move the guitar around to different positions.
H2 uses this command, for example, to play the guitar behind your
head. |
 | The position and rotation numbers are cryptic and goofy
looking. Try not to loose sleep on those. The best
way to use this command is to adjust the position of your guitar to
the desired position, then use the Poll Position ball to get the attachpos
command directly. This process is described in detail HERE.
An example of an attachpos command would look something like
this: |
attachpos;<-0.07380, 0.47420, -0.22027>;<-0.99054, 0.09569, -0.06361, 0.07498> |
| h2say |
1.1 |
h2say ; channel ; messsage |
This command will be used in the future to control various H2
accessories |
| h2shout |
1.1 |
h2shout ; channel ; messsage |
This command will be used in the future to control various H2
accessories |
Remember that any animations or sounds must be dropped into the
HUD's inventory.
| Stop all active animations and start "h2.rocksway.lp3" |
reanim ; h2.rocksway.lp3 |
| Start an animation, let it run for 10 seconds, then stop it. |
startanim ; cool_dance_looped ; delay ; 10 ; stopanim ; cool_dance_looped |
| Shout a greeting out to the crowd |
shout ; 0 ; WELCOME TO CLUB FLAME-THROWER
shout ; 0 ; !!! GET READY TO ROCK !!! |
| Take the avatar through a sequence of alternating animations. |
reanim ; h2.strum.easy2.slow.lp3 ; label ; HERE ; delay ; 7
startanim ;h2.gentle0.lp3 ; stopanim ;h2.strum.easy2.slow.lp3 ; delay ; 7
startanim ; h2.strum.easy2.slow.lp3 ; stopanim ; h2.gentle0.lp3 ; delay ; 7
jumpto ; HERE |
| Run a long repeating sequence of expression moves. Most
effective when used with an animation sequence like the one above. |
startanim ; h2.ovr.leanforward.p4 ; delay ; 10
startanim ; h2.ovr.lfootstomp.p4 ; delay ; 10
startanim ; h2.ovr.frontknee1.p4 ; delay ; 10
startanim ; h2.ovr.headback1.p4 ;
startanim ; h2.ovr.lh.high.p4 ; delay ; 10 ;
startanim ; h2.ovr.lfootstomp.lp4 ; delay ; 6 ;
stopanim ; h2.ovr.lfootstomp.lp4 ; delay ; 10
startanim ; h2.ovr.rh.point.p4 ; delay ; 10 ;
startanim ; h2.ovr.frontknee1.p4 ; startanim ; h2.ovr.headback1.p4 ;
startanim ; h2.ovr.lh.high.p4 ; delay ; 10 ;
startanim ; h2.ovr.lfootstomp.p4 ; startanim ; h2.ovr.rh.fast.lp4 ; delay ; 6 ;
stopanim ; h2.ovr.lfootstomp.p4 ; stopanim ; h2.ovr.rh.fast.lp4 ; delay ; 10 ;
loop |
| Lightning (for guitars that have it) |
===BTN;Lightning;<1.0, 1.0, 1.0>;btn_redstar;
gcmd ; Lightning
|
| LED fingerboard dots. (for guitars that have them) |
===BTN;LED Purple;<1.0, 1.0, 1.0>;btn_purple
say ; -4466283 ; LEDPurple
===BTN;LED Purple;<1.0, 1.0, 1.0>;btn_red
say ; -4466283 ; LEDRed
===BTN;LED Green;<1.0, 1.0, 1.0>;btn_green
say ; -4466283 ; LEDGreen
===BTN;LED Blue;<1.0, 1.0, 1.0>;btn_blue
say ; -4466283 ; LEDBlue
===BTN;LED Yellow;<1.0, 1.0, 1.0>;btn_yellow
say ; -4466283 ; LEDYellow
===BTN;LED White;<1.0, 1.0, 1.0>;btn_white
say ; -4466283 ; LEDWhite
===BTN;LED Black;<1.0, 1.0, 1.0>;btn_aqua
say ; -4466283 ; Black Dots
===BTN;LED OFF;<1.0, 1.0, 1.0>;btn_white
say ; -4466283 ; White Dots |
|