QuaziGNRLnose's Forum Posts

  • THREE undefined error is usually from not having Q3DMaster in the layout. You NEED to have Q3DMaster as this initializes the plugins and libraries needed for all the other plugins to work, as well as the rendering context.

  • Try Construct 3

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

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

    Collisions between C2 and Q3D dont make sense. They have different camera setups, and Q3Ds collision system is completely different than the one C2 uses., you can either use an invisible Q3D model for collisions, in a container, or use an invisible sprite for collisions with a Q3D object for display. If u need collisions on a Q3D sprite just add a Q3Dmodel in a container... Its actually NOT trivial to add collision support on Q3D sprites, and theyre not meant to be lightweight objects just for display, since you always can just tie them to a dummy Q3Dmodel if u need collisions.

    In anycase, i really dont see why you need 2D coordinates if youre making a 3D game, except for very specific UI overlays. Try to rethink what youre attempting, why do you need the 2D coords so bad instead of using Q3Dsprites.

  • blurymind

    I didn't write the three.js animation export/import, only the code which links it to Q3Ds various systems, and some modifications to the way skeletal animations are loaded. The exporter/importer code is open source and wasn't made by me, but I've done what I can, and have gotten it working with . A lot of animation features that you can use in blender wont export / are missing, and you'll need to figure out what does/doesn't work. Make sure you use the r69 exporter, from the source package in this link (https://github.com/mrdoob/three.js/releases/tag/r69). If you want a working example of animated models try/look at the files in examples/models/skinned, these load properly. the marine_anims.js file has a few animations. I was unaware of the underscore causing issues with morph anims, I'm not entirely sure why its messing things up but ill investigate.

    for the 2D/3D projection thing, there's no built-in method to get the view-space coordinates or projection matrix. Generally that's supposed to be what you use Q3D sprite for.

    If you know javascript/sdk you can modify Q3D easily enough to give you what you need, just look at the tick2 function for Q3D bone where the debug text is displayed and you can add some new expressions that use a similar process. I'll look into adding it for the final update i'll do, but no word on how long that'll be.

    Q3D isn't going to be undergoing any updates for a long time though, it's already grown way larger than I had intended it to when i made it 2+ years ago. There's a build I've yet to release that moves to a slightly newer version of three.js and fixes some bugs but that's incomplete, and after that there wont really be any more updates. It was never meant to be a full-blown game engine with all the features and UX of something like Unity, and frankly it can't become much better because of the edit-time SDK limitations of construct 2. Originally it was just meant as a simple way of getting 3D graphics to display with WebGL in a construct 2 project, and now it's got features like physics, collision checking, animation etc which I literally spent a whole year and a half researching/optimizing/refactoring. There isn't much more I can do to improve it which is worth my time, You shouldn't be using Q3D for a large scale 3D game where an engine like unity would be much better suited and have improved workflow, you should use it if you need some 3D touches to your C2 game, or want to make a simple 3D game like the tiny tank demo.

  • oh man I got old.

  • TiagoCesar

    For some reason i can't get it to run with cordova, but i'm not very experienced with it. Im not sure if any users have had luck getting it to run. It certainly should work (and indeed i can get the renderer to run with internally generated geometry) but something is messing up and external models wont load.

  • lennaert

    I'm not looking for a way to ban players permanently from a signalling server, just from a specific host's room. The host should be able to find the IP's of the peers considering it's communicating with them, but the multiplayer object offers no expression to retrieve it. Banning a player game-wide isn't the issue, i just want players to be able to permanently kick an annoying/spammy/fake/cheating user in their room.

  • lennaert

    For obvious reasons banning players shouldn't rely on info from the person being banned though. Ideally there should be a way for the host to get the IP of a player before they're banned (i assume this info is already known by the host in establishing a connection), store it, and check if a connecting player has an IP in the ban-list.

    really a get peer IP expression is all that's needed, however im uncertain of how feasible this is since I don't know much about using WebRTC.

  • AFAIK wile using the multiplayer object, issuing a ban on a specific peer/IP is impossible? It seems like a pretty important feature that's missing, since this means a cheating player could keep rejoining even if they were kicked.

    I feel like we should be able to get the IP of a specific peer for this reason at the very least.

  • techjunkie

    You aren't differentiating between forces and torques and aren't thinking in vectors/components. I'm not here to be a teacher, the oimo physics actions/forces/torques are no different than those you'd find in any other 3D physics engine. To use a physics engine you need to actually understand what directing a force means.

    Anyway, i can't upload a cap because im using a newer unreleased version of the plugin atm, but heres how you could modify the morph demo to use oimo:

    Image

    Make sure you turn "prevent rotation" on for the character physics. (the properties i used are the ones for "Q3DModel") that you can see.

  • techjunkie

    Please don't edit your old post to hide that you're asking the same thing again when I didn't answer. You need to learn some basic physics/dynamics and trigonometry or else you'll have far too many questions to move forward. The questions you're asking aren't even clear/don't make much sense, but a little bit of research on forces and vector math would give you the answers you're looking for.

  • Q3D isn't tested in r227. Also that doesn't tell me which actions caused the crash, it's almost useless to me in fixing the problem.

  • Q3D can't really do what that example does in an EASY way. The only way would be to write a custom vertex shader (this is not something Q3D trivializes, you'd need to be pretty good at javascript and GLSL and know how three.js/Q3D work).

    You could of course just import a model of terrain though if you want static terrain, or use morph animation to fake the wobbliness. Getting collisions to work would be a whole other story too.

  • ramtinsoltani

    You can learn how obscure things work by looking at all the runtime code etc. but it's a lot of work and generally you dont need much of the functionality except in very fringe cases.

  • techjunkie

    Yes, it's based on oimo.js, however I've modified it somewhat to include extra features/fix bugs.

  • techjunkie

    "angles" don't particularly exist in any simple way in 3D. For this reason 3D physics use vectors to indicate directions of forces/torques (this is pretty standard practice, you wont find much 3D math/physics relying on a system which uses angles since they can have weird singularities/gimbal lock). You'll have to apply 3D force with the directions/components of the angle you want to point at. use sin/cos. something like x:cos(self.Rz),y:sin(self.Rz), depending on how you want your coordinate system set up.