Mikal's Forum Posts

  • If the action is not available in the scripting SDK, you could create a function in C3 events to call the C3 event action you want and then use the Scripting SDK to call the C3 event function, you can pass in parameters as needed to control the function or even something like a UID to pick the correct instance to operate on.

  • Can you share the spritefont (png), the current spacing string you are using and the XxY dimensions of each character, so we can try to help you out further? You can easily share files online using: gofile.io/welcome (no account required.)

    I also want to make sure the png is following the below condition from the manual regarding different width spacing.

    The size of each character's cell in the sprite font image. Individual characters can be displayed with a different width using Spacing data or the Set character width action. In this case, the character should be drawn left-aligned within its cell.

  • Diego Thanks for working on this cool feature, well done! I didn't see this post, so I went ahead and tried to make a single object w/ different instances have parent / child relationships between the instances. Using the old two Family trick which Ashley mentioned seemed to work, but I am interested to see if you are going to approach it in a different way, since this method feels a little clumsy.

    I used instance variables to name a parent and a name of the instance. On start of layout I use this variables to assign the child / parent relationship.

    Event sheet:

    Here's the project:

    gofile.io/d/yGGaO3

    Automatic containers for picking sounds great also. Would you pick from top of picked element down tree to leaves or would picking also transverse up the tree too?

  • Thanks Ashley, makes sense for ACEs. I am going to try to change this project to see how it will work. I hope that in editor it will be simpler to do (select child action on parent instance, then select child instance, both can be the same object, but different instances.)

  • Found my old example, which did use ElementQuad (and fluid canvas rendered behind C3 canvas, but used as source of the ElementQuad texture.)

  • Ah, saw some other experiments, it looks possible to do parent / child from instances to another object.) My question is how would you create actions/conditions to have the instances of the same object create parent/child relationships (e.g. determined by different values of an instance variable of the object?)

  • Watch out for 'escape characters'. Below from a post by blackhornet a while back.

    You have to 'escape' quotes and backslash with a backslash.

    [4, "\""]

    [5, "\\"]

    Forward-slash is fine.

    In general that looks like the right format, but really go through it pair by pair and make sure all the formatting is correct. I have found simple errors are not always flagged or obvious.

    This has the format, but doesn't mention the escape character / quote character issue.

    construct.net/en/make-games/manuals/construct-3/plugin-reference/sprite-font

  • Ashley thanks! Please feel free to reuse the demo. Also feel free to refine it, so it looks better :). Thanks for the new feature Scirra, looking forward to it’s development. In terms of feedback, should we just include it in forum posts like this, or would you like it somewhere else (my only current feedback is to also allow instances of one object have parent/child relationships too.)

    Also FYI art credit is in the project.

  • I did pretty much the same thing, transparent canvas overlay. One thing you could do now is use my ElementQuad plugin and render the fluid hidden behind the C3 canvas and then use ElementQuad to use the fluid canvas as a texture. With ElementQuad you can then put it on any layer or z order as needed, including adding effects, changing size, etc. with effects.

  • Fib it's not a timeline animation, I created parent/child relationships between all the parts, starting with the torso as the root. Then I moved the origins to the 'joint' connection with the parent. I then added sin (angle) behavior or tween (angle) to the different parts. With the parent /child relationship it kept everything connected and relative.

    For example, I added rotate to the torso and tween (size) to the torso and the entire skeleton rotates and changes size based on the torso being parent to the entire skeleton.

    newt ik, did someone say ik? Shhhh :)

  • Ashley - thanks for the great new toys to play with!

    I know that more is coming and look forward to it. A really quick comment / question: in the future can we also get parent/child relationships between Sprite instances of the same Sprite object? It seems like it may not be simple in events / actions, but easier in editor (when that becomes available.) Anyway here's a quick test and the C3 project.

    Runtime:

    In editor, showing separate sprites:

    Sample Project:

    gofile.io/d/p4WNWI

  • This is a Construct 3 project template which integrates the $1 Unistroke Recognizer JS library to provide gesture recognition in C3. Add a gesture based interface to your game, good for mobile / touch, create a spell casting interface???

    Example:

    Example template on my itch.io page:

    kindeyegames.itch.io/gesture-c3

    Happy gesture dev!

    The library can recognize the below gestures and you can also add custom gestures at the start of runtime and during runtime.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Update to version 1.9.0:

    08/14/2020 1.9.0: Fix export issues (change spine-webgl.js to an external runtime script).

  • Update to version 1.8.0 to add options for better pixel art renders for the above examples and faster/more efficient skeleton instances.

    • Add expressions TextureWidth, TextureHeight (texture size used to display Spine)
    • Add property RenderQuality, amount to up/downsample original Spine size (increases/reduces texture size used also increases/reduces GPU performance requirement, which is usually less of an issue.)
    • Load skeleton only once per Spine object, other instances of the same object are instances of the skeleton, saves a lot of texture memory to have only one skeleton texture atlas in GPU memory.
    • Move on skelton loaded to after texture has been created for the Spine object and initial animation bounds and other state is set.
  • Sebastien Thanks for testing out the plugin and the detailed results. Always great to get more feedback / use cases.

    I have another update coming which is more focused on making multiple instances of the same skeleton (but optionally different skins) more efficient (reuse Spine atlas texture.)

    For the PMA, the intention is that if you exported with PMA, then you would check that property, but if you did not, you would uncheck that property. If your export and the property don't match, there may be artifacts, which is expected.

    For the bounds and scaling, so far this has been a tough issue to solve directly. Since we are rendering to a texture to integrate the Spine character more fully into the C3 renderer (e.g. we can apply effects, C3 scaling, rotation, Z order, etc.), the size of the texture we render into is generally set once. A work around for now is to add a blank image / rectangle in Spine (e.g. w/ 0 opacity) which will cover the size of the area that the animation moves in. Then the plugin will scaled the texture to that size. I know it's not perfect, but works for me so far. I would also animate any large translations / movement by using C3 events to move the Spine character, but do the in place animation in Spine (e.g. with a big jump.)

    If you are able to add the bounding box rectangle, you should be able to set the Spine scaling to 1.0 and then if your C3 project filtering is set to nearest, the pixel art may be cleaner.

    If you can share you sample project/character, it would help me debug / test on my side.

    You can contact / DM me the project on the Construct Community Discord if you can share it (Mikal is my username their also).

    discord.gg/V6URjBq