Mikal's Forum Posts

  • hello,

    we've ported the proUI to v2 SDK version.

    Still beta and to test it in all project but feel free to review it and post issue in the repo

    https://github.com/RisingPixel/proui

    Amazing! Nice work!

  • Well done!

  • github.com/Scirra/Construct-bugs/issues/9061

    Here's the test project.

  • Will do. I wanted to check first if it was an obvious RTFM question or more detailed examination needed.

    Will provide sample, I'll add to the bug report, though it might be my issue.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • construct.net/en/make-games/addons/1589/3d-frag-lighting

    3D Fragment lighting effect and utility library example.

    Works on Sprites, Tiled, 3D Shape.

    Debugging with C3 team if it will work on Mesh and 3D Model addons.

  • It is starting to feel like if "supports-3d-direct-rendering": true is set for an effect, for 3D Model and my Mesh addon (uses drawMesh()), my light effect applied to both is dropped and only the original simple frag shader runs.

  • I can get a 3D lighting effect which uses vWorldPos to work on 3D Shape and sprites. The vWorldPos varying in x,y,z.

    However, when I try on my mesh addon or the 3D Model addon, it does not seem like it has an effect. With my mesh addon, which uses drawMesh() it looks like predraw is happening (though I do not have that enabled in the addon). So the light effect happens _after_ predraw and is basically a blit, so it won't work.

    It seems like behavior happens with 3D Model also, is there a predraw?

    The lighting effect has this set:

    "must-predraw": false,

    "supports-3d-direct-rendering": true,

    I can send a bug report if needed, but perhaps I am just doing something wrong, I should have different setting for my effect or a different plugin setting for my object?

    Or does drawMesh() always fire a predraw? _If_ that is true, can we change it to it checks "supports-3d-direct-rendering" and doesn't do a predraw if that is the first effect in the chain?

    This is in editor, same light effect, w/ same parameters of both objects (3D Shape and 3D model)

    It looks the same at runtime.

    Thanks for the help. Lighting feels pretty close for 3D Model in addition to 3D Shape.

  • In this case, it is due to what c3 uniforms are available in webGL2 vs webGPU. (I added a feature request to make them equivalent.)

    I need matP for viewspace conversion.

    github.com/Scirra/Construct-feature-requests/issues/772

  • Mesh:

    v1.22.0 — Bounding Box Scale

    Added a BBox Scale property to control the bounding box size independently from the model. Set it in the editor or at

    runtime with the new SetBBoxScale action — useful for tuning physics colliders and frustum culling without changing

    your model's visual scale. Also includes updated C3 SDK type definitions.

    v1.23.0 — Morph Targets (Blend Shapes)

    Full morph target support is here. Blend shapes from your glTF models now animate automatically — facial expressions,

    damage states, character customization, anything driven by shape keys. Works with or without a skeleton, blends

    smoothly during animation crossfades, and can be controlled manually via the new SetMorphWeight action for scripted

    deformation. New ACEs: SetMorphWeight, HasMorphTargets, MorphTargetCount, and MorphWeight.

  • construct.net/en/make-games/addons/1587/ssao

    ssao effect

    Works well to help give more definition to 3D Scenes

    webgl2 version is better, so set project to not use webgpu

  • Update - 3D Model Quaternion support for physics. Thank you Diego

    kindeyegames.itch.io/c3-3d-bundle/devlog/1462914/quaternion-for-3d-model

    Mesh

    Multi-ray shadow occlusion: 5 rays (center + top/bottom/left/right) for smooth penumbra instead of binary on/off shadows

    New action: SetShadowRayCount — choose Simple (1 ray, binary) or Smooth (5 rays, gradual)

    New expression: ShadowRayCount — returns current ray count (1 or 5)

    Uses _RaycastFromSelf with offset params and 0x8000 light occluder filter

    Debug panel shows ray hit count (e.g. "OCCLUDED 3/5 rays (0.52x)")

    Physics

    - Model3D direct quaternion support

    - Model3D rotation: replaced delta-euler approach with 90° Y-axis quaternion correction

    - Removed _prevPhysicsQuat and _eulerToQuaternion (no longer needed)

    - Model3D position: removed depth/2 Z-offset (origin is center)

  • GltfStatic v1.20.0 — Correct Skinned Mesh Orientation for Blender Exports

    March 16, 2026

    This release fixes a longstanding issue where skinned (animated) models exported from Blender appeared at the wrong scale or orientation in Construct 3.

    The Problem

    Blender exports glTF files with an "Armature" node above the skeleton that carries a 90° X rotation (converting Blender's Z-up to glTF's Y-up) and a scale factor. Previously, the plugin ignored these non-joint ancestor nodes when computing bone matrices, causing animated models to render with incorrect size and rotation.

    The Fix

    v1.20.0 introduces Root Ancestor Transform (RAT) — the plugin now detects non-joint ancestor nodes above the skeleton root, computes their combined transform, and applies it to root joint world matrices during animation. This means the full scene hierarchy is respected without adding overhead to the per-vertex skinning pipeline.

    Additional fixes in this release:

    - Rotation order mismatch — Editor and runtime now both use intrinsic XYZ rotation order, so object rotations match between preview and gameplay.

    - Editor double-scaling — Skinned meshes in the editor no longer have world transforms baked into their vertex positions, fixing a size mismatch with runtime.

    - Removed workarounds — The IBM scale normalization hack and +180° Y rotation offset are no longer needed and have been removed, simplifying the codebase.

    Upgrade

    Drop in the new .c3addon — no project changes needed. Models that previously required manual scale/rotation compensation should now display correctly out of the box.

    github.com/MikalDev/gltf-plugins/releases/tag/v1.20.0

  • The plane built-in model has been updated in v1.17.0 to remove the unnecessary side faces, keeping only the top and bottom geometry with a 10x10 vertex grid for proper vertex lighting. The bottom face UVs are now mirrored so that the texture matches the front when viewed through transparency, making semi-transparent planes look correct from both sides. When setting up physics for the plane in Rapier 3D, use the Box collision shape — the plane is physically a very thin box with transparent sides, so a box collider matches its actual geometry.

  • Animated Textures

    Built-in 3D models (cube, sphere, capsule, cylinder, cone, ramp) now support sprite-frame texture animation.

    How it works

    Assign a Sprite as the texture source. The Sprite's animation frames play directly on the 3D model surface — no shader

    tricks, no workarounds.

    On start of layout:

    Mesh → Set texture source to SpriteWithFrames

    Mesh → Play texture animation from beginning

    What's new

    Actions: Set texture source, Play/Stop, Set animation by name, Set frame, Set speed

    Conditions: Is playing, On finished, On frame changed

    Expressions: TextureAnimFrame, TextureAnimFrameCount, TextureAnimSpeed, TextureAnimName

    Supports looping, ping-pong, per-frame duration, and speed scaling — all driven by the Sprite's animation settings in

    the editor.