This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
dragengine:modules:dragonscript:behavior_outline [2020/05/24 01:11] – [Element Class Example] dragonlord | dragengine:modules:dragonscript:behavior_outline [2020/05/24 14:06] – dragonlord | ||
---|---|---|---|
Line 52: | Line 52: | ||
Multiple instances of ECBehaviorOutline can be used for example to create different outlines to switch on and off or to add multiple outline skins to a single ECBehaviorComponent. Keep in mind though that each instance of ECBehaviorOutline creates a new component and dynamic skin resource which can impact performance if the used model has high polygon count. To use multiple instances use code like this in your subclass constructor: | Multiple instances of ECBehaviorOutline can be used for example to create different outlines to switch on and off or to add multiple outline skins to a single ECBehaviorComponent. Keep in mind though that each instance of ECBehaviorOutline creates a new component and dynamic skin resource which can impact performance if the used model has high polygon count. To use multiple instances use code like this in your subclass constructor: | ||
< | < | ||
- | class MyElement | + | class MultiInstanceClass |
public var ECBehaviorComponent component | public var ECBehaviorComponent component | ||
public var ECBehaviorCollider collider | public var ECBehaviorCollider collider | ||
| | ||
- | public func new() | + | public func new() super(" |
component = ECBehaviorComponent.new(this) | component = ECBehaviorComponent.new(this) | ||
collider = ECBehaviorCollider.new(this, | collider = ECBehaviorCollider.new(this, | ||
Line 67: | Line 67: | ||
====== Element Class Properties ====== | ====== Element Class Properties ====== | ||
- | Element class properties have the prefix **outline{(id)}.**. | + | Element class properties have the prefix **outline.** or **outline(id).** |
===== skin ===== | ===== skin ===== | ||
Path to skin to use to render the outline. | Path to skin to use to render the outline. | ||
- | * Full name: " | + | * Full name: " |
- | * Type ECPSkin | + | * Type skin path |
* Default Value "/ | * Default Value "/ | ||
* Example (*.deeclass) <code xml>< | * Example (*.deeclass) <code xml>< | ||
Line 78: | Line 78: | ||
===== model ===== | ===== model ===== | ||
Path to model to use instead of the model of the dependency component | Path to model to use instead of the model of the dependency component | ||
- | * Full name: " | + | * Full name: " |
- | * Type ECPModel | + | * Type model path |
* Default value //null// | * Default value //null// | ||
* Example (*.deeclass) <code xml>< | * Example (*.deeclass) <code xml>< | ||
Line 85: | Line 85: | ||
===== rig ===== | ===== rig ===== | ||
Path to rig to use instead of the rig of the dependency component. If null uses the dependency component rig. | Path to rig to use instead of the rig of the dependency component. If null uses the dependency component rig. | ||
- | * Full name: " | + | * Full name: " |
- | * Type ECPRig | + | * Type rig path |
* Default value //null// | * Default value //null// | ||
* Example (*.deeclass) <code xml>< | * Example (*.deeclass) <code xml>< | ||
Line 92: | Line 92: | ||
===== color ===== | ===== color ===== | ||
Color of the outline. For this property to have any effect the used skin requires to have a renderable named " | Color of the outline. For this property to have any effect the used skin requires to have a renderable named " | ||
- | * Full name: " | + | * Full name: " |
- | * Type ECPColor | + | * Type color |
- | * Default value //white (1, 1, 1)// | + | * Default value //black (0, 0, 0)// |
* Example (*.deeclass) <code xml>< | * Example (*.deeclass) <code xml>< | ||
===== intensity ===== | ===== intensity ===== | ||
Emissivity intensity of the outline. For this property to have any effect the used skin requires to have a renderable named " | Emissivity intensity of the outline. For this property to have any effect the used skin requires to have a renderable named " | ||
- | * Full name: " | + | * Full name: " |
- | * Type ECPFloat | + | * Type floating point |
* Minimum Value 0 | * Minimum Value 0 | ||
* Default value 0 | * Default value 0 | ||
Line 107: | Line 107: | ||
===== thickness ===== | ===== thickness ===== | ||
Thickness of the outline. The measurement unit of this value depends on the outline type in the used skin. For this property to have any effect the used skin requires to have a renderable named " | Thickness of the outline. The measurement unit of this value depends on the outline type in the used skin. For this property to have any effect the used skin requires to have a renderable named " | ||
- | * Full name: " | + | * Full name: " |
- | * Type ECPFloat | + | * Type floating point |
* Minimum Value 0 | * Minimum Value 0 | ||
* Default value 0.005 | * Default value 0.005 | ||
Line 131: | Line 131: | ||
Since DragonScript Module Version **1.1** | Since DragonScript Module Version **1.1** | ||
+ | ====== Use Cases ====== | ||
+ | * Highlight objects player can interact with. Combine this with [[behavior_lookedat|ECBehaviorLookedAt]] using a listening to show/hide the highlight if the player looks at the object. | ||
+ | * Use for Toon-Rendering to draw a black outline on all objects. | ||
====== Element Class Example ====== | ====== Element Class Example ====== | ||
Line 139: | Line 142: | ||
| | ||
- | | + | |
- | // add behaviors: component, collider | + | // add required |
| | ||
| | ||
- | | ||
- | // set parameters | + | // |
+ | // and has a thickness of 0.0075 using a custom " | ||
+ | | ||
| | ||
| |