Mikal's Forum Posts

  • Thanks for the reply and info.

    Do you see any issue with my work around then? Apply a simple shader first that does not use the texture uniforms and then after that apply the shader with that uses the uniforms, since they are then set and available (works for me now.)

    I know there could be some perf impact, but will deal with if we have to.

  • Also, good timing - on the Construct Twitch channel, they just started a tutorial on developing a dialogue system with JSON!

    twitch.tv/constructteam

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Thanks. The uniforms do get set when you have 2 or more effects on text. Are they then set to the intermediate FB source rectangle and pixelSize? That’s my work around for now to stack two effects on the text object.

    Could you do the same when it’s just one effect? Don’t you render the text to an intermediate texture already and you should know the source rectangle and pixelSize of that intermediate texture and could set the uniforms based on that?

  • This is not JSON driven (is that a requirement?)

    I like this one, it has a nice display and a built-in editor. Also paid. Check it out:

    scirra.com/store/royalty-free-game-templates/dialogue-system-template-699

  • There is a JSON plugin for Twine and a paid Twine plugin for C2 (and I have a C3 conversion.)

    So you can write dialogue in Twine output to JSON and then import to C3 and use Twine plugin to output.

    C3 Twine plugin (paid)

    colludium.itch.io/twine-plugin

    Twine: twinery.org

    Twine JSON export: github.com/DigitalCarleton/Prairie/wiki/Exporting-Data-from-Twine-to-JSON

  • I will file this as bug if needed, please let me know. However, I am checking if I am missing something fundamental.

    I am creating a new shader and found that the pixelSize uniform was set to 0,0 when I applied the effect to a 'Text' object. I checked this through running remote preview and using spector.js to inspect the uniforms for the effect when the 'Text' object is rendered with the shader. When I apply the same shader to a Sprite object it works fine.

    After seeing that, I tried some other built-in effects on the 'Text' object, to see if I could see a similar error. I found that when I applied 'Bulge' to a text object, the text disappeared in the editor. I then tried remote preview and spector.js with this and found that srcOriginStart and srcOriginEnd were both set to 0,0. So the bulge shader also 'failed'.

    I found that the effects started to work when I stacked another shader (any shader) on the text object (so then there would be multiple renders to multiple FB and then the uniforms were properly set for the fragment shaders.)

    Should I be doing something special with my shader to make it work with the 'Text' object? If there is, likely the same thing should be applied to the builtin Bulge effect also (and perhaps others?)

    Here's the spector.js output for looking at the Bulge effect on the text object:

    Thanks for the help Ashley!

  • This may be due to default resolution that we are rendering the Spine texture, I think right now it's set to around the Spine bounds in pixels. I will take a look at the resolution of rendering and reply back to this thread.

    One other thing you can also look at is the output of the Spine texture atlas png and make sure the resolution of the output of the textures from Spine are at the correct resolution you want to use.

  • MotionBlur effect with an example:

    construct.net/en/make-games/addons/337/motionblur

    Motion Blur w/ x,y directional blur. Based on feedback from TackerTacker, added some blur _in front_ of the direction of motion also which made the effect feel a bit better.

    Example:

    If you do something with it, please share here or tag me on twitter:

    twitter.com/kindeyegames

  • For mobile, I would suggest trying using one of the versions with a lower number of samples (and lower quality) see the github link on the addon documentation page for those.

    For mobile effects, it's always good to benchmark early and tweak as needed. For example, if you only need the GodRays to cover a specific area, size the sprite with the GodRays effect to the minimum size required.

  • New C3 effect to have fun with, it's pretty versatile, so if you do something new with it, please share in this thread, so we all can learn together!

    construct.net/en/make-games/addons/334/godrays

    It was ported from medium.com/community-play-3d/god-rays-whats-that-5a67f26aeac2. Which in turn is based on: developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch13.html

    Some examples (the Necromancer one is based on a project from TackerTacker):

  • I think the website has the details. I bought the full collection myself when it first came out.

  • Check out this (paid addon):

    constructcollection.com/construct-mobile-notifications

  • Thanks to Ashley for pointing out Touch End vs Touch Start, which helped me in my orientation project too! Now I don't have to do that ugly hack.

    So I think you might just need a one time call based on Touch End and then do a simple JS call to: Tone.context.resume(); You can still be lazy :)

    This works for me on mobile:

  • This is not a solution, but an interesting effect and I wonder how to use it...

    This is what I see:

    - Start remote preview on iPhone in Portrait

    - Once loading in Safari, rotate iPhone to Landscape

    - The address bar goes away.

  • Lastly, there is a hint in the Tone.js source code and what function to call with your button press / touch:

    ///////////////////////////////////////////////////////////////////////////

    // CONTEXT

    ///////////////////////////////////////////////////////////////////////////

    /**

    * The shared AudioContext

    * @type {Tone.Context}

    * @private

    */

    Tone._audioContext = null;

    /**

    * Most browsers will not play _any_ audio until a user

    * clicks something (like a play button). Invoke this method

    * on a click or keypress event handler to start the audio context.

    * More about the Autoplay policy [here](https://developers.google.com/web/updates/2017/09/autoplay-policy-changes#webaudio)

    * @memberOf Tone

    * @static

    * @return {Promise} This promise is resolved when the audio context is started.

    * @example

    * document.querySelector('#playbutton').addEventListener('click', () => Tone.start())

    */

    Tone.start = function(){

    return Tone.context.resume();

    };