kaosat-dev / Blenvy

Bevy Code & Blender addon for a simple workflow to add & edit Bevy components in Blender
Other
520 stars 46 forks source link

feat request: export "Bezier Curve" to gltf and parse it as CubicCurve<Vec3> in rust #212

Open xx1adfasd opened 1 month ago

xx1adfasd commented 1 month ago

First of all, thanks for the good blenvy tool set! I'm so into it. And with some days of using it I want to do a thing but currently we can't do.

I want to "move a camera in a specific way". More precisely, I want it to move along a 3D beizer curve. However, it seems that when exported to glb, it exported as an "no information node". I mean it only has it's name, but no "beizer information" inside it.

Well I think it's because currently the exporter just doesn't handle it yet. But I think also that, making the camera move along a curve is cool and useful for cinematic scenes, and making curve when I can see all other 3d objects is just a correct way to make the curve.

Well I guess I can do some "workaround" like define some "Empty points" with specific names like "curve point 1", "curve point 2",... and handle it inside the rust code. But it doesn't feel right as I can't see the curve...

So, is it possible to do it? To export curve or some other related stuff( Nurbs curve perhaps?) to gltf with the information contained in the "custom property"?

xx1adfasd commented 1 month ago

Oh yes by the way, for cubic curve related bevy code, see the following bevy example: https://bevyengine.org/examples/animation/cubic-curve/

I think if there can be such an export, then inside the rust part of blenvy, we can just convert the custom property into this CubicCurve<Vec3>.

xx1adfasd commented 1 month ago

Well, I just happen to see a blender exporter that might just fit the case.

https://github.com/utsuboco/gltf_curve_exporter

https://github.com/utsuboco/gltf_curve_exporter/blob/main/exporter/__init__.py

However it says blender 4.2 is recommended. I'm not familiar with blender 4...

Last time I tried blenvy I think blenvy only support blender 3. (By the way, if it's true, it's better to make people know this by write this in README.)

But it can still be a reference.