Creators not Consumers

Home

Design pages

One

Two

Wallpapers


3D Art pages

One

Two

Three

Four

Westonbirt

Stonehenge

Avebury

Cheddar


The creators not consumers Anti Massacre Web Page


Kiss

Kiss code tutorials


Ethics


Quotes


Politics OnLine UK


Articles and rants


Iraq home

The day of horror

Blair speech

Iraq02

Iraq03

Iraq04

Iraq05

Iraq06

Iraq07

Iraq08

Iraq09

Freedom is slavery


Bureaucracy

Foot and mouth

Chutzpah

Big Brother Britain


A price too high

Morphy Richards

Consuming

Beauty


Political action links


Tutorials

One

Two


Links

Down shifting

Graffiti removal


Contact

 

Making your doll blink.

Some things come after ;@initialize() but before ;@begin(). These are things that we want to happen while the Kiss file is loading but before we begin playing with it.

One these things is as follows, and we need it when we want a doll to blink:

;@initialize()
;@ unmap("any.cel") ;; this cel will be invisible when the Kiss set is opened
;@begin()

Getting a doll to blink.

This is a single cel blink:

This is a two cel blink:

I started life doing single cel blinks but decided that it was too sudden and also that using more cels created a more sultry blink. Whichever you prefer, this is what you do:

Make the cels, enter  them on the cnf file and unmap them.

You need a body or head cel and one or two blink cels, so make 'em. These are what I used to make the animations above and are similar to the ones I used in the doll.

Turn them into cels and...

; ** Cel entries **
;
#3.999 blink1.cel *0 :0 1 2 3 4 5 6 7 8 9 
#2.999 blink.cel *0 :0 1 2 3 4 5 6 7 8 9 
#1.999 head.cel *0 :0 1 2 3 4 5 6 7 8 9 
;
; ** FKiSS stuff **
;
;@EventHandler()
;
;@initialize()
;@ unmap("blink.cel")
;@ unmap("blink1.cel")
;
;@begin()

...when the doll opens in the Kiss viewer no blink cels are visible.

Timers.

Blinking requires the use of timers, one event following another with timed delays between events. The numbers in blue in the following are only used as notes and are not part of the code. I'll repeat the code at the bottom of the page without the blue numbers, for copy/pasting.

       ;@begin()
1     ;@ timer(1, 5000)
2     ;@alarm(1)
3     ;@ map("blink.cel")
4     ;@ timer(2, 100)
5     ;@alarm(2)
6     ;@ unmap("blink.cel")
7     ;@ map("blink1.cel")
8     ;@ timer(3, 100)
9     ;@alarm(3)
10   ;@ unmap("blink1.cel")
11   ;@ timer(1, 5000)

1 ;@ timer(1, 5000). This timer has a number (1) and will set off alarm (1) 5000 milliseconds after the doll is loaded.

2. ;@alarm(1). Timers set off 'alarms', the alarm number must match a timer number. In this case (1)

3. The first 'blink.cel' maps

4. ;@ timer(2, 100) the last event related to alarm(1) is that I set another timer to set off an alarm in 100 milliseconds time.

5. Similar to 2 above, timer (2) sets off alarm (2) after 100 milliseconds

6. I unmap blink.cel because I do not want it on permanently...

7. ...and map blink1.cel

8. I set another timer(3) to set off alarm(3) in 100milliseconds 

9.  alarm (3) triggers...

10. ...and I unmap blink1.cel because I do not want it on permanently

11. This closes the loop to set off alarm (1) again after 5000 milliseconds

Warning.

Each timer and alarm much be uniquely numbered from every other one. You cannot have two alarms called alarm(1), if you do the viewer will set the first alarm off and ignore the second.

Download the two small lzh files if you would like to compare the two.

Blink (two cel blink) and Blink1 (single cel blink)

Copy and paste code:

;@begin()
;@ timer(1, 5000)
;@alarm(1)
;@ map("blink.cel")
;@ timer(2, 100)
;@alarm(2)
;@ unmap("blink.cel")
;@ map("blink1.cel")
;@ timer(3, 100)
;@alarm(3)
;@ unmap("blink1.cel")
;@ timer(1, 5000)

For a single blink sequence:

;@begin()
;@ timer(1, 5000)
;@alarm(1)
;@ map("blink.cel") 
;@ timer(2, 100)
;@alarm(2)
;@ unmap("blink.cel")
;@ timer(1, 5000)

 

Previous

2000 Keith Lindsay-Cameron. All rights reserved.