Skip to content

OBJ8 CSL

Chris Collins edited this page Oct 22, 2019 · 5 revisions

The new "OBJ8" CSL format is built on top of the LegacyCSL format, but using the standard X-Plane OBJ8 format.

Please note that your OBJ8 CSLs should ship both PNG and DDS textures when appropriate. You should not ship only PNG textures. Please see https://developer.x-plane.com/2012/01/dds-revisited-in-x-plane-10/ for the rationale behind this as well as some visual examples as to the consequence of getting this wrong.

In order to declare models to use this format, new commands in the xsb_aircraft.txt files are necessary:

Animations

Animations for OBJ8 CSLs are controlled via dataref. It is up to the pilot client as to how these should be computed, but the expected ranges and behaviours are documented below.

The datarefs are as follows:

Dataref Description
libxplanemp/controls/gear_ratio Landing Gear position. 0.0 is fully retracted, 1.0 is fully extended
libxplanemp/controls/flap_ratio Flaps Position. 0.0 is fully retracted. 1.0 is full extension
libxplanemp/controls/slat_ratio Slats Position. 0.0 is fully retracted. 1.0 is full extension
libxplanemp/controls/spoiler_ratio Spoiler Position. 0.0 is fully retracted. 1.0 is full extension
libxplanemp/controls/speed_brake_ratio Speedbrake Position. 0.0 is fully retracted. 1.0 is full extension
libxplanemp/controls/wing_sweep_ratio Wing Sweep Position. Notionally 0.0 through 1.0. Not strictly defined.
libxplanemp/controls/thrust_ratio Engine RPM/N1 as ratio of maximum speed. 0.1 is idle. 1.0 is max N1/RPM. 0.0 is off.
libxplanemp/controls/yoke_pitch_ratio Pitch Control Position. -1.0 to 1.0.
libxplanemp/controls/yoke_roll_ratio Roll control position. -1.0 to 1.0.
libxplanemp/controls/yoke_heading_ratio Rudder Control Position. -1.0 to 1.0
libxplanemp/controls/landing_lites_on Landing Lights.
libxplanemp/controls/beacon_lites_on Anti-Collision Beacon.
libxplanemp/controls/strobe_lites_on Wingtip Strobes.
libxplanemp/controls/nav_lites_on Navigation Lights.

xsb_aircraft.txt Commands

All commands as in the LegacyCSL document still work, however 2 new commands are required to declare OBJ8 models.

When defining a OBJ8 model, you must not use the TEXTURE or HASGEAR commands.

OBJ8_AIRCRAFT

OBJ8_AIRCRAFT <name>

OBJ8_AIRCRAFT starts defining a new aircraft using the OBJ8 format.

<name> is a identifier that must unique within the current package. It can be anything, as long as it is unique. It should be related to the aircraft in some way. Currently, no spaces are allowed in the name.

OBJ8

OBJ8 <part> <animated> <obj8 path>

OBJ8 defines the components (attachments) that make up the aircraft.

<part> can be one of: GLASS, LIGHTS, LOW_LOD or SOLID.

<part> value Purpose
SOLID For objects that contain the whole aircraft, lights and all
GLASS For objects that contain the transparent parts of the aircraft.
LIGHTS For the lights-only model of the aircraft.
LOW_LOD For low-poly objects to use when rendering at large distances.

Note: GLASS and LOW_LOD have been deprecated recently and may not be supported in future releases of libxplanemp

<animated> can be one of YES or NO. This indicates if the specified object file has animations that will need to be processed. Currently this does nothing, so you probably want to use YES to avoid surprises should this feature be fixed.

<obj8 path> is a package and path as per the OBJECT command.

Clone this wiki locally