OD Designs
Product Documentation

Home ] Contents ] Compatibility ] Operation ] ScreenShots ] FAQ ] Adjusting ] Menus ] Synch Animation ] Remote ] [ Programming ] Stage Effects ] Revisions ]

 

"I can customize my H2??   COOL!    umm.. what does that mean?"

Choose a topic:

Overview
General Settings
Change The Appearance Of A Button
Re-Arrange Buttons
Remove A Button
Reprogram A Button
Examples

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.

Overview

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:

bulletModify the _config notecard
bulletTouch the OD Logo at the top of the HUD and choose RESET from the blue popup menu.  This causes the HUD to 
bulletReset itself
bulletClear any slaved avatars
bulletReread the config notecard and reconfigure the buttons accordingly.

General Settings

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
 

Change The Appearance Of A Button

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.

 

Re-Arrange Buttons

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

 

Remove A Button

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;

 

Reprogram A Button

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.

bulletFIRST:  Its not as hard as you might think. :)
bulletIn 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.  
bulletWhen 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.
bulletYou can have more than one sequence of commands running at once.  
bulletYou can create your own command sequences.   That's what this section is about.
bulletA 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.
bulletThe 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
bulletEnds any other active running sequences
bulletStops all animations
bulletStarts animation anim
startanim 1.0
startanim ; anim
bulletStarts animation anim
stopanim 1.0
stopanim ; anim
bulletStarts animation anim
stopallanim 1.0
stopallanim
bulletStop all active animations
stopotherseq 1.0
stopotherseq
bulletStop any other command sequences but leave this one running
stopall 1.0
stopall
bulletStop all command sequences and all active animations
delay 1.0
delay ; amount
bulletPause 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
bulletSay a chat message on a channel.  Channel zero is open chat.  "say" has a range of 20 meters.  
bulletThis 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.
bulletSome examples:
say ; 0 ; Hello Everyone !!
say ; 100 ; commandword
whisper 1.0
whisper ; channel ; text
bulletSame as "say" but with a range of 5 meters
shout 1.0
shout ; channel ; text
bulletSame as "say" but with a range of 100 meters
playsound 1.0
playsound ; soundname
bulletPlay a sound.
gcmd 1.0
gcmd ; guitar_command
bulletSend 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
bulletLoop 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
bulletEstablishes a "label".   A label is a target that "jumpto" will loop to.  See "jumpto"
bulletYou can have only one "label" in a command sequence.
jumpto 1.0
jumpto ; label
bulletJumps 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#
bulletStart the command sequence under a different button as if that button had been touched.
bulletButtons are numbered top-down:  0, 1, 2, etc.
stopbutton 1.0
stopbutton ; button#
bulletStop the command sequence under a different button.
bulletButtons are numbered top-down:  0, 1, 2, etc.
attachpos 1.0
attachpos ; pos ; rot
bulletAdjust 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.
bulletThe 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.

Programming Examples

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				

 

Back to Top
 

All materials and information are Copyright OD Designs.
For problems or questions regarding this web contact [WebMaster].
Last updated: June 12, 2008.