cesisco's Forum Posts

  • cesisco This is now fixed without having to do the transmissive fix, in r500.

    Thanks for the tip justifun !

  • This was the solution a couple of years ago for the microphone permission prompt appearing every time. It could still be relevant.

    In the exported XCode project, you need to add a function to this source file: "CordovaLib\Classes\Private\Plugins\CDVWebViewEngine\CDVWebViewUIDelegate.m"

    Function to add:

    - (void)webView:(WKWebView )webView requestMediaCapturePermissionForOrigin:(WKSecurityOrigin)origin initiatedByFrame:(WKFrameInfo *)frame type:(WKMediaCaptureType)type decisionHandler:(void (^)(WKPermissionDecision))decisionHandler API_AVAILABLE(ios(15.0)) API_AVAILABLE(ios(15.0)){ decisionHandler(WKPermissionDecisionGrant); }

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • I think there's a bug in 499 new PBR light version with the shadows. We'll see if it gets resolved next beta.

    For now you can turn up the transmissive material to 100% to resolve the black areas.

    Yup, the “transmissiveness material" to 100% fixed it. Thanks.

  • Hi, I’ve been trying out the new 3D lighting to achieve that kind of “global light” that we usually see in 3D platformers. In r498, I could get a good enough result using three lights, but when I opened the same test project in r499 with the new PBR lighting model, I’m getting some weird results. I’ve tried different light types and settings, but I can’t seem to replicate the lighting I was getting in r498.

    I guess that, usually, in a 3D engine, that kind of “global light” should be achievable using a Directional Light. Any tips?

    r498

    r499

  • > Those who think it would be nice to have it in C3… do you have any examples?

    I’ve been working on a fairly large project for the past few years. A capable built-in AI would definitely be useful in my work.

    Everything from automating tedious tasks - like moving an instance variable from an object to a family, converting a frequently used function to a custom action, finding/replacing text across hundreds of expressions - things like these take a lot of time in a project with ~20K events. To more advanced stuff: analyzing my code, help with optimization, debugging.

    Yeah, automating tedious tasks is a good use for AI, but will it justify the effort to implement it and the extra cost we’ll have to pay?

    We can already use AI for more advanced stuff if we combine C3 code scripts with VS Code, but for the event system, I assume it would be a much bigger and harder task to implement.

    Anyway, anything related to automation and productivity, I’d say it’s good. But I get the feeling that beginners and some other users will assume “AI Features” means “making games from prompts”, like what’s happening with music and art in general.

  • I love AI for productivity tasks, I use it all the time, but honestly, I can’t see a practical use for AI inside C3. Those who think it would be nice to have it in C3… do you have any examples?

    If it’s that “Make me a crappy game” magic button, then I’m totally against it, because that just enables people who already make crappy games to make crappy games even faster.

    Anyway, we can already use AI to generate code in JS/TS.

    EDIT: Just to be clear, I’m not against using AI as part of a game/app’s architecture (I’m actually the developer of the C3 OpenAI Plugin Suite addon). But an addon is meant to enhance a game that already stands on its own. When a game depends on AI just to exist in the first place, that’s where I’m against it.

  • > 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🤮