After installing the add-ons I've tried to open the c3P files, but the same message keeps popping out.
"Failed to open project. Check it is a valid Construct 3 single-file (.c3p) project"
Any idea what may be happening?
Construct 3 3DObject Plugin
Log in with itch.io to leave a comment.
After installing the add-ons I've tried to open the c3P files, but the same message keeps popping out.
The latest, I just updated it.
After a lot of testing I managed to open it, running the browser with administrative rights solved it.
However, it's kind of weird that only your demos presented these issues.
The chrome console sent this kind of errors; I'm leaving those here in case you find it helpful.
Thank you very much for your fast and kind reply, you're the best.
This is an awesome thing to have exist, thanks so much for this.
However a limitation I've run into while experimenting with it to double check what it can achieve, is no matter what I can't seem to get 'backface culling' to work for it (so you can see through the back of something, e.g. to achieve targeted toon outline with black texture+backface culled). I've tested different material settings (using blender), editing the file itself with a text editor (""doubleSided" : true," exists which I thought my be the term required, but true or false changes nothing), all the blend modes, searched through here/the forum thread in-case, etc.
Would appreciate knowing if this is a hard limitation, something I missed, or something that just needs to be parsed from the file in a possible update. Note that this worked without issues in the babylon.js sandbox.
Hi! Thanks for trying out the addon.
One of my goals for this addon is to use the exposed C3 SDK, to keep compatibility with C3 as time goes on. The impact of that is some limitations, due to C3 limitations around how C3 limits changes to the webgl render, fragment and vertex shaders. So, in those regards, material settings in blender are generally not supported. Only simple base color texture is allowed in the render. In addition, C3 does not enable webgl render back face culling (through debug, I have found that it is disabled, just as an experiment I have tried forcing enabling it globally, but other C3 non-3DObject objects are not rendered correctly.) There are also other C3 issues around transparency and ordering.
I imagine it works well in the sandbox, since babylon supports full Metallic-Roughness PBR model.
If you want to share a project, so we can experiment, let me know.
The only _slow_ way I know of doing this, would be doing back face culling on the CPU during render in the addon, which would chew up a lot of CPU perf.
Thanks a lot for the thorough response.
Yeah I imagined it wouldn't be able to do much relative to blender materials, but I also imagined backface culling was about as regular as it gets to the point of expecting that be the default, so was surprised when I couldn't get it.
Yeah that CPU culling doesn't sound like a possible solution to be trading that much performance away. When you say force enabling of back face culling causes issues with non-3DObject objects, does that mean if your project just uses 3DObject's then, this could be an option? Or does your followup comment mean there'd also be further issues introduced if trying to take advantage of 3d located particle sprites too like in your 3DMeshPoint example?
I've got a blender, gltf, and minimal project (the model in it) here. Also a minor and not so minor thing, in the editor the 3d model textures are softened-but it does respect the nearest/point setting when you play the scene so it's not a big problem if that can't be resolved. However also, maybe a limitation of C3, possibly a rendering option though, but the softening of the texture also softens the alpha, and this causes that to pierce through other object as seen here (the left side has separated objects where as the right sides are merged so you can see it pierces per object).
Would be awesome if you could make some advancements with this as backface culling is an especially valuable technique when having to work with a more restrictively performant 3D environment, but I can understand if it might not be possible. Appreciate you're still willing to try and tackle it/have already made attempts.
Thanks so much for that :) . Looking at it it seems everything by default for some reason is backfacing (you can see the text rendered, even if on a '2D' layer, disappears with back culling).
It'll be a bit awkward, and limiting/additional steps+triangles required (duplicated and normals flipped) to fix areas of a model you actually need to see both sides of. However for the scope of the game I'm wanting to make, this solution will allow me the end result I'm looking for so thank you very much for that. The trick required to finish the effect is having to flip all 3DObject normals before exporting, that way you can hide the 'front facing' faces (that are now back facing), and hide front-facing instead. This way regular construct objects (at least besides construct 3d shapes) will stay visible.
How do you import a model? I do this:
And I get this:
bug z-elevation ?
It looks more like the typical difficulty with 3D transparency, sorting, depth buffer and render order. It is not yet easy to solve in C3 (or 3D engines in general!)
Yes. I think too... this is C3 trouble...
You great man. Best regards!!!
Have you considered point light sources (no LightLayer3D) and working with shadows.
I remember the Q3D (banned by Scirra) on the C2. Point light sources worked very correctly there. You had to place them as a 3D model, adjusting the height... but they worked...
Thanks for the comments.
Point light sources need more information exposed in the C3 effect SDK, I have requested this, but no response yet.
In general 3DObject is not a full scene 3D addon, it is focused only on the model itself/object itself. I would classify Q3D/three.js/babylon.js as more scene based engines.
cant run 3DMeshPoint ... it says i need remote sprite plugin.
Thanks for the report, will update later today.
When will the plugin be improved?
Hello. Very very great work!!! I like you.
One question - how fix it )))
This is standard 3Dshape with additive
but. idk... him correct work for other model
This definitely looks like a transparency / depth buffer / render order issue. Is the light cone a 3DObject or a 3DShape? Have you tried placing the light cone on a different layer (probably a higher layer)?
Cool looking art! What kind of game is it?
Hi. I have solved this problem. You need to add Z-elevation. When 2 models are on 1 line, one model overlaps the other. Not mash on one Z-elevation. Center point model in one z-elevations. Model with additive display - removes part of the other model.
>> 3DObject or a 3DShape? - any maybe, i/.m use both
But i have new. 2D transparent sprite placed in 3D layer ))) any z-elevation... sprite with any blendmode if z-elevation with "-"
>>Cool looking art! What kind of game is it?
Thank you. my wip.
I buy this plugin. But Why different color?? original vs my construct
The plug-in only works with diffuse textures (albedo), not bump map, normal map or other texture shaders, I wonder if the model you are using is more complex in terms of textures and shading. Only the diffuse texture will be rendered. Can you share the glb model?
ok I see. Can you tell me how to convert from blender to diffuse texture?
plz your mail. I send to my modeling data
Im trying to shoot 3d object missle in fps view, how do I set angle of the model towards look direction with the x angle? Anyone have example???
thinking about getting construct 3 with this. can this run about 100 low poly animated models on screen without lagging? ive tested with the 3d cubes only and that was fine.
it can run 100 low poly models, how ever you'll experience lag while working on the game. but when the game is exported most of the lag will clear up. I also recommend adding an optimizer script like this help reduce lag.
thx bro ill use that, does setting object visiblility help? or is it only the animation rate that matters
both are important but animation rate costs the most cpu usage. I believe that even if you change the visibility, the animation is still calculated to its fullest so its still best to reduce that to keep smooth gameplay.
I am not sure what you mean, can you provide more details?
ah, no it’s not, but that looks really interesting. I imagine you would have to render those as webm or sprite sheet to include in C3.
might be able to with this?i dont own construct 3 yet but will test in the future.i have used effekseer for unity in the past
am i doing something wrong? 😅
thanks for your hard work。the uv ctrl is real nice,and i hope we can ctrl mesh point，so we can make a man hit 3dobj obj transform at hit point，and ctrl more element like bone，it，must difficult to do it
I'm interested in creating 3D games in Construct3 with Minecraft-style graphics, but I'm new to 3D. How do I create the 3D models? i.e. what free tools/formats are best?
You can look at using 3DShape for Minecraft style. 3D models, I suggest looking at tutorials for 3D tools (blender, glb format, etc.)
I love it - but one problem cant apply car behavior? I can accelerate but cant steer? I can also rotate xyz but doesnt update car.movingangle if i do that
Thanks to Dev - creating a sprite and pinning the 3dObject to it did the trick (also put the rotation update in everytick seemed to be more reliable than pin behavior)
You probably should just use an invisible sprite object with car behavior and add the 3D model as a child to it then change its rotations to the angle of the sprite however is appropriate for your game. C3 only has one rotation in 2D that it understands and models have three different rotation values that are unrelated.
Hi, I am new to 3d in construct. Is it difficult to use?
I would recommend trying the built In 3DCamera and 3DShape first to get a feel for how 3D works in C3. After that, come back and check out 3DObject.
works like a charm, so happy I found this <3
one thing though, it seems I cannot rotate an object with actions, I can set angle in properties, but cannot do so with actions.
Even if you add it to a hierarchy so to force its angle, it does not follow, here is a gif I recorded
can this be worked around? I was eager to use this in a project =)
thanks for this addon btw
You are welcome. Have you tried rotate object action?
If that does not work, can you send a link to the project? If you want to DM the project, I am on Construct Community Discord.
Can you describe in more detail what you are trying to do with the 3DObject in regards to an angle? I don’t think I understand yet, because I thought rotation would do what you want.
Try this, and see if does what you want:
Has anyone figured out an efficient workflow for taking the Synty POLYGON characters, importing non linear animations for them and then exporting them as gltf? I've been trying all night, trying mostly with blender but also trying gltf export plugins in unreal engine that didn't work. I just wanna build up my library of animated characters in .gltf >< not a lot of gltf model packs online except for quaternius
is there an update planned?
Is there some way to pin an object to a position on a model? So when the model rotates or moves via animation etc, the object will stay at that same relative position.
No not yet, in fact the gltf format does not have a center point per mesh. I may look at this in the future and if so I’ll probably do average, which will cost some performance.
That's fair. I figured you would have to do something C3 side that would be at the expense of performance to some extent because I've made stuff in Blender and didn't see a way gltf could store it.
It would probably still definitely be a useful feature if used appropriately. Like attaching objects with collision boxes to damage the player if a limb hits them or chain models together maybe.
Currently I'm using the plugin for giant bosses in my first person horror game and some other various things that only it can pull off. Otherwise enemies and stuff are like DOOM billboards. So pinned objects might work fine in that setting.
This is a great plugin though. I've been using this stuff since Construct 2 and I never thought we'd be having full 3D some day even if only cosmetic.
Hi there! I am trying to import a .glb into the engine and it's offsetting my origin as well as being (I think) invisible. I tried opening the example scene and changing the name of the lava dude to my model but nothing happened, so i made a new object in that scene and am seeing the offset and invisible issues happening in both a fresh project and the demo.
I am using firefox, not sure if that matters. Happy to jump into discord if that's possible or can post vids/pics here. Thanks!
(notice name on bottom of image, the right side lava monster is set to the same)
Can you share your project and your glb file?
Did you try your glb file in the Babylon sandbox? If so, how did it look?
I use sendgb.com to send files if you need something to send with.
it looks totally fine in the babylon sandbox, definitely gave that a shot first. I am happy to share my file and project, do you want to DM me with an email to send it to?
just sent an email you your info@kindeyegames address, looking forward to your help
It looks like the origin/center of your model is far from the center of mass. I imported the glb into blender and set the origin to the center of mass of the object, exported it again and it appears fine in a simple example project.
that's wild, just got a re-exported file from the artist with everything zeroed out but it's still happening in a brand new clean project. Maybe because it's from 3DSmax?
looking at it in blender, the pivots are in the right spot. It is offset because it's an "upgraded" version of another object that needs to have consistent center points. It's particularly odd that besides the offset, the mesh isn't able to be seen at all
So i just had my artist export from blender and it works! Seems like there's something going on in the export from Max that the plugin doesn't like, something for your backlog I guess :) but thank you for your help!
You are welcome and good luck with your game, looks interesting! Looking forward to seeing the 3D models in the game. To me it seemed like the origin was the issue, I don't know if blender and max handle that differently. Perhaps it's something else though if you don't do any origin changes in blender before export and that just works.
Generally you’ll need to use things like angle(player.x, player.y, object.x, object.y) to get angle between player and object and apply it to the 3DObjext rotate ACE. It’s not really like Unity, you need to use C3 events and ACEs.
Hi. Can you help me with "Error loading GLTF:RangeError: Offset is outside the bounds of the DataView"? I've downloaded a GLTF file from Sketchfab, and after importing, I get that error.
The plugin is too resource-intensive, FPS drops below 20 on the Ipad M1, although there are only 20 simple cube models on stage (with lighting effect)
Can you share your project, so I can see what it is doing (I use sendgb.com to send files)? On an iPhone I get around 40 starships rendered before I start dropping below 60fps. On desktop about 10X performance. I am planning on looking at this in more detail next week to see if there are optimizations to be done for some mobile devices.
Hi there - help please.
With regards multiple instances of the same 3d object.
Can each instance have a different model etc?
You can - see this dev post for some discussion on it:
In general, I don't really recommend it unless you have a good use case, since it can cause some confusion or extra memory usage if doing duplicated models (each instance will require storing all the model's textures.)
Can you say why you need to implement your game in this way?
Are there any plans to update the plugin?
I am continually updating it, the last time was as recent as last week.
you can make the effect of glowing objects? like here -
This would be a separate effect, separate from this add-on. C3 effects are limited, especially with camera rotation included, so seems difficult.
And whether you can integrate Three.js, for casting shadows and light or something like that
Ah, this would be better handled as another plug-in for C3, perhaps someone else will do that.
This works so good I'm ashamed I only paid 5 bucks.
can you do 3d text plugin?
What kind of 3d text, can you show some examples?
is these C3 build support?
Is there a way to force the 3D object to appear behind objects on layers above it? I'm having an issue where the 3D Object is sitting on top of the gameplay as intended but is drawing over menu items that are on global layers. Thanks for any hints you can provide!
Is the 3DObject on a lower layer, than the global layer? If so, can you make a simple project showing the issue, so I can debug? You can share a file with sendgb.com.
Hello! I don't know if this is the place to report an issue, but I've been having some trouble with the models I've imported
I made my models with Blockbench ,exported them as GLTF and imported them into Construct 3. But when the model opens, it's always missing one entire object from the model (since in Blockbench you model only with cubes, one entire cube is missing from my model)
Do you know what I could be doing wrong?
Thank you in advance
Not sure, hard to tell without an example. Can you post a link to a model or c3 project?
here's the link of the project
and here's the link to the .rar with the models and the models' textures
I think it's important to notice that the models in the project are .glb, and the ones that I sent you are .gltf, but all I did was convert them in that debug website that you recommended
I see that one of your cushin was missing. I fixed that by importing gltf model to blender and exporting it as glb 2.0, check that with rest of your models, they should be fixed by this method ;) (Sorry can't attach screenshots, I'm getting errors by itch.io.)
it worked! thank you so much!
One fix was added here: https://kindeyegames.itch.io/c3-3dobject-alpha/devlog/378121/fix-glb-import-fix-...
This should make the glb files work (also thanks to Zaykoworks for the additional idea for a workaround.)
In the above post, I also noted why the original gltf files do not currently work, so please continue using the converted glb versions for now. I now also have a good example Blockbench gltf file to work with to see if I can support it.
Another fix to support the original Blockbench gltf file with data URIs, try it out and let me know if it works for you.
hello, I thought of something, to do a 3d collision detection I can't impose a condition in which if the point is one of the points of the gltf file, the player cannot cross it? Is there a way to know which are the points of the space where the gltf exists and prevent the player from going there?
I can add expressions for the size of the bounding box in 3D coordinates (min x,y,z, and max x,y,z). From this, you could create an axis-aligned 3D bounding box and do rough AABB collision detection: https://developer.mozilla.org/en-US/docs/Games/Techniques/3D_collision_detection
thank for reply, but there isn’t a way for get all the points of gltf object, and prevent the player from going there?
No, that would be a huge number of points for any kind of complicated shape and you would need to create a 3d representation of the shape to check on the intersection.
This is why most simple 3D engines use much simpler 3d colliders, like boxes, spheres, and capsules to use as collision shapes (broad phase collision detection). After that, if a more precise collision detection is needed, it gets complicated quickly, making a more precise representation of the object and checking for the intersection. I suggest starting simple first, adjusting the bounding box up or down a little to see if it is good enough.
If you need much more precision, you might think about moving to a full 3D engine (Unity, Unreal, etc.) that can implement mesh colliders.
First I would like to say great plug in. Thank you for the great work.
But I have one small request. When I rotate a model around any axis, the positions of the 3D model in the browser debugger is constantly updating.
It looks like this:
...and so on.
Turned off the debug switch in the 3D Object settings and kicked out the browser plugin altogether. Happens nevertheless.
So you can't really use the browser plug in of Construct anymore.
Yes this was for plug-in dev internal debug. I was going to wait for the next release to turn off, but I will do a quick patch and upload today instead.
hi i have a problem, I would like to solidify the imported gltf object and not the rectangle of the 3DObject plugin, do you know a way to do this?
You have to implement a 3D collision system yourself, C3 does not have support for this. I have seen and implemented examples of using collision filtering based on zElevation. More complex is to use a 3d collision JS library like cannon.js or simpler AABB bounding box collision in JS or C3 events. JS implementation is described here: https://developer.mozilla.org/en-US/docs/Games/Techniques/3D_collision_detection
Hi, can you help me plz .
Cant switch animations on 3d model with construct 3 events. Like platformer moving or with global variables. Animations do not work if more than one is used. for example, if the character is moving then walk animation, if not moving then idle. When I remove one, the other works. Only here the logic works the other way around, that is, if the platformer moves, then the walk animation does not work, if not, then it works.
Thanks in advance
it’s constantly playing the animation from the beginning. Add a condition “if not playing animation ____”
there’s a free behavior plugin you can get called “FSM”. Use this to change states and then have the animations activate on the “->on state change to ___” condition.
Yes thank you. I figured it out after an hour of testing :)) I thought it would work like basic animations in construct. And thanks for the benavior plugin, it will be very useful
I found a solution to my problem with the help of an additional "trigger once" event. Turns out the animation was playing from the beginning each time (stuck on the first frame), so it looked like the animation wasn't working :) .
why it does not work with GLTF files created with c4d, iclone other than Blender? any idea?
Do they export glb? Try glb with textures included.
I have a question, how do I stretch my model, no matter how much I mess with the scale values of x, y, . It's still the same size getting disproportionate.
Use xscale, yscale, zscale (these are divisors, smaller number makes model larger, similar to C3 zscale). Or use 'scale' to increase all (this is a multiplier, higher make model larger.)
I would like to know if the size of the model in the scene impacts the performance of the game. Due to the terrain limitation of Construct in 3d I would like to create a terrain model, but my layout size is 5000 by 5000, does a terrain like this matter greatly impact the performance?Em
The fillrate (number of pixels/texels) and number of triangles in the model will impact performance. Is all the terrain visible all the time? If not I would cut up the terrain into separate models, so offscreen areas wouldn’t need to render.
I'm having some problems
My model is upside down
I tried XYZ. Three Angels couldn't get him up
When I changed the scale, only one side was stretched
How Do I fix it
if you can send me the model or project, I can take a look.
Problem solved! ! I found the reason.
There's a new problem
When I'm in FPS mode, my orientation angle is about 60-90 degrees（When I look up,） The model will disappear.
I looked closely and I realized that maybe when the implementation left, the bottom point of the model, the model would disappear, so when you look up, just leaving the electricity at the bottom of the model, the whole model would disappear
Did you only change zScale?
If you want all sides changed, change scale not zScale.
How to download previous version?
I can reupload a previous version, which version do you need? Is there a bug with the current version?
I added a couple of older versions. Is there a bug with the current version (for example are you using the image texture and it is showing as white? That usually means there is no material in the gltf/glb file.)
If you are having issues with an 'Image texture' rather than an embedded texture, please also see this devlog: