Paris Penthouse Club - Single Standing Scene

logo: logo/small_logo_penthouse.png
~ a small pic file showing scene name usually on a transparent background.
bottom right corner. For here its saved in the ../scenes/PPC/logo folder

splash: logo/large_logo_penthouse.png
~ a large pic file showing scene name usually on a transparent background.
on middle screen. For here it is saved in the ../scenes/PPC/logo folder

text: logo/address.txt
~ a text file made with notepad. Shows under your preview screen. For here it is saved in the ../scenes/PPC/logo folder

// Scenes are described with a nodes tree. // Each node has properties. // Your scene must contain one or more 'clip' nodes. // Clip nodes can filter some shows with property 'filter'. // You must have 'clipSprite' nodes for seeing shows in your scene. //if // is shown before a code line and until the carriage return <enter>,
 //means that line will not be read by the fullscreen player memory. 
clip {
~ defines that a random model animation be included in your scene. The { means the following parameters apply to the clip.
id: Clip
~an identifier name used later in the //show section's source: parameter to say which model graphic the other parameters used there are referring to.
deny: table, inout, cage, top
~taskbar model, a model entering side stage, cage & swing clips will not be shown.
allow: pole
~only pole work clips will be shown. If you use only allow:, deny of all other clips will be assumed.
nameGlowColor: 0, 1, 1
~Model's name when it shows will be highlighted with green,blue colors
}
// 'texture' nodes are your images.  // The 'source' property is the image. The path must be relative to your scene  file. If the path is a folder, the image is chosen randomly in the folder  // You can also choose 'filter' for the quality of the scale: nearest or linear // which is default. 
texture {
~gives a name identifier to an image file which will be used.
id: Fauteuils
~image identifier. A name the program uses to call the image 
source: single/plan1.png
~ the computer name & path of the image file on your PC
}
~closes the image file definition.

texture {
	id: SceneMask
	source: single/plan0.png
}
~ same as above, for another image. Note: you list these in order heading down this page. The last listed texture will appear overlapping all the images listed before it. A mask is part of a graphic that covers parts of a previously listed image.

texture {
	id: Halo
	source: single/halo.png
}
~halo.png is a special image sprite which can be animated for brightness/color like a light. If you have several lights or the same image in your scene, you only need define it here once.

////////////////////////////////////////////////////////////////
// Camera must be father of all nodes to render.
// It can be 3D or 2D. If you choose 2D, you must specify the 'size' property.
// 'angle', 'pos' and 'target' are only used in 3D cameras.
// 3 node's types are used in this scene:
// 'clipSprite' are the shows. There is only one show in this scene.
// 'sprite' are the images.
// 'light' are the light that influence all nodes with 'material: true' property.

// animate: duration, repeat mode, movement curve, property, amplitude.  One or more 'animate' properties can be added to nodes.

camera {
~ opens camera node (your eyes). Note: this is a parent node that embraces all code that follows, so it is not closed until the end of the script. 
type: 3D
~the camera node can be either parameter 3D or 2D. If you choose 2D, you must specify the 'size' property.
In a 3D scene there are Three Axises
X axis is Left and Right, – is left, + is right
Y axis is Up and Down, – is Up, + is Down
Z axis is In and Out, – is in, + is out

angle: 45
~Angle is the Field of View Angle, it controls the Width of the View.

ambient: 0.2, 0.2, 0.2
~means red,green,blue light falling on your scene expressed as a fraction of full red or green or blue light.

pos: -80, -540, 1180
~means camera position
 x axis - left of center, 0 center, + right of center,
 y axis - above center, 0 center, + below center,
 z axis - towards camera, 0 camera lens, + away from camera

animate: 40, PingPong, InOutSine, pos, 160, 0, 0
-80 + 160 = 80, the 160 is the Amount of movement from the starting location.
There is No movement up or down 
There is no movement in or Out 
The amount of movement is incremental from the starting point.

target: -40, -540, 0
~means where camera should look/point
x,y,z
animate: 40, PingPong, InOutSine, target, 80, 0, 0

40, is the amount of time in seconds for the animation to complete one full animation cycle.
PingPong, mean to move back and forth continuously
InOutSine, is the easing motion, a smooth sinusoidal movement.
Target, is what to Animate. This is the spot the camera is looking at.
80, means to move the target a distance of 80 along the X axis from where the target was previously set. It was set at -40, so it will move from -40 to +40 in the 40 second duration.
0, means no movement along the Y axis
0, means no movement along the Z axis

animate: 20, PingPong, InOutSine, pos, 0, 0, 120
~ a second sequenced camera movement
This is a 20 second Movement only along Z axis 
This effect will be similar to Zooming in, then Zooming Out.
It will act Simultaneously with the previous two animation effects.
** any animation that has only a single axis of movement will happen along with any previous animation.
Any Animation that has More than ONE axis of movement will Cancel out all previous Animation events with the same Property.

// The bar
~a comment for you introducing the bar image sprite parameters 

sprite {
~program's memory will read sprite parameters
Sprite means to use one of the predefined images in the Scene, 
Which Image is controlled by the Source.

pos: 0, 0, 0
~where sprite is located. x,y,z.

hotspot: 0.5, 1.0
~where insertion point is located x,y. Here half across and full down. The insertion point is a single anchor point from where all animations to move the sprite are referenced.

source: Bar
~id name used by fullscreen player to refer to relevant sprite

blend: true
Blend is used to Combine two or more sprites that overlap with the background.
You can also use all opengl blending. 
When Blend: true this is The default:
blend: src_alpha, one_minus_src_alpha

other blend options are:
zero, one, src_color, one_minus_src_color, src_alpha, one_minus_src_alpha,
dst_alpha, one_minus_dst_alpha, dst_color, one_minus_dst_color, src_alpha_saturate

// The show and its reflection
	clipSprite {
		pos: 0, -150, 20
		rot: 180, 0, 0
~describes rotation of 180 degrees. Useful for reflections.
This is around the X axis.  Hold a Pencil in front of you in both hands. Roll it in your fingers. That is rotation around the X axis.
		source: Clip
		standingHeight: 700
~describes size height of a model clipsprite in pixels

		opacity: 0.3
~describes how opaque 0 - 1.0 the clipsprite is. This sprite is the reflection so it is low opacity.

		material: true
~describes whether the image will be affected by floodlight
	}
	
	clipNameSprite {
~describes how name of model is displayed
		pos: 0, -150, 20
		hotspot: 0.5, 1
		source: Clip
		resolution: 20
~Resolution, 20 is the default if not used. 
This is very important.
It controls the lighting Detail and how much graphic detail the scene will have.  The Higher the Number the More Light Rays are projected into the scene. If your Lighting doesn’t seem to be as focused as it should increase the resolution. But Note: the Higher you go, the MORE CPU / GPU intensive it gets.
	}

// Blue lights
	light {
~describes floodlighting of a material: true parameter 
		pos: -1000, -500, 300
		ambient: 0.0, 0.0, 0.3

		color: 0.4, 0.4, 1.0
~color of floodlighting red, green, blue. Intensity full is 1.0

// The chairs and the table sprite {
		pos: 0, -50, 250
		hotspot: 0.5, 1.0
		source: Fauteuils
	}                              
~note that this chairs table sprite (image) is last listed , so it will be in front of all other images including the model clipsprite. Shadows & reflections are usually prelisted before clipsprites and reflections rotated 180 degrees.
}  ~the last '}' bracket closes the camera parent node so all nodes are closed.

Note:  Color values and Lighting are additive. 

for RED to be seen, it's total sum must be greater than 0.0 and at 1.0 is Maximum RED. Negative values subtract that color. 

with Red at 1.0, if there is a light that uses Negative Red, then what you see will be the sum of both..0.0 being No Red, and 1.0 being full red
(equivalent to decimal 0 to 255 or hex 00 to ff used by most color mixers ) 

Ambiance is a lighting level that affects the Whole scene with no drop off.
While anything above 0 is brighter then 0 light, and 1 appears to be full brightness..

The lighting level is again Additive. you can combine Negative Ambiance, with a single brighter light, to create a small Spot light.. It will only be seen, where the sum of the lighting levels is greater than 0. 

The closer the Light is to the Sprite, the smaller the Spread of the Light is.
A difference of 10 on Z is needed, so if the Sprite is positioned at Z 20, the Light must be Z 30 to shine on the sprite. 

Material: true = Light will affect the sprite
resolution: 20 ( is the default value ) think of it as how many light rays are cast on to the sprite. So resolution 1 is just ONE BIG ray and resolution 20 is 20 medium size rays. Note: Going above 100 gets CPU GPU intensive.