This page has been translated automatically.
视频教程
界面
要领
高级
实用建议
UnigineEditor
界面概述
资产工作流程
设置和首选项
项目开发
调整节点参数
Setting Up Materials
Setting Up Properties
照明
Landscape Tool
Sandworm (Experimental)
使用编辑器工具执行特定任务
Extending Editor Functionality
嵌入式节点类型
Nodes
Objects
Effects
Decals
Light Sources
Geodetics
World Objects
Sound Objects
Pathfinding Objects
Players
编程
基本原理
搭建开发环境
Usage Examples
UnigineScript
C++
C#
UUSL (Unified UNIGINE Shader Language)
File Formats
Rebuilding the Engine Tools
GUI
双精度坐标
应用程序接口
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
注意! 这个版本的文档是过时的,因为它描述了一个较老的SDK版本!请切换到最新SDK版本的文档。
注意! 这个版本的文档描述了一个不再受支持的旧SDK版本!请升级到最新的SDK版本。

Setting Up Properties

Warning
The functionality described in this article is not available in the Community SDK edition.
You should upgrade to Sim SDK edition to use it.

Each time you add a new model representing an entity to the world you should assign all necessary properties and adjust their parameters to ensure proper integration into the simulation environment.

Landing Gears#

  1. Assign the LandingGears property to the parent node (aircraft).

    The following property parameters are available:

    • Gear — indicates that gears are extended
    • Time Covers — cover opening time, in seconds
    • Time Gears — gear extension time, in seconds
    Notice
    Make sure all pivots are set up properly.
  2. Define which nodes represent parts of landing gears and assign the LandingGearPart property to them.

    The following property parameters are available:

    • Node — the node to be moved (usually the node to which this property is assigned)
    • Is Cover — indicates whether the part is a cover or not (a cover is opened prior to gear extension)
    • Use Dummy Cover — indicates whether the wheel well is to be covered with a dummy cover after gear retraction. When enabled, an additional When Extended option is displayed. It is used to specify whether the dummy cover shall be visible when the gear is extended.
      Notice
      If this option is enabled the Node field should not contain the node to which this property is assigned, as the component will be disabled forever after retraction.
    • Rotate — indicates whether the part should rotate
    • Axis — coordinates of the part's rotation axis
    • Extension Angle — rotation angle of the part, when the gear is extended, in degrees
    • Retraction Angle — rotation angle of the part, when the gear is retracted, in degrees
    • Cover Closable — indicates whether the cover should close after gear extension, or to stay open

Aircraft Lights#

This section contains actions to be performed for controlled aircraft lights (landing, taxi, beacon, navigation, etc.).

  1. Assign the LightAircraftController property to the parent node (aircraft) and leave all parameters unchanged.
  2. Assign the LightAircraft property to each node representing aircraft lights of various types.

  3. Set up the light parameters.

Aircraft Lights Control#

Aircraft lights are controlled automatically by the IG. In case you implement some custom IG logic, you can control lights of an aircraft via code as follows:

Aircraft lights control example:

Source code (C++)
// getting an aircraft entity by its ID (see data/ig_config.xml)
Entity *entity = ig_manager->getEntity(__entity_id__);

// getting a property for the component by its ID (see data/ig_config.xml)
PropertyPtr p_light_outer = entity->getComponent(__component_id_from_config__)->getProperty();

// enable all lights (landing, taxi, etc.) for the aircraft
p_light_outer->getParameterPtr("landing")->setValueToggle(1);
p_light_outer->getParameterPtr("taxi")->setValueToggle(1);
p_light_outer->getParameterPtr("navigation")->setValueToggle(1);
p_light_outer->getParameterPtr("beacon")->setValueToggle(1);
p_light_outer->getParameterPtr("strobe")->setValueToggle(1);
p_light_outer->getParameterPtr("logo")->setValueToggle(1);

Lights#

Lights available in the scene and not referring to any aircraft can also be controlled.

It is possible to control lights manually by assigning LightSourceComponent to them or automatically depending on time of day — in this case AutomaticTimeLightingComponent should be used.

Setting Up Pivot Axes#

It is important to set all pivots axes for the model properly:

  • The main pivot for the aircraft model should be set close to its center , with X axis pointing to the right and Y axis pointing forward.
  • Horizontal parts should have their pivot axes oriented along the +X (left-to-right relative to the plane), while vertical ones — along the +Z (bottom-to-top). Initial rotation angles of parts do not matter, important is that they should be in neutral position: extended — for gears, and retracted — for flaps.

Aircraft Effects#

This section contains actions to be performed to set up various aircraft effects (engine or landing gear fire, smoke, contrail, etc.).

  1. Assign the EffectAircraftController property to the parent node (aircraft) and leave all parameters unchanged.
  2. Assign the EffectAircraft property to each node representing visual effects of various types.

    The following property parameters are available:

    • Node — a node to be enabled/disabled
    • Emitter Node — a node emitting particles for the effect
    • Default Enable — indicates whether the effect should be enabled by default
    • Effect Type — aircraft effect type selection (engine or landing gear fire, smoke, contrail, etc.)
    • Wind Dependent — indicates whether the effect is affected by wind or not

Synchronization#

When running IG with Syncker, it is required to synchronize entities to have their movements displayed both on the master and slave computers. This can be done either via code (Master::addSyncNode()), or using the property: in the Editor, assign the AddSyncNode property to the nodes that should be synchronized.

Last update: 2020-12-19
Build: ()