Mikal's Forum Posts

  • Update:

    github.com/gritsenko/c3_spine_plugin/releases/tag/2.8.2

    Fix C3 324 compat and set region ACE for 4.1

  • Which version of the addon are you using? Later versions have optimizations around this case when animation is paused.

  • It is available on the itch.io page.

  • Hi, regarding 3D light, the effect addon is just a simple light projected from the viewer toward the scene. Since we don't have the right information or effect process from C3, we can't do much more than that right now.

    Think of it as the camera having a flashlight or torch pointed at the scene.

    When using the addon don't forget to set the light diameter to 1-3 (can be used to make it more like a spotlight or a flood light.)

    Here's one of the examples that is on the itch site: FighterPerfLayerLight3D.c3p

    Let me know if you need any more info.

    Thank you for the update and the nice process to support both WebGL 1 and WebGL 2 in the same addon, nice work.

  • You can't really pull bone position, you can only 'force' their values.

    Instead if you want to use a Spine position to reference in C3, you should add a bounding box to the spine project attached to a bone where you want it (e.g. at the tip of a sword) and use the bounding box expressions to read the value of the bounding box (either the points of the box or the center.) The github site has a little more information on that (you also need to use the update bounding box ACE to get the latest values.)

  • Thanks, I replied on the Aha site.

  • I've added the request to aha here: construct3-21h2.ideas.aha.io/ideas/C321H2-I-504

    In the meantime, I've been using the scripting SDK version to test (though I would rather use the plug-in API version) and it is very effective for 3DObject with higher polygon models with animation. See below for the flame chart with a number of different models each with their own worker for animation processing and a big increase in possible performance with multiple models.

    On initialization of each instance, I transfer the model and animation data once to the worker and then each tick() use postMessage from the C3 runtime thread (via plug-in) to request for animation update with a certain animation type and time stamp. When the worker is finished, I transfer the new vertex data back to the C3 runtime worker thread using an ArrayBuffer transferable, which I can read as a float array using a DataView. Using a transferable makes the transfer quick, even though a lot of data is sent. The CreateWorker API has been really handy for all of this, thanks for the nice tooling that is already there. In the C3 runtime, the plug-in uses the latest data available to do the model rendering. I am also examining ways to consider doing sync gates between worker and C3 worker runtime.

    For more complex models, I also change the animation update rate to 30 fps and this works well to allow for more latency between worker animation processing and rendering (which always runs at 60 fps using the latest available vertex data.)

    This has been inspired by the C3 RTS blog and how Ashley is doing the RTS server using a worker.

  • You could create a new thread to request and also add a link to a request here:

    construct3-21h2.ideas.aha.io

  • As a quick hack test, try this (set project to not use worker mode):

    Add a usermedia element to your layout.

    In scripting use:

    // Get the video element (assuming only 1 video element present)

    globalThis.myV = C3UserMedia_GetVideoElement(0)

    globalThis.myV should point to the usermedia object, which you use for your tensorflow pose.

    If it works, request to Ashley to add an official scripting SDK for Usermedia to get access to the usermedia element to import to other APIs. I recommended only using official scripting/SDK API calls.

  • Is there a CreateWorker plug-in API similar to the one in the scripting SDK? I do not see it in the docs. I am testing workers in my plug-in and want to use the official method to create more workers from the C3 runtime running in a worker.

    If there is not now and you need me to make a aha request, I can do that.

  • Since R0J0hound brought up my 3DObject plugin - I added a little hook to 3DObject work with cannon.js (a JS 3D physics engine.) It connects a 3DObject to a cannon physics body and updates the 3DObject's location and rotation based on the cannon body every tick.

    See this for a little more details:

    kindeyegames.itch.io/c3-3dobject-alpha/devlog/366142/3dobject-and-cannon-esjs-construct-3d-and-3d-collision-and-physics

    kindeyegames.itch.io/c3-3dobject-alpha/devlog/366633/rocket-cannon-example-fix-setcannon-bbox

    Subscribe to Construct videos now
  • No it does not. I don't think the C3 SDK supports that for 3rd party plug-ins yet. If you hear that it does, please let me know.

  • Yes and yes :) Look to the itch site for the latest devlogs and comments.

    kindeyegames.itch.io/c3-3dobject-alpha

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Ah, nice work! That is actually a little bit of a hard problem, mapping x,y screen coordinates (e.g. mouse cursor) to x,y,z coordinates of 3D space that is projected to screen coordinates. It looks like you got a good solution! In other cases, I do transforms to map between the two.