Start Page » DragonScript Scripting Language » Behavior Elements: Quick and Easy Development » ECBehaviorCamera
Behavior element behavior adding camera support.
Behavior adds a Camera resource to the the behavior element. Creates a camera attached to the element collider which can be individually modified.
See also:
This behavior can be added multiple times to an element. Use the behavior identifier to tell them apart.
Element class properties have the prefix camera.
or camera({id}).
if id is not empty.
Set position to attach resource to collider.
camera.position
or camera({id}).position
<vector name='camera.position' x='0' y='0' z='0.1'/>
Set orientation to attach resource to collider in degrees.
camera.orientation
or camera({id}).orientation
<vector name='camera.orientation' x='30' y='0' z='0'/>
Set bone to attach resource to. If empty string attach to collider.
camera.bone
or camera({id}).bone
<string name='camera.bone'>attach</string>
Set vertical field of view in degrees for the entire view.
camera.fov
or camera({id}).fov
<float name='camera.fov'>60</value>
Set aspect ratio of the horizontal field of view to the vertical field of view.
camera.fovRatio
or camera({id}).fovRatio
<float name='camera.fovRatio'>1.5</value>
Set distance to the image plane.
camera.imageDistance
or camera({id}).imageDistance
<float name='camera.imageDistance'>0.1</value>
Set viewing distance up to which world geometry is rendered.
camera.viewDistance
or camera({id}).viewDistance
<float name='camera.viewDistance'>500</value>
Set enable high definition range rendering (HDRR) if supported.
camera.enableHDRR
or camera({id}).enableHDRR
<float name='camera.enableHDRR'>false</value>
Set exposure.
camera.exposure
or camera({id}).exposure
<float name='camera.exposure'>1.5</value>
Set lowest intensity the eye can adapt to.
camera.lowestIntensity
or camera({id}).lowestIntensity
<float name='camera.lowestIntensity'>10</value>
Set highest intensity the eye can adapt to.
camera.highestIntensity
or camera({id}).highestIntensity
<float name='camera.highestIntensity'>25</value>
Set adaption time of the eye in seconds.
camera.adaptionTime
or camera({id}).adaptionTime
<float name='camera.adaptionTime'>25</value>
Set enable global illumination (GI) if supported.
camera.enableGI
or camera({id}).enableGI
<float name='camera.enableGI'>false</value>
Set path to camera parameters file (*.decamera
) to use. If not empty path the settings override the manual settings.
camera.pathParameters
or camera({id}).pathParameters
<string name='camera.pathParameters'>default.decamera</string>
This behavior has no events.
This behavior requires no other behaviors.
This behavior does require the element class to be persistable (setPersistable).
Since DragonScript Module Version 1.0
This example defines an element which contain a camera.
class MyElement extends BehaviorElementClass public var ECBehaviorCollider collider public var ECBehaviorCamera camera public func new() collider = ECBehaviorCollider.new(this) camera = ECBehaviorCamera.new(this, collider) camera.getAttach().getPosition().setVector(Vector.new(0, 0, 0.1)) camera.getViewDistance().setValue(300) camera.getPathParameters().setValue("/content/cameras/scope.decamera") end end
Using element class supporting adding behaviors the behavior can be added like this:
<?xml version='1.0' encoding='UTF-8'?> <elementClass name='MyClass' class='GenericBehaviorElement'> <behavior type='ECBehaviorCamera'> <!-- optional: set layer mask (default empty). list of bits to set. --> <string name='layerMask'>0 1 4</string> <!-- set element properties. omit property prefix if used inside behavior tag --> <float name='.viewDistance'>300</float> </behavior> <!-- for adding multiple behaviors use unique identifiers --> <behavior type='ECBehaviorCamera' id='second'> ... </behavior> </elementClass>