Major Update - now supports gltf/glb and animations 

(Also bless the big tippers for helping with inspiration!)

This plugin loads a 3D Model into Construct 3, similar to the new built-in 3DShape plugin, but the 3D object can be a more complicated 3D model, loaded from a 3D model file format and texture. It also supports 3D animations.

It only supports gltf embedded and glb formats (preferably with an embedded texture in the file, a separate texture png file can also be supported.)

Again, please leave feedback or tag @kindeyegames on Twitter.

Known issues

  • The bounding box may not fully track the model with rotations.

3D Model file requirements:

It's highly recommended to set 3DObject projects to 'regular' z-axis settings.

  • It's highly recommended to set 3DObject projects to 'regular' z-axis settings.
  • Must be gltf/glb embedded format and embedded texture (png, jpg formats are ok)
    • The texture can be embedded in the gltf/glb or supplied as an image in the c3 editor, but the gltf/glb file must have a material referring to a texture if it's not using a solid color.
    • Do not include other non diffuse textures (e.g. normal map, bump  map, etc.) in the gltf/glb embedded files if possible, they are not used, but would still take up memory.
  • It's highly recommended to set 3DObject projects to 'regular' z-axis settings.
  • Be aware of the 0,0,0 origin relative to the model center (affects rotation center and position.) This can be changed as needed with the Set local center ACE.
  • Be aware of the relative scale of the model in model units. This can be scaled up/down with the Set scale ACE or property and xScale, yScale, zScale (note that these are divisors, to match C3 zScale property.)
  • 3D models are available on CGTrader and Turbosquid, but you may need to find the ones that have gltf and texture support. If there are multiple textures, usually look for the ones labeled diffuse or albedo. These will be the base color textures (e.g. not normal maps, bump maps, etc.) You can only use models that have one diffuse/albedo texture or multiple textures. (If you have expertise with blender you can load a model with multiple textures and then bake them to a single texture and export texture in the gltf embedded/glb file.)
  • If a model you use is not available in gltf file format, try loading the model into blender and exporting with the gltf embedded or glb file format.
  • Merge multiple animations into a single file gltf/glb file.
  • If you are importing fbx to blender consider using plug-in to improve fbx import to blender: https://blendermarket.com/products/better-fbx-importer--exporter


Debugging 3D models

  • Load gltf/glb model into: https://sandbox.babylonjs.com/
    • Does it render correctly, have texture, animate correctly
    • Check textures, material, animations
    • Check scale
  • Check the 0,0,0 origin point of your model in a 3D modeling program (e.g. Blender), center your model as needed.

Performance notes

  • Use just a few low polygon models (in the low thousand range, if you have a lot of models, move to the low hundreds range)
  • Animating models require additional performance
    • You can control the animation rate to reduce the required CPU performance.
  • Bake down to a single texture (using 3D modeling tool like blender)
  • Use solid color models without texture (will save texture memory).
  • Use a smaller texture map to save GPU memory (2k x 2k texture takes up 16MB, 512x512 is 1MB)

Basic usage:

  • Use project setting z axis scale 'regular'
    • This sets the z axis scale to the same scale as x and y, which is better for 3D development (and you also can control the project FOV.)
  • Add a 3DObject to the project
  • Add gltf embedded file or glb file to the project (preferred to include texture in the embedded gltf/glb file)
  • If you are using a gltf/glb with an embedded texture (preferred) set the image editor to a solid color, otherwise:
    • Open 3DObject image editor loads the texture file into the image. Note image size must be larger than the Project's setting for spritesheet size (e.g. 512-4096), resize the image larger if needed in the image editor.
  • Test! You can use the normal position ACEs to move in x,y direction and position related behaviors should work (though I tend to lock the 3DObject with other sprites w/ behaviors using events)
  • To change z position, use the setZ elevation ACE (other behaviors or actions which affect zElevation should also work, e.g. sine behavior, drag and drop, etc.)
  • Set the zHeight to match the relative zHeight of the object (used for C3 3D viewport clipping.)
  • Please post feedback and pix/vid of your tests.

Future state if this goes well:

  • *DONE* Support multiple instances of one 3DObject
  • *DONE* More animation ACEs (end of animation trigger, etc.)
  • *DONE* Add expression for current animation time or frame.
  • *DONE* Blend between animation changes
  • *DONE* Support multiple textures
  • *DONE* Support solid color
  • *DONE* Runtime load model (single load allowed)
  • *DONE* Load different model for different instances of the same object (single load allowed, allocates memory on CPU and GPU for each instance.)
  • *DONE* Dynamic change of a mesh's material (e.g. change a mesh's texture)
  • *DONE* Support correct rotation (for mixed multiple node types)
  • *DONE* Improve bounding box and z-height regions for rotated models to prevent early clipping.

Big thanks to r0j0hound on the Construct forums for sharing the gltf parsing and animation code which I used as a base for the gltf integration in this plug-in.

Fire elemental model credit: https://sketchfab.com/3d-models/fire-elemental-05fe96ef7fca472ba0bf753686216002

Again, please leave feedback or tag @kindeyegames on Twitter.

A great video from @FozzleCC describing details of how to use 3D models with the plug-in. If this video is useful for you, please support FozzleCC on his Patreon: https://bit.ly/PatreonFoozleCC

Note one change since this video was produced, it is now recommended to embed textures in the gltf / glb files and 3DObject will use them directly from the file, there is no need to load them into the 'image' of the 3DObject. The image can be left blank or filled with a solid color for easier identification in the event sheet.


If you want to go directly to specific subjects in the video, please see the timecode links below:

0:00 - Intro
2:31 - 3DObject Plugin Overview
6:48 - What is GLTF?
7:40 - Blender Intro
8:53 - Where to get 3D Models?
9:59 - Extracting Unity Asset Store Assets
15:21 - Sketchfab and Blender Reference
16:46 - Merging Multiple FBX Animations in Blender
22:35 - Associating texture to model in Blender
24:33 - Export GLTF from Blender
25:29 - Import GLTF into Construct 3
28:43 - Bake Multiple Textures to One in Blender
34:41 - Setting up Lighting for Baking in Blender
40:56 - Importing Baked Texture Model into C3
42:43 - Getting Free Animations from Mixamo.com
43:23 - GTLF Viewer & Debug
45:27 - Tips on Using GLTF Models & Performance
47:04 - Improve Performance with Blender Decimate

StatusIn development
CategoryAssets
Rating
Rated 5.0 out of 5 stars
(11)
Authorkindeyegames
Made withConstruct
Tags3D, construct

Purchase

Buy Now$10.00 USD or more

In order to download this asset pack you must purchase it at or above the minimum price of $10 USD. You will get access to the following files:

DancesWithPigs-2-2-0.c3p 17 MB
AlphaDiscard-1-0-0.c3addon 1 kB
LightLayer3D-1-2-0.c3addon 3 kB
GLBExample-2-14-1.c3p 4 MB
RuntimeLoad-2-15-0.c3p 10 MB
3DGLBLoadMaterial.c3p 1 MB
FighterPerfLayerLight3D.c3p 3 MB
3DObjectCannon-1-0-0.c3p 857 kB
RocketCannon-1-0-0.c3p 17 MB
3DObjectDC-1-0-0.c3p 566 kB
fxaa-1-0-0.c3addon 2 kB
lava_flow.c3p 100 kB
3DObject-2-31-0.c3addon 58 kB

Development log

View all posts

Comments

Log in with itch.io to leave a comment.

Viewing most recent comments 1 to 40 of 72 · Next page · Last page

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???

(+1)

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.

(+1)

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.

(+1)

thx bro ill use that, does setting object visiblility help? or is it only the animation rate that matters

(+1)

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.

(+1)

Good comments from StarCoffey!

(+1)

Gracias

(+1)

ah ok ty!

(1 edit)

Can you add effekseer for 3D particle effects? 

with this plugin.

I am not sure what you mean, can you provide more details?

https://effekseer.github.io/en/index.html   

Is possible to add effekseer files with this 3dObject? Im new construct. Sorry.

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.

(2 edits)

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

https://github.com/effekseer/EffekseerForWebGL

webgl demo

https://effekseer.github.io/EffekseerForWebGL/Sample/index.html

(1 edit)

Thanks for the pointer. That may help to create a new separate  C3 addon, but it will not help 3DObject play this type of animation.


am i doing something wrong? 😅

use regular z setting, not normalized z.

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

At some point we’ll get that!

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.)

(1 edit)

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)

(1 edit)

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.

(1 edit)

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.

thanks for the fast response! when I look for rotate, this is what I see


then if I choose that action, this is what I see

there is move along angle action but it seems to do something else, I uploaded the project here so you can have a look

https://cdn2.pranta.quest/gltfObjectTest.c3p

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:

I was trying to make it have the same rotation as the player, trying that right awa

oh that works, feeling stupid now, 3d rotation tricked my brain lol, thanks

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?

(+2)

Yes, some changes coming.

(1 edit)

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. 

(1 edit)

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?

(1 edit)

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!

(1 edit)

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.

I just buy these plugin and its amazing . But im kinda new to 3d . do you have a suggestion on topics . i cant  rotate the 3d model with respect to the player  so i assume it should be coded on javascript .. is it behave like on 3d unity ? or shoud i focus on javascript 3d ?

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.
Thanks!

First, check that it shows up ok in https://sandbox.babylonjs.com/ 

If that doesn't work, try importing to blender 3D tool and exporting as GLB.

Which version of the plug-In are you using?

If the above does not work, can you please share the GLTF file (I use sendgb.com for sharing)

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)

(1 edit)

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.

(2 edits)

If it helps at all with feedback from a different device, I use Windows 10 and don't start losing fps until like 900 starships in your example project.

Thanks for the info, happy game dev!

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:

https://kindeyegames.itch.io/c3-3dobject-alpha/devlog/343369/load-model-ace-load...

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.

here is an example of an integrated Three.js - https://dropmefiles.com/cIBUe

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?

I want to rotate the text in z axis but this is not possible for normal text

Not sure of a good way to do this, except to change 3D Camera angle or if you want it as a HUD, but it in a two 2D layer with 0 parallax.

is these C3 build support?

Generally should support, though do not use advanced minification.

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.

I'll hit you up in the Discord channel with a file.

(+1)

For others seeing this type of issue. The problem was the other 2D layers were not set to type '2D'.

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

https://drive.google.com/file/d/142IkcrcrfP4_UBN3Sv8pooKvAWbpCQQM/view?usp=shari...

and here's the link to the .rar with the models and the models' textures

https://drive.google.com/file/d/1rufoD3Pmp0plr_JHfFpdua7E2DmhhoZG/view?usp=shari...

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!

You are welcome! I am looking forward to your game and would be happy to share your videos/game links in a 3DObject showcase.

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.

https://kindeyegames.itch.io/c3-3dobject-alpha/devlog/378151/fix-gltf-import-add...

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:
[481.68552815121427,128.09595206334762,93.11600597748952][452.86811617090655,128.09595206334762,-111.93053470466374][304.9698742241982,438.51172210652123,-91.1447923304571]...
...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.

https://kindeyegames.itch.io/c3-3dobject-alpha/devlog/364109/fix-log-remove-debu...

Waow that was fast. Thanks. ☺️👍🏻

You are welcome, happy game dev!

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

(+1)

thank you so much

(1 edit)

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

no prob, good luck with your game!

Thanks, StarCoffey, for jumping in and answering.

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 :) .

Yes, I use similar for C3 sprite animation and 3DObject animations.

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.

tried, but no luck

Can you share the glb model?

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.


Ícone "Verificada pela comunidade"


(1 edit)

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.

(1 edit)

Hi,

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

Thank you

if you can send me the model or project, I can take a look.

Thank you

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

To be precise, the model disappears when the eye is away from its foot. Is there any way out of this

set the z height using an ACE to the z height of the model.

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:

https://kindeyegames.itch.io/c3-3dobject-alpha/devlog/348439/add-image-texture-p...

I've been having some clipping issues where the models position doesn't match the bounding box which causes objects to disappear during gameplay.  

I can't scale the bounding box to include the model anymore so I'm wondering if there is a way to fix this that I'm just missing.
Thanks~

(1 edit)

There is an ACE Update bounding box, which works during runtime, please try that, it takes a little perf from the C3 engine, so update sparingly if possible (e.g. not every tick). Also, you can adjust zHeight if it's due to the camera looking 'up' above the model.

There is also a new ACE: Set origin x/y which can help 'center' the bbox depending on the 0,0,0 point in your model local coordinates.

In the picture below, is the model the L shaped desk? If you reload the project, does the bbox change to match the L shape? I added a feature to update the bbox on the load of the model in the editor. If you are using an older version of the plug-in also try updating.

I've tried using the update bounding box action, doesn't seem to do anything, the center with x/y action would have to be manually done for every model (everything seems to be off center from the bounding box) and I've reloaded the project multiple times and made sure that it's on the latest update.  I even re-exported the model to have it's geometry to the origin, still is off center.

I have also tried to artificially fix it by adding a plane to the model way out of sight to increase the bounding box, the models sill go past the bounding box, which causes the clipping issu

Have you tried setting z height to increase the bounding box size in z? Is the object rotated? Can you send me the gltf/glb file so I can try on my side?

https://drive.google.com/file/d/1EwqIy0SIKw837BSFnW8gjCFguR0VEuhV/view?usp=shari...

Hi

Discovering this plugin this week and I am very happy.

I would like to know if in the current version I can use this plugin in a serious game. Whether there are limitations of 3D objects created in the scene. The game will have some 3D characters and some objects like trees, things that the native plugin cannot integrate. Thanks and great work.

Definitely take the performance comments seriously it's best for low poly models and fewer animations if possible.

I suggest making a quick test scene to check out the performance.

I have found desktop performance to be reasonable, but mobile performance varies greatly (in general.) iOS and modern android look good, older android phones are usually not as good.

Great, my project is made for desktop, I'll use as little 3d as possible. . Thank you and I look forward to new updates

Is it possible to get per axis scaling?

I will look at doing this.

Overall this is a good plugin but i have a few things i think need fixing
When creating a model it looks super stretched in the editor the only way to see it no stretched is if you boot the game and once the object loads set the z scale to the 3d cams and then run the rotation command, it would be nice to see a zscale option the the object so you can set it there, another thing that needs adding is a re render button because if you change the model it stays with the old one and you have to reopen the project. last the texture on this model is off, i've tryed reimporting and reexsporting but nothing seems to work any ideas? 

Update: I've added animations to the people and now they have the same texture issue as the statue!

(1 edit)

Ok, I think I got this fixed, thanks for the sample models, they render correctly for me now. It looks like the UVs for these models expect the texture mode to be repeated (which is the gltf/glb default.) So, I have updated the addon to have default teture wrap, please try out the latest version.

Also - can you point me at what tool created these models? I am interested in why the uvs are set this way.

Works perfectly! i got the models from here and ran then through a converter, and in the players case it also went through mixamo 

For the stretch of the model, set the project z-xis setting to 'regular'. I've updated the notes to include this comment.

In terms of the texture, if you are not using the texture embedded directly into the gltf/glb file (which is now the recommended way after I added this support) and you are using the texture in the image editor, the texture size must be larger than the Project settings sprite sheet size. If you need to continue to use the texture in the image editor, I recommend setting the Project sprite sheet setting to 512 and then resizing any image textures to be larger than 512x512.

In terms of updating the model on the file name change, I have added that to my list of possible future enhancements.

(3 edits)

I am using the embedded texture, also you cant change the z-axis its read only
Models I'm using:

https://drive.google.com/drive/folders/17UAx6R6pWFqraifpFawOt92q0ow5B4wI?usp=sha...

Thanks for the model reference, there does seem to be some different formatting for these models compared to the ones I use, I'm taking a look.

For the Project Display -> Z axis scale, you should be able to change to regular (I can), if you still can't can you send me your  project, so I can take a look?

I get this error when trying to load a simple cube gltf file. Happens as soon as I assign the file path for the 3d object. Any ideas?

 

Type: unhandled rejection
Reason: Error: Cannot read properties of undefined (reading 'width') @ TypeError: Cannot read properties of undefined (reading 'width') at Object3DType.LoadDynamicTextures (blob:https://editor.construct.net/45dc5ce9-ae58-422a-bac3-816fff486006:26:53) at Object3DInstance.Draw (blob:https://editor.construct.net/9ae7f534-3062-4c24-94b6-fde482a28fc9:112:40)
Stack: TypeError: Cannot read properties of undefined (reading 'width') at Object3DType.LoadDynamicTextures (blob:https://editor.construct.net/45dc5ce9-ae58-422a-bac3-816fff486006:26:53) at Object3DInstance.Draw (blob:https://editor.construct.net/9ae7f534-3062-4c24-94b6-fde482a28fc9:112:40)

Working with TerrorSoul on Discord. In general, now recommending to use embedded texture in gltf and glb files.

Hi,

I'm still learning to use blender, I tried your plugin for 3d animation and it worked, but when trying to create a box without animation the image size is different. Should 3d objects use animation or not?

Can you send your project? You can also take a look at setting zScale for the box (to 3DCamera.zScale on load.) Hard to tell what you expect here without seeing blender model and then C3 preview.

I tried zscal before and it didn't work, but after I restarted Construct 3 it worked. I don't know why this happened, but thanks for your support

Plugin is amazing! I wonder if there would be a possibility to add some form of anti-aliasing to match visual of 3D models with texture sampling quality. I'm also curious if some option to change textures or materials inside consturct editor(To make Visual Equipment/Paperdoll) is planned? Looking forward for these features!

The latest version uses the project sampling setting for the texture itself. So if your project sampling is trilinear, the 3D textures will be trilinear.

if you are talking about the edge of the model itself, you can try using low quality full screen and scale up a little or use an effect at the layout level to blur a little.

Dynamic material changes is interesting, but probably further out.

Okay, Thank you. I will try to use some effect on layer!

About the option just to force loading texture for model from external source image and then option to refresh that model would be atleast a milestone I would like to achieve. (For example: Changing Skins for model like in GTA 3-VC).

I guess the true solution for this idea would be possibility to use diffrent objects and materials from inside model.file but I think that it is a much harder to make so if you make just this idea above I would be very grateful!

I made a room in Blender using a 64x64 tile set and it shows up blurry in Construct. Does 3DObject only use anti-aliasing on model textures? Thanks!

Right now yes, but I will change it to use the project sampling setting in a later release. I added this to my todo list.

See the latest release, it should now support project sampling for embedded textures. Let me know if it works for you.

https://kindeyegames.itch.io/c3-3dobject-alpha/devlog/344701/solid-color-support...

Works excellent! File sizes have gone down so much too because of the embedded texture support. Great job!

Can't seem to get the latest version to build to Android though unfortunately

/str/c3runtime.js:4138:16: ERROR - [JSC_LANGUAGE_FEATURE] This language feature is only supported for ES_NEXT_IN mode or better: Optional chaining. 4138| if (textures?.length > 0) { ^ 1 error(s), 0 warning(s)

Oh! Interesting, more limited javascript feature support in that version of android/chromium. I can work around that in a future release, I just need to add some code to implement that language feature in a few spots.

The latest release should address this specific issue, let me know if it helped or if there are other errors beyond this now.

Thanks for getting on it so quick with those fixes. I can now build to Android but throws up an error if I try to build with script minified, not too important during debugging at this stage though.


/str/c3runtime.js:4194:8: ERROR - [JSC_DUPLICATE_CLASS_METHODS] Class contains duplicate method name "Release" 4194| Release() ^^^^^^^ 1 error(s), 0 warning(s)

Viewing most recent comments 1 to 40 of 72 · Next page · Last page