Difference between revisions of "AlcScript"

m
 
(28 intermediate revisions by 6 users not shown)
Line 1: Line 1:
 
AlcScript is a simple way to use a limited form of programming in your Ages.
 
AlcScript is a simple way to use a limited form of programming in your Ages.
=Beginner's Guide to AlcScript=
+
=AlcScript Tutorials=
= Current AlcScript properties =  
+
*[[Beginner's Guide to AlcScript]]
This list describes current alcscript properties - if you add it, be sure to add it under the correct code. Use heading levels to reflect the alcscript indentation level.
+
=List of Properties=  
 +
This list describes current AlcScript properties. If you add to it, be sure to add it under the correct code. Use heading levels to reflect the AlcScript indentation level.
 
Follow the example given to describe the functionality of the field.
 
Follow the example given to describe the functionality of the field.
 +
'''Please note that not all properties listed on this page are fully implemented at the time of writing!''' However, the documentation exists so that future implementations can follow existing standards. Properties marked "NIE" are not implemented.
 
== type ==
 
== type ==
 
  '''type''' ''type'':string
 
  '''type''' ''type'':string
Can be used to set the alctype of an object.
+
Can be used to set the type of an object.
 +
Valid values include:
 +
object    ''#Default setting, drawable and other settings''
 +
collider  ''#Acts as a collision mesh, no drawable''
 +
region    ''#Acts as a region''
 +
soundemit  ''#A point from which sound is emitted''
 +
oneshotmod ''#A seek point for an avatar animation''
 +
softvolume ''#A volume to confine objects''
 +
lamp      ''#A lamp''
 +
camera    ''#A camera''
 +
sittingmod ''#A Sitting Modifier''
  
 
== visual ==
 
== visual ==
 +
 +
=== visregions ===
 +
'''visual.visregions''' ''type'': list of [[Soft Volumes#Applications|soft volume references]]
 +
The name of a soft volume which will be used to confine drawing of objects. Objects with this property set will only be drawn when the avatar is outside the confines of the soft volume. (''Hint: Think in terms of '''invisibility''' rather than '''visibility'''.'')
 +
 +
=== render ===
 +
'''visual.render''' ''type'': boolean string ('true' or 'false')
 +
Whether the object has a DrawInterface and Drawable code attached to it. This can be used to prevent object from being visible (for things like click areas).
 +
 +
=== shadowcast (1.6) ===
 +
'''visual.shadowcast''' ''type'':boolean string ('true' or 'false')
 +
Controls shadows on a per-object basis.
 +
 +
=== drawflags (1.6) ===
 +
'''visual.drawflags''' ''type'': list ''range'':[sortspans, sortfaces]
 +
Sents Drawable properties and Drawable Criteria flags on a per-object basis.
 +
 +
=== renderlevel (1.6) ===
 +
==== major ====
 +
'''visual.renderlevel.major''' ''type'': list
 +
Sets the Major RenderLevel flags for the span.
 +
 +
==== minor ====
 +
'''visual.renderlevel.minor''' ''type'': list
 +
Sets the Minor RenderLevel flags for the span.
 +
 +
=== icicle (1.6) ===
 +
'''visual.icicle''' ''type'': list of strings (flags)
 +
Sets [[Icicle Flags|Icicle flags]] on a per-object basis.
 +
 +
=== waveset ===
 +
 +
==== maxlen ====
 +
'''visual.waveset.maxlen''' ''type'': float
 +
Default is 0.0
 +
 +
==== geostate ====
 +
 +
===== maxlen =====
 +
'''visual.waveset.geostate.maxlen''' ''type'': float
 +
Maximum length of the geometry waves(?).
 +
 +
===== minlen =====
 +
'''visual.waveset.geostate.minlen''' ''type'': float
 +
Minimum length of the geometry waves(?).
 +
 +
===== ampoverlen =====
 +
'''visual.waveset.geostate.ampoverlen''' ''type'': float
 +
Amplitude over Length.
 +
 +
===== chop =====
 +
'''visual.waveset.geostate.chop''' ''type'': float
 +
Choppiness
 +
 +
===== angledev =====
 +
'''visual.waveset.geostate.angledev''' ''type'': float
 +
Angle of Deviance(?).
 +
 +
==== texstate ====
 +
 +
===== maxlen =====
 +
'''visual.waveset.texstate.maxlen''' ''type'': float
 +
Maximum length of the texture waves(?).
 +
 +
===== minlen =====
 +
'''visual.waveset.texstate.minlen''' ''type'': float
 +
Minimum length of the texture waves(?).
 +
 +
===== ampoverlen =====
 +
'''visual.waveset.texstate.ampoverlen''' ''type'': float
 +
Amplitude over Length.
 +
 +
===== chop =====
 +
'''visual.waveset.texstate.chop''' ''type'': float
 +
Choppiness
 +
 +
===== angledev =====
 +
'''visual.waveset.texstate.angledev''' ''type'': float
 +
Angle of Deviance(?).
 +
 +
==== ripplescale ====
 +
'''visual.waveset.ripplescale''' ''type'': int
 +
Ripple Scale
 +
 +
==== wispiness ====
 +
'''visual.waveset.wispiness''' ''type'': float
 +
Default 0.5
 +
 +
==== edgeopac ====
 +
'''visual.waveset.edgeopac''' ''type'': float
 +
Edge Opacity
 +
 +
==== edgeradius ====
 +
'''visual.waveset.edgeradius''' ''type'': int
 +
Edge Radius
 +
 +
==== period ====
 +
'''visual.waveset.period''' ''type'': int
 +
Period of the wave. Default 1.
 +
 +
==== fingerlength ====
 +
'''visual.waveset.fingerlength''' ''type'': int
 +
Default 1.
 +
 +
==== envrefresh ====
 +
'''visual.waveset.envrefresh''' ''type'': int
 +
Environment Map Refresh(?)
 +
 +
==== envradius ====
 +
'''visual.waveset.envradius''' ''type'': int
 +
Environment Map Radius(?)
 +
 +
==== specnoise ====
 +
'''visual.waveset.specnoise''' ''type'': int
 +
Specular Noise
 +
 +
==== specstart ====
 +
'''visual.waveset.specstart''' ''type'': int
 +
Specular Starting distance
 +
 +
==== specend ====
 +
'''visual.waveset.specend''' ''type'': int
 +
Specular Ending distance
 +
 +
==== altenv ====
 +
'''visual.waveset.altenv''' ''type'': ref
 +
Reference to an alternative Environment Map (plCubicEnvironMap) for waveset reflections.
 +
 +
==== shores ====
 +
'''visual.waveset.shores''' ''type'':list
 +
List of objects used as shores.
 +
 +
==== decals ====
 +
'''visual.waveset.decals''' ''type'':list
 +
List of objects used as decals.
 +
 +
=== sprite ===
 +
 +
==== flags (1.6)====
 +
'''visual.sprite.flags''' ''type'': list
 +
Specify ViewFaceModifier flags to allow objects to rotate to always face the camera.
 +
 +
== lamp ==
 +
 +
=== softvolume ===
 +
'''lamp.softvolume''' ''type'': ref
 +
Confine the light to the soft volume.
 +
 +
=== flags ===
 +
'''lamp.flags''' ''type'': list
 +
Manually set the flag properties of the lamp.
 +
 +
=== visregions ===
 +
'''lamp.visregions''' ''type'': list of [[Soft Volumes#Applications|soft volume references]]
 +
Confine the light to the soft volume, based on the camera position. See [[Soft Volumes#Visregions|Soft Volumes: Visregions]].
  
 
== physical ==
 
== physical ==
Line 23: Line 190:
 
  '''physical.campassthrough''' ''type'': boolean string ('true' or 'false')
 
  '''physical.campassthrough''' ''type'': boolean string ('true' or 'false')
 
If set to 'true', the camera will pass through the object. If omitted or not set to 'true' the object will block the camera.
 
If set to 'true', the camera will pass through the object. If omitted or not set to 'true' the object will block the camera.
 +
 +
=== physlogic ===
 +
'''physical.physlogic''' ''type'':string
 +
Force the object's physical logic settings
 +
 +
== logic ==
 +
This "logic" is not at all logical... so don't expect anything until Trylon has time to document the changes
  
 
== camera ==
 
== camera ==
Line 33: Line 207:
 
Sets the type of camera brain to use.
 
Sets the type of camera brain to use.
 
Further camera.brain keys depend on brain type used.
 
Further camera.brain keys depend on brain type used.
 +
 +
== region ==
 +
 +
===type===
 +
'''region.type''' ''type'':string ''range'':[logic, footstep, swim, climbing, swimdetect, panic, camera] ''default'':logic
 +
 +
== oneshot ==
 +
 +
===animation===
 +
'''oneshot.animation''' ''type'': string
 +
The name of the avatar animation to play. Do not include the avatar gender!
 +
 +
===seektime===
 +
'''oneshot.seektime''' ''type'': float ''default'':1.0
 +
A bit confusing, this is the length of time that the avatar will try to move to the seek point. After this time has elapsed, if the avatar has not reached the seek point, it will warp to the point and start the animation.
 +
 +
===reversable===
 +
'''oneshot.reversable''' ''type'': boolean string ('true' or 'false')
 +
Whether the animation can be played backwards(?). Default is true.
 +
 +
===smartseek===
 +
'''oneshot.smartseek''' ''type'': boolean string ('true' or 'false')
 +
Whether smart seeking in enabled. Default is true.
 +
 +
===drivable===
 +
'''oneshot.drivable''' ''type'': boolean string ('true' or 'false')
 +
Unknown at this point. Default is true.
 +
 +
===noseek===
 +
'''oneshot.noseek''' ''type'': boolean string ('true' or 'false')
 +
Disable seeking(?). Default is true.
  
 
== sound ==
 
== sound ==
  
 
===flags===
 
===flags===
  '''sound.flags''' ''type'':string ''range'':[loop, 3d, start] ''default'':null
+
  '''sound.flags''' ''type'': list
This controls the sound properties. These can be combined!
+
This controls the sound properties.
''loop'': causes the sound file to loop indefinitely
+
''3d'': causes the sound to occur from a 3D emission point
+
''start'': causes the sound to start immediately upon linking in
+
 
+
To combine the properties, separate them with the pipe character (|).
+
type = loop|start ''(Will cause the sound to start automatically and loop)''
+
  
 
===file===
 
===file===
  '''sound.file''' ''type'':string
+
  '''sound.file''' ''type'': string
This is the name of the Blender Sound block that will be exported as a sound file. '''Do not include the .wav extension.'''
+
This is the name of the Blender Sound block that will be exported as a sound file.
  
 
===type===
 
===type===
  '''sound.type''' ''type'':string ''range'':[SoundFX, Ambience, BackgroundMusic, GUISound, NPCVoices] ''default'':Ambience
+
  '''sound.type''' ''type'': string ''range'':[SoundFX, Ambience, BackgroundMusic, GUISound, NPCVoices] ''default'':Ambience
 
This controls which type of sound it is. Remember that the volume can be adjusted for each type, so be sure to set the type correctly.
 
This controls which type of sound it is. Remember that the volume can be adjusted for each type, so be sure to set the type correctly.
  
 
===volume===
 
===volume===
  '''sound.volume''' ''type'':float
+
  '''sound.volume''' ''type'': float
 
A value between 0.0 and 1.0 that determines the maximum volume of the sound.
 
A value between 0.0 and 1.0 that determines the maximum volume of the sound.
  
 
===softvolume===
 
===softvolume===
  '''sound.softvolume''' ''type'':string
+
  '''sound.softvolume''' ''type'': ref
The name of a soft volume object in the Age to which the sound will be confined. You can combine soft volumes using the same method as for lights (U for union, I for intersection, ! for inverse). '''This will make your sound not work. Do not use it at this point.'''
+
The name of a soft volume object in the Age to which the sound will be confined.
  
 
===channel===
 
===channel===
  '''sound.channel''' ''type'':string ''range'':[left, right] ''default'':null
+
  '''sound.channel''' ''type'': string ''range'':[left, right] ''default'':null
 
The channel to which the sound is bound. If no channel is specified, then the sound will be heard through both channels.
 
The channel to which the sound is bound. If no channel is specified, then the sound will be heard through both channels.
 +
 +
===maxfdist===
 +
'''sound.fmaxdist''' ''type'': float
 +
The maximum distance that the sound can be heard. This is only relevant to 3D sounds.
 +
 +
===minfdist===
 +
'''sound.minfdist''' ''type'': float
 +
The minimum distance before the sound begins to fade. This is only relevant to 3D sounds.
 +
 +
===buffer===
 +
'''sound.buffer''' ''type'': string ''range'':[static, stream] ''default'':stream
 +
The type of sound object. Streaming sounds are best for longer pieces of background music; whereas static sounds are best for short sound effects.
 +
 +
=== fadein ===
 +
 +
==== length ====
 +
'''sound.fadein.length''' ''type'': float
 +
Length controls how long it takes for the sound to fade in or out. This is a decimal value in number of seconds.
 +
 +
==== start ====
 +
'''sound.fadein.start''' ''type'': float
 +
Starting volume defines the percentage of the volume (as a decimal) to use when fading. Default 0.0.
 +
 +
==== end ====
 +
'''sound.fadein.end''' ''type'': float
 +
The final volume of the sound at the end of the effect, expressed as a decimal percentage. Default 1.0.
 +
 +
==== type ====
 +
'''sound.fadein.type''' ''type'': string
 +
Plasma supports three types of fading, these are mathematical equations used internally to produce the fading effect.
 +
 +
==== stop ====
 +
'''sound.fadein.stop''' ''type'': boolean string ('true' or 'false')
 +
A boolean value determining whether to stop playing the sound when the effect finishes. Default false.
 +
 +
=== fadeout ===
 +
 +
==== length ====
 +
'''sound.fadeout.length''' ''type'': float
 +
Length controls how long it takes for the sound to fade in or out. This is a decimal value in number of seconds.
 +
 +
==== start ====
 +
'''sound.fadeout.start''' ''type'': float
 +
Starting volume defines the percentage of the volume (as a decimal) to use when fading. Default 1.0.
 +
 +
==== end ====
 +
'''sound.fadeout.end''' ''type'': float
 +
The final volume of the sound at the end of the effect, expressed as a decimal percentage. Default 0.0.
 +
 +
==== type ====
 +
'''sound.fadeout.type''' ''type'': string
 +
Plasma supports three types of fading, these are mathematical equations used internally to produce the fading effect.
 +
 +
==== stop ====
 +
'''sound.fadeout.stop''' ''type'': boolean string ('true' or 'false')
 +
A boolean value determining whether to stop playing the sound when the effect finishes. Default true.
 +
  
 
== softvolume ==
 
== softvolume ==
'''Not currently implemented'''
+
''See [[Soft Volumes]] for more details.''
===type===
+
=== type ===
  '''softvolume.type''' ''type'':string ''range'':[bounds, convex] ''default'':convex
+
  '''softvolume.type''' ''type'': string ''range'':[convex, invert, union, intersect] ''default'':convex
The type of soft volume region. ''Bounds'' will use the bounding box of the object, while ''convex'' will take the individual faces and generate a soft volume object.
+
The type of soft volume region. ''convex'' will take the individual faces and generate a soft volume object.
 +
 
 +
===instrength===
 +
'''softvolume.instrength''' ''type'': float
 +
Field strength inside the volume.
 +
 
 +
===outstrength===
 +
'''softvolume.outstrength''' ''type'': float
 +
Field strength outside of the attenuation zone around the volume.
 +
 
 +
===softdist===
 +
'''softvolume.softdist''' ''type'': float
 +
For simple (convex) soft volumes, the width of the attenuation zone around the volume.
 +
 
 +
===regions===
 +
'''softvolume.regions''' ''type'': list
 +
A list of references to build up a complex soft volume
 +
 
 
=AlcScript Technical Information=
 
=AlcScript Technical Information=
 
''See [[AlcScript Technical Information]].''
 
''See [[AlcScript Technical Information]].''
 +
 +
[[Category:AlcScript]]

Latest revision as of 04:30, 14 April 2011

AlcScript is a simple way to use a limited form of programming in your Ages.

AlcScript Tutorials

List of Properties

This list describes current AlcScript properties. If you add to it, be sure to add it under the correct code. Use heading levels to reflect the AlcScript indentation level. Follow the example given to describe the functionality of the field. Please note that not all properties listed on this page are fully implemented at the time of writing! However, the documentation exists so that future implementations can follow existing standards. Properties marked "NIE" are not implemented.

type

type type:string

Can be used to set the type of an object. Valid values include:

object     #Default setting, drawable and other settings
collider   #Acts as a collision mesh, no drawable
region     #Acts as a region
soundemit  #A point from which sound is emitted
oneshotmod #A seek point for an avatar animation
softvolume #A volume to confine objects
lamp       #A lamp
camera     #A camera
sittingmod #A Sitting Modifier

visual

visregions

visual.visregions type: list of soft volume references

The name of a soft volume which will be used to confine drawing of objects. Objects with this property set will only be drawn when the avatar is outside the confines of the soft volume. (Hint: Think in terms of invisibility rather than visibility.)

render

visual.render type: boolean string ('true' or 'false')

Whether the object has a DrawInterface and Drawable code attached to it. This can be used to prevent object from being visible (for things like click areas).

shadowcast (1.6)

visual.shadowcast type:boolean string ('true' or 'false')

Controls shadows on a per-object basis.

drawflags (1.6)

visual.drawflags type: list range:[sortspans, sortfaces]

Sents Drawable properties and Drawable Criteria flags on a per-object basis.

renderlevel (1.6)

major

visual.renderlevel.major type: list

Sets the Major RenderLevel flags for the span.

minor

visual.renderlevel.minor type: list

Sets the Minor RenderLevel flags for the span.

icicle (1.6)

visual.icicle type: list of strings (flags)

Sets Icicle flags on a per-object basis.

waveset

maxlen

visual.waveset.maxlen type: float

Default is 0.0

geostate

maxlen
visual.waveset.geostate.maxlen type: float

Maximum length of the geometry waves(?).

minlen
visual.waveset.geostate.minlen type: float

Minimum length of the geometry waves(?).

ampoverlen
visual.waveset.geostate.ampoverlen type: float

Amplitude over Length.

chop
visual.waveset.geostate.chop type: float

Choppiness

angledev
visual.waveset.geostate.angledev type: float

Angle of Deviance(?).

texstate

maxlen
visual.waveset.texstate.maxlen type: float

Maximum length of the texture waves(?).

minlen
visual.waveset.texstate.minlen type: float

Minimum length of the texture waves(?).

ampoverlen
visual.waveset.texstate.ampoverlen type: float

Amplitude over Length.

chop
visual.waveset.texstate.chop type: float

Choppiness

angledev
visual.waveset.texstate.angledev type: float

Angle of Deviance(?).

ripplescale

visual.waveset.ripplescale type: int

Ripple Scale

wispiness

visual.waveset.wispiness type: float

Default 0.5

edgeopac

visual.waveset.edgeopac type: float

Edge Opacity

edgeradius

visual.waveset.edgeradius type: int

Edge Radius

period

visual.waveset.period type: int

Period of the wave. Default 1.

fingerlength

visual.waveset.fingerlength type: int

Default 1.

envrefresh

visual.waveset.envrefresh type: int

Environment Map Refresh(?)

envradius

visual.waveset.envradius type: int

Environment Map Radius(?)

specnoise

visual.waveset.specnoise type: int

Specular Noise

specstart

visual.waveset.specstart type: int

Specular Starting distance

specend

visual.waveset.specend type: int

Specular Ending distance

altenv

visual.waveset.altenv type: ref

Reference to an alternative Environment Map (plCubicEnvironMap) for waveset reflections.

shores

visual.waveset.shores type:list

List of objects used as shores.

decals

visual.waveset.decals type:list

List of objects used as decals.

sprite

flags (1.6)

visual.sprite.flags type: list

Specify ViewFaceModifier flags to allow objects to rotate to always face the camera.

lamp

softvolume

lamp.softvolume type: ref

Confine the light to the soft volume.

flags

lamp.flags type: list

Manually set the flag properties of the lamp.

visregions

lamp.visregions type: list of soft volume references

Confine the light to the soft volume, based on the camera position. See Soft Volumes: Visregions.

physical

friction

physical.friction type: float

Sets friction of object. If not set, or if set to a value lower than 0.0, friction will be disabled. (This means full friction)

elasticity

physical.elasticity type: float

Sets elasticity of object. Only useful on kickables.

campassthrough

physical.campassthrough type: boolean string ('true' or 'false')

If set to 'true', the camera will pass through the object. If omitted or not set to 'true' the object will block the camera.

physlogic

physical.physlogic type:string

Force the object's physical logic settings

logic

This "logic" is not at all logical... so don't expect anything until Trylon has time to document the changes

camera

brain

Contains camera brain settings:

type

camera.brain.type type:string range:[fixed, circle, firstperson, avatar] default: fixed

Sets the type of camera brain to use. Further camera.brain keys depend on brain type used.

region

type

region.type type:string range:[logic, footstep, swim, climbing, swimdetect, panic, camera] default:logic

oneshot

animation

oneshot.animation type: string

The name of the avatar animation to play. Do not include the avatar gender!

seektime

oneshot.seektime type: float default:1.0

A bit confusing, this is the length of time that the avatar will try to move to the seek point. After this time has elapsed, if the avatar has not reached the seek point, it will warp to the point and start the animation.

reversable

oneshot.reversable type: boolean string ('true' or 'false')

Whether the animation can be played backwards(?). Default is true.

smartseek

oneshot.smartseek type: boolean string ('true' or 'false')

Whether smart seeking in enabled. Default is true.

drivable

oneshot.drivable type: boolean string ('true' or 'false')

Unknown at this point. Default is true.

noseek

oneshot.noseek type: boolean string ('true' or 'false')

Disable seeking(?). Default is true.

sound

flags

sound.flags type: list

This controls the sound properties.

file

sound.file type: string

This is the name of the Blender Sound block that will be exported as a sound file.

type

sound.type type: string range:[SoundFX, Ambience, BackgroundMusic, GUISound, NPCVoices] default:Ambience

This controls which type of sound it is. Remember that the volume can be adjusted for each type, so be sure to set the type correctly.

volume

sound.volume type: float

A value between 0.0 and 1.0 that determines the maximum volume of the sound.

softvolume

sound.softvolume type: ref

The name of a soft volume object in the Age to which the sound will be confined.

channel

sound.channel type: string range:[left, right] default:null

The channel to which the sound is bound. If no channel is specified, then the sound will be heard through both channels.

maxfdist

sound.fmaxdist type: float

The maximum distance that the sound can be heard. This is only relevant to 3D sounds.

minfdist

sound.minfdist type: float

The minimum distance before the sound begins to fade. This is only relevant to 3D sounds.

buffer

sound.buffer type: string range:[static, stream] default:stream

The type of sound object. Streaming sounds are best for longer pieces of background music; whereas static sounds are best for short sound effects.

fadein

length

sound.fadein.length type: float

Length controls how long it takes for the sound to fade in or out. This is a decimal value in number of seconds.

start

sound.fadein.start type: float

Starting volume defines the percentage of the volume (as a decimal) to use when fading. Default 0.0.

end

sound.fadein.end type: float

The final volume of the sound at the end of the effect, expressed as a decimal percentage. Default 1.0.

type

sound.fadein.type type: string

Plasma supports three types of fading, these are mathematical equations used internally to produce the fading effect.

stop

sound.fadein.stop type: boolean string ('true' or 'false')

A boolean value determining whether to stop playing the sound when the effect finishes. Default false.

fadeout

length

sound.fadeout.length type: float

Length controls how long it takes for the sound to fade in or out. This is a decimal value in number of seconds.

start

sound.fadeout.start type: float

Starting volume defines the percentage of the volume (as a decimal) to use when fading. Default 1.0.

end

sound.fadeout.end type: float

The final volume of the sound at the end of the effect, expressed as a decimal percentage. Default 0.0.

type

sound.fadeout.type type: string

Plasma supports three types of fading, these are mathematical equations used internally to produce the fading effect.

stop

sound.fadeout.stop type: boolean string ('true' or 'false')

A boolean value determining whether to stop playing the sound when the effect finishes. Default true.


softvolume

See Soft Volumes for more details.

type

softvolume.type type: string range:[convex, invert, union, intersect] default:convex

The type of soft volume region. convex will take the individual faces and generate a soft volume object.

instrength

softvolume.instrength type: float

Field strength inside the volume.

outstrength

softvolume.outstrength type: float

Field strength outside of the attenuation zone around the volume.

softdist

softvolume.softdist type: float

For simple (convex) soft volumes, the width of the attenuation zone around the volume.

regions

softvolume.regions type: list

A list of references to build up a complex soft volume

AlcScript Technical Information

See AlcScript Technical Information.