cesisco's Forum Posts

  • > If I understood correctly… just add a instance boolean var to the TextInput ("enable", false by default) and do this.

    This will not work if you have already typing in the TextInput.

    Try doing something kinda hacky like this. (replace the "\" with the desired key)

  • If I understood correctly… just add a instance boolean var to the TextInput ("enable", false by default) and do this.

  • I'm using a paid Eleven Labs account.

    The JavaScript above works fine - sending the request, playing the response in JS, passing the URL of the response to a global variable, then in the event sheet, setting the Audio plugin's "Add remote URL" to that var and playing it (so I can insert effects).

    This is everything I need, but I was trying to do it all in event sheets, but something's not working in the events in the screenshot above. If I download AJAX.LastData, I see stuff like this in the header:

    ID3 #TSSE  Lavf60.16.100

    But VLC won't play it and presumably also why I get "EncodingError: Unable to decode audio data" when trying to play it in the event sheet using the actions in the screenshot.

    I've just tested it, and my events example work fine.

  • Try with a default voice first and do this:

    In the JS function store the blob in the global var

    runtime.globalVars.AudioDataURL = URL.createObjectURL(blob);

    Then in the event sheet:

    -> AJAX: Set response binary to BinaryData

    -> AJAX: Request AudioDataURL (tag "mysound")

    + AJAX: On "mysound" completed

    -> System: Set AudioDataURL to BinaryData.GetURL

    -> Audio: Add remote URL AudioDataURL (type "audio/mpeg; codecs=mp3") as name "voice"

    -> Audio: Play "voice" not looping from Sounds at 0 dB (stereo pan 0, tag "")

  • Hi! First, are you trying to use a custom voice with a free account?

    Also, check the Network tab to see what the blob looks like.

  • Have you tried this:

    Set Text

    "[outline=#000000][lineThickness=0.5]" & "Hello World" & "[/lineThickness][/outline]"

    Edit: You have to enable BBCode

  • I prefer to install C3 as an app instead of choosing a version from the C3 releases page. The problem is that when I install it as an app, it automatically updates to the latest stable version, regardless of the version I install. I need to stick with version 388.2. Does anyone know the solution for this? Thanks.

  • You're absolutely right! It can be frustrating to encounter such an undocumented change, especially if it breaks existing code. Here's a breakdown of the JSON data type issue for sprite frame data in Construct 3.

    In Construct 3 versions before r376, JSON.Get would implicitly convert string values like "1" to integers when used to set sprite animations.

    After r376, this implicit conversion no longer happens. The data type mismatch can lead to errors if your code relies on the old behavior in NYStateofHealth.

    Using the same JSON data, JSON.Get(".frame") would now return the string "1".

    If your code expects an integer and tries to use "1" directly, it might cause errors.

    I‘m still on r388.2, but it looks like it was “fixed” in r390.

    Release notes:

    “Sprite: for backwards compatibility, 'Set animation frame' now treats numerical strings like "2" as indices instead of tags”

  • The deeper I look the more it looks like removing anti-aliasing will never become a standard thing. Which makes sense since anti-aliased and clear type text is better looking in most cases. Most fonts don’t look good aliased.

    Crisp aliased text is niche feature of low res pixel games. The easiest solution is basically using the alpha clamp effect on the text for a general case. But a spritefont will likely look better, but we probably need better tools to generate them from fonts.

    cesisco

    That’s what I tried too. But it’s only a Mac/iOS thing. It doesn’t work for other platforms. Our only solution is a spritefont or maybe use the alpha clamp effect on the text.

    I don’t know if you realized that I was applying that CSS to the “ "Text Input object" to fake it as Text, and that works on Chrome😉. But that would be a nasty workaround to deal with🤮

  • The only trick I can think of would be to fake the Text input object as text, but I don’t know how it would affect performance, layer management, etc. Probably this is stupid. 🤔

    Edit: And probably other drawbacks that I’m not aware of, off the top of my head.

    	#your-textinput-object {
     background: transparent;
     border: none;
     outline: none;
     color: white;
     -webkit-font-smoothing: none;
     -moz-osx-font-smoothing: grayscale;
     font-smooth: never;
    }
    
    • Post link icon

    It's not hypothetical. Disasters have happened, are happening, and will continue to get worse.

    I understand that, it's a valid concern, but it would be easier for you and your conscience to just have a big disclaimer:

    "We do not endorse third-party plugins. Use them at your own risk."

    And then tell the customers to ask the add-on developer for support, as you usually do with Chrome and Apple issues.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
    • Post link icon

    Folks, please remember the goal here is to stop a regular occurence of customer projects being ruined by permanently broken and unmaintained addons.

    Why wait for a hypothetical disaster later when we can enjoy a catastrophe right now

  • sanjibnanda You can check my add-ons to see if it's worth it for you ;)

    construct.net/en/game-assets/addons/openai-plugin-suite-3317

  • It looks there's a change on the last beta for this issue:

    Sprite: for backwards compatibility, 'Set animation frame' now treats numerical strings like "2" as indices instead of tags

  • If I correctly understood, something like this will do the job.