Note: The FKiss section is currently very incomplete.

FKiss adds certain amounts of functionality to Kiss. Its application varies from animation to transparencies. It is how items appear and disappear within a single set. Support of FKiss varies from viewer to viewer, keep in mind that certain effects work on certain viewers, and not all these effects may work on your own viewer.

There are two ways to create a transparent cel. Transparent cels are see-through to varying degress, depending on the percentage you set. 100% transparent is clear, 0% transparent is completely solid. You can call transparencies next to the cel, or later in the FKiss code. To call it next to the cel, you do this:

#0 ponytail.cel
#0 purbob.cel
#0 greenbob.cel
#0 bluebob.cel *1
#0 redbob.cel
#0 bob.cel
#0 blakbob.cel
#2.5 corset.cel
#0 lilboda.cel
#3 flufskrt.cel *1 ;t%0
#1 boots.cel : 0 1 3 9
#4 fishnet.cel : 0 4 5 6 7 8 9 ;t%75
#0.999 lilbod.cel : 0 1 2 3 4 5 6 7 8 9
#3.10 _flufskrt.cel :

The fishnets are 75% see-through. The addition of ;t%0 to the skirt is redundant, as you are just telling it to be solid.

Then we get into actual animations. The first thing you need to do, is let the viewer know you are going to be using FKiss.

; << Fkiss Config >>
;
;@EventHandler()

After EventHandler(), you tell the viewer which items will not be visible when the Kiss is opened. In this case, I'm going to have changeable hair for the doll, so I want to make sure all the other hair doesn't show up when I first open the Kiss.

;@initialize()
;@unmap("ponytail.cel")
;@unmap("purbob.cel")
;@unmap("bluebob.cel")
;@unmap("greenbob.cel")
;@unmap("blakbob.cel")
;@unmap("redbob.cel")

Notice, I didn't unmap the cel "bob.cel" because I want one of them to show when I start. Next, we have to map and unmap the cels so the hair does change.

;@press("bob.cel")
;@unmap("bob.cel")
;@map("ponytail.cel")

When the user presses the cel "bob.cel," "bob.cel" goes invisible, and "ponytail.cel" becomes visible. I changed the original body to make the hair changeable, so that hair can be easily covered up by the changes:



To change them all so they go around in a circle:

;@press("bob.cel")
;@unmap("bob.cel")
;@map("ponytail.cel")

;@press("ponytail.cel")
;@unmap("ponytail.cel")
;@map("blakbob.cel")

;@press("blakbob.cel")
;@unmap("blakbob.cel")
;@map("greenbob.cel")

;@press("greenbob.cel")
;@unmap("greenbob.cel")
;@map("bluebob.cel")

;@press("bluebob.cel")
;@unmap("bluebob.cel")
;@map("purbob.cel")

;@press("purbob.cel")
;@unmap("purbob.cel")
;@map("redbob.cel")

;@press("redbob.cel")
;@unmap("redbob.cel")
;@map("bob.cel")

Now, I also want to have a closet that changes, so the clothes aren't always visible on either side of the Kiss. First, I have to create the cels. I made a color in my second palette have the same color as the transparent palette. However, I can't have two of the same colors in the same palette because then when I make it a cel it doesn't know which one is which! So, there are three alternatives: 1) you can make the transparent color in the second palette a different color if using two palettes, 2) since you usually need to make a cel for the background to make the closet work right, you can have the background be a color different from the transparent color, or 3) you can create a "beta" palette, with the color that looks like the transparent color but is not transparent, actually a completely different color. When you include the palette in the Kiss file, make sure you change that color in that version. Remember to call the cels at the top again:

#5 closet.cel *1
#6 closet.cel *1
#0 ponytail.cel
#0 purbob.cel
#0 greenbob.cel
#0 bluebob.cel *1
#0 redbob.cel
#0 bob.cel
#0 blakbob.cel
#2.5 corset.cel
#0 lilboda.cel
#3 flufskrt.cel *1 ;t%0
#1 boots.cel : 0 1 3 9
#4 fishnet.cel : 0 4 5 6 7 8 9 ;t%75
#0.999 lilbod.cel : 0 1 2 3 4 5 6 7 8 9
#3.10 _flufskrt.cel : #7 back.cel *1

Then you use the "altmap" on the background, so when you click on the background, it will unmap the closets if mapped, and map them if unmapped. Since both closet cels are "closet.cel" but with different numbers, you have to call them by number, since it will only look at one of them if called by name.

;@press("back.cel")
;@altmap(#5)
;@altmap(#6)

;@press(#5)
;@unmap(#5)
;@unmap(#6)

;@press(#6)
;@unmap(#5)
;@unmap(#6)