Funky Koval's Forum Posts

  • A source file is perfectly fine - great demo - thank you, newt and Merry Christmas!

  • Set Front face object to a Sprite, and use the Sprite's animation?

  • Mikal

    Seconding Mattertainment , is texture control close on your list of things to tackle? It's probably the last major outstanding feature...

    Noice trick with discard in the shader - it allows the "transparent" objects to be a part of the opaque sorting queue.

  • I'm just going to suggest something out the left field...

    Firstly, I had the same issue and need (consistent mouse pointer position) - what I found out was that the actual canvas size was different from the size specified in Construct - strangely only horizontally, and by a very weird amount - I got that "correct" value using the PlatformInfo Object - PlatformInfo.CanvasCssWidth/Height - piping that into my pointer formula gave me consistent behavior.

    Sidetracking aside, why not use the Pointer Lock feature coupled with On Movement and Mouse.MovementX/Y to drive the cursor sprite? Along with saving last position when doing any layout switching, that should give you full control.

  • Mikal

    Hmm, I have not really thought about that. Do you mean updating the model's texture during runtime like an animation?

    Yup - originally, I thought the ideal way would be to handle it like Q3D Model/Sprite do - allow for animation folders/sequences/playback controls... But for performance and simplicity, the approach R0j0Hound is using in his Rojo3d engine is actually better:

    There is a single action to apply a Sprite's current texture to a model - the link is non-dynamic, so when the texture on the Sprite changes, the model retains the texture give at the time of the action's execution.

    Using this action and the already existing Sprite conditions, animated textures could be implemented very easily and in a flexible manner.

  • megatronx

    The simplest way, assuming your terrain is a regular grid as seen from the top (only Z values differ) would be to store position or Displacement Point coordinates and z height values of the terrain into a 3-dimensional Array (x=posx/disp point x, y=posy/disp point y, z= z height) and then, on runtime, calculate the position of the player in relation to 4 nearest points on the grid and calculate the player's Z by averaging the 4 Z values based on distance to player.

    I'm suggesting Array for faster lookup but you could also read the point data directly off the distorted Sprite - but in my tests, it's slower than the Array method.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • R0J0hound

    No worries - I'm glad you're still on it.

    megatronx

    Not to sound like a buzzkill, but I don't think you should post pieces of Q3D publicly - it is a commercial plugin.

    In lieu of proper raycasting, since you mention it's for terrain snapping, you could cache height data into an array and do positional interpolation. For anything more 3d, spherical collisions would still be doable...

  • Mikal

    Quick questions on features:

    -are you planning on removing the limitation of the object's texture being larger than spritesheet size?

    -are you planning on allowing for texture/image sequences (ideally something like Q3D, handling it like the Sprite object)?

  • I know about letterboxing, but ideally I need my project to work on devices with a variety of aspect ratios and resolutions - due to the style, it should run in device native res without any black bars, filling up the whole screen.

    Currently, I have a starting event group that checks for resolution and distorts every sprite according to that - it is not efficient nor elegant and that group will continue to grow as the number of unique distortions increases, but it works...

    However, I believe that now, with a fully controllable 3d camera, distorting some scene elements non-uniformly, based on resolution, is not really the proper behavior.

  • Ashley

    Is there a way to use the Z Scale property with mesh distorted Sprites, besides re-distorting their individual points at res change? In my particular case, re-distorting causes a noticeable delay due to the number of unique distortions and Sprites that I'm using.

    3D Shapes have the Z Height parameter - Sprites do not.

    If not, would it be possible to either have a per-Sprite Z-Scale parameter to scale the whole Sprite in Z by a user defined amount, or alternatively, scale the Sprites automatically as the global Z Scale changes?

  • Panoramic, meaning 360 degrees spherical panoramas?

    Bare Construct 3, I can think of two ways:

    -mesh distort a Sprite to create a sphere (look for R0J0Hound's experiments thread - he has an example file there) - then set up a 3d Camera and rotation controls so you can pan around the panorama - this does not require any conversion to your panoramic image.

    -convert your panorama into a box map ("skybox"-type) - map it into a Box 3d Shape and again, set up actions in the 3d Camera for panning of the view.

  • That's to be expected. They are literally in the same space and 3D mode sorts by distance, which for both is identical. Switching from 3D mode will solve the issue.

  • R0J0hound

    Another feature I would love to have would be an animation system like I suggested in the Triangle3d thread:

    Extend Set object mesh with a parameter called Blend Time, defaulting to 0.0. Then, if the new mesh has the same number of vertices as the currently assigned one, the vertex positions will interpolate from the old mesh to the new mesh over Blend Time. It would be up to the user to make sure the vertex order in the two meshes is correct. If the vertex number is different, the blend would not happen and the new mesh would be loaded immediately (current behavior).

    What do you think?

  • R0J0hound

    1. Yes - that's exactly it. I completely missed it...
    2. Sorry, wrong terminology - I mean having an Additive or Multiply Blend Mode for individual objects.
    3. Yes please. I don't know at what level of fidelity performance will suffer, but I would suggest Diffuse and Emmisive as a minimum.
    4. Yup. Omni, even without shadows would open a lot of possibilities. For any distance-bound lights, I would just have max light distance and an option to specify a decay curve (linear/square/inv square etc.)
    5. Yes - absolutely - it can't get any more optimized that using that condition. I withdraw my request - this makes the live link unnecessary.
  • After using the plugin for some time, I have a bunch of feature requests, if feasible:

    • Can we have a per-object opacity parameter which is multiplicative with the texture alpha (like object color-object texture)
    • Is it possible to have different transition modes for objects? ATM, I can only think of Additive and Multiplicative...
    • Can we have the ability to add an emissive texture to the object? Besides artistic possibilities, it would allow faking localized light sources...
    • More light types please. An Omnidirectional light even without shadow casting to complement the existing Directional one would be great
    • Right now, loading texture from Sprite is not a live link - it will only load the texture at the time of issuing the command - is it possible to make an option to make it a live link? That way, one could set timing/looping of animated sequences in the Sprite and just link those. Currently, I'm working around this by setting object texture once, and updating the texture under that tag every tick.