3D Model features - ikemen-engine/Ikemen-GO GitHub Wiki

[!IMPORTANT]
As of this writing, everything here pertains only to the nightly versions of Ikemen GO.

Overview

Ikemen GO uses the glTF format (in either .glb or .gltf extensions) for loading and displaying 3D assets. This format can be exported to using modelling programs such as Blender. Ikemen GO can display 3D models defined in stage and screenpack.

Standard Features

Refer to glTF™ 2.0 Specification for full set of features in glTF2.0

Details about the standard glTF features supported by Ikemen GO:

  • COLOR_n - Only COLOR_0 is supported
  • TEXCOORD_n - Multiple texture coordinate is not supported. All textures use TEXCOORD_0
  • JOINTS_n,WEIGHTS_n - Up to 2 sets of joins and weights are supported
  • Morph Target Animation - Up to 8 active morphed attributes per primitive are supported

Supported glTF Extensions

The following glTF extensions are supported:

Extras / custom properties

In addition to the extensions mentioned above, Ikemen GO can further tweak the rendering behavior on a per-object basis using a glTF node's "extras" field.

trans

Values: string of "ADD"/"SUB"/"MUL"/"NONE"
Default: "NONE"

Renders the object with the specified blending mode.

id

Values: integer Default: N/A

ID number used to identify a node. For use with the BGCtrl3D state controller. This property can be applied to both nodes and animations inside a GLTF file.

loopCount

Values: integer Default: -1

Applies to animations. Controls the number of times an animation will loop. -1 is treated as infinity. Note the capital C (case-sensitive)

enabled

Values: string Default: "1"

Applies to animations. Controls whether the animation plays. Set this to "0" or "false" to disable.

castShadow

Values: integer
Default: 1

Applies to nodes. Toggles whether or not that object casts shadows. Set to 0 to disable.

shadowMapBias:

Values: float
Default: 0.02 Applies to lights, define the shadow map bias of the light. Increase this value to reduce shadow acne; Decrease this value to reduce peter panning.

shadowMapNear, shadowMapFar, shadowMapBottom, shadowMapTop, shadowMapLeft, shadowMapRight:

Values: float
Default: 0.1 (point/spot lights)/-20 (directional lights), 50, -20, 20, -20, 20

Applies to lights, define the shadow mapping frustum. The frustum should cover all the visible objects in order to produce correct result.

disableZTest

Values: boolean
Default: false

Applies to nodes. Disables depth testing. Not recommended unless you know exactly what you're doing.

disableZWrite

Values: boolean
Default: false

Applies to nodes. Disables writing to the depth buffer. Useful when rendering 2D stuffs in the model

layerNumber

Values: integer Default: 0 (screenpack model / scene 0 of stage model), 1 (scene 1 of stage model)

Applies to nodes. Define the layer number of the node. Valid values are -1 (stage model only), 0, 1