glTF Export

Last updated September 18th, 2019

About glTF

gl Transmission Format, or glTF, is a free specification by KhronosGroup for the efficient transmission and loading of 3D scenes and models by applications which makes it great for RealTime Graphics. The Cinema 4D glTF Exporter exports the c4d scene to *.gltf/*.glb formats, ready to be used across all platforms supporting glTF.

September 18th release features:

  • Support for R21

  • Bug Fix: Orthographic Camera wrong xmag and ymag values

  • Crash Fix: when exporting mesh with a weight tag with no joints

Additions and modifications to the documentation are underlined or strikedthrough.

Exporting Options

To Export the scene in glTF format go to File->Export->GLTF (*.gltf), select a destination and click Save. An Options window will pop up with the following options:

  • Export Normals: Deselect to get Flat Shading.
  • Export UV Coordinates: Self explanatory.
  • Scale: Define the scale of the exported scene.
  • Export Textures: Self explanatory.
  • Double Sided: Select to prevent Back-face Culling.
  • Export TRS Animations: Export TRS animation tracks.
  • Export Morph Animations: Export either Pose Morph animation or PLA animation.
  • Export Skin Animations: Export TRS animation tracks of joints.
  • Bake Animations: Bake every frame of animation.
  • Substeps: Number of substeps to sample between each two frames.
  • Export Frame: Export state of document at current frame or at another specified frame .
  • Export Frame Number: specify which frame to export .
  • Export Cameras
  • Flip Z: Switch from Left Handed to Right Handed System.
  • Export as Binary(.glb): Export glTF file in its binary form.


glTF 2.0 has a basic support for cameras, perspective projection and parallel(aka orthographic).


You can convert the units of the scene at export. I’ll provide a few examples to explain how it works:

C4D value > Scale option > Exported value
100 cm > 1 Centimeter > 100
1 cm > 1 Meter > 0.01
1 m > 1 Centimeter > 100
1 m > 1 Meter > 1


glTF takes the PBR approach to describe Materials, which translates pretty well to Cinema’s Reflection Channel, but is limited in some aspects. One of those is the lack for multilayered material support. And so, to get a similar looking result on export, we recommend working with a single Reflection/Specular layer in the Reflection Channel.

(*) Supported fields are Highlighted in blue

PBR Metallic Roughness

glTF’s PBR Material’s information is encoded into three main parameters:

  • Base Color: set by Layer Color’s Color selection or by Color selection in Color Channel.
  • Metallic Value: set by main reflection layer’s Reflection Strength value.
  • Roughness Value: set by main reflection layer’s Roughness value.

Texture maps to the aforementioned parameters are also supported:

  • Base Color Texture: set Bitmap Texture in Layer Color or in Color Channel.
  • Metallic Texture: set Grey-scale Bitmap Texture under Reflection Strength.
  • Roughness Texture: set Grey-scale Bitmap Texture under Roughness Strength.

Normal Map

Normal Maps can also be set in the main Reflection/Specular layer, under Bump Strength, set Mode to “Custom Normal Map” and set the Bitmap in Custom Texture.Can also be set in the Normal Channel and the Bump Channel.

Other Maps

(*) Supported fields are Highlighted in blue

Occlusion Map

Occlusion Map is set in the Diffusion Channel.

Emissive Factor and Map

Emissive Factor(Color) and Map are set in the Luminance Channel.

Alpha Map

Alpha Map is set in the Alpha Channel.

Pose Morph Animations

The current glTF standard supports morph targets which are added, with differnet weights, to the original mesh. The weights can also be animated.

In Cinema 4D, Morph targets are called Poses, and the weights are Strengths.

Setting a Target overrides the internal poses defined in the tag.


PLA isn’t technically supported in the current glTF standard, but I was able to achieve this by considering the object at different keyframes to be differnt morph targets.

Skin Animations

Skin animation is described as the deformation of a mesh according to TRS tracks of joints that are bound to it and assign weights to its vertices.

Editor Mode

Visibility of the object can be turned off by setting the Editor Mode to Red. Technically there’s no support for a visibility boolean in the current standard, this is achieved by setting the material’s alpha to 0.

Texture Mode

The Texture Mode of the gltf file is defined by the Texture Mode option in Preferences>OpenGL, select between Nearest, Linear and Mipmaps.

Notes and Limitations

  1. Reflection Strength vs. Metallic Value: Reflection Strength translates very closely to glTF’s Metallic Value, but there’s a difference… In Cinema 4D, Reflection Strength describes how much light is reflected off the surface, whereas Metallic Value describes how much the reflective behavior of the surface resembles that of a metal. 0% Reflection Strength means that the surface doesn’t reflect any light, meaning it’s black. But that is not true for 0% Metallic Value.
  2. Texture Baking: As of now, the automatic baking of Texture Shaders is not yet implemented. If you do use Shaders, please manually Bake them using the Bake Texture tag and re-set them as Bitmaps.
  3. Metallic-Roughness coupling: In glTF, the Metallic and Roughness Maps are actually single Bitmap where the values are incorporated into the Green and Blue Channels. So when setting a Reflection Strength and Roughness maps, please make sure they are the same dimensions. If they are not, then the Reflection Strength map will be scaled to match the Roughness map.
  4. Color-Alpha coupling: Same goes for the Color Texture and Alpha Map, as they will be merged into a single RGBA Bitmap.
  5. Mix Strength: glTF mixes between the Main Color and the Texture by component-wise multiplication of the RGB values. This required an adjustment method of the Color value or the Texture pixels at Export to achieve the same mix as in Cinema 4D. It’s still WIP and artifacts may appear in the result.
  6. Normal map strength: When setting the Normal map in the Reflection Channel… The strength, or “scale”, of the Normal Map is defined by the product of Bump Strength and Strength.
  7. Error Messages: Proper Error Descriptions are yet to be included, if you run into an error, it will most likely say “Out of Memory…” but it’s very rarely so.
  8. Polygon Selection: Polygon Selection is not yet supported, please manually Split the object and apply the different materials accordingly.
  9. Color properties priorities: If Color Channel is enabled, its properties override the Layer Color properties set in the Reflection Channel(i.e. Color, Brightness, Texture and Mix Strength)
  10. Normal map priorities: If Normal maps are set in the Reflection Channel, Normal Channel and Bump Channel. Then the Normal map and its Strength are retrieved from the Reflection Channel first, Normal Channel second, and Bump Channel last.
  11. Instances: not supported yet. instances will be baked into a new polygon object.
  12. Cubic Spline animation curves: in Cinema 4D, two coefficients define the tangent of every key: “value” and “time”. In glTF, a tangent is defined only by “value”. If your exported animation doesn’t look the same, consider baking the animation.
  13. Linear/Step curves: An animation property(Translation/Rotation/Scale) will be exported as Step Interpolation only if all its keys interpolations(in the x,y,z curves) are set to Step, otherwise it will be exported as Cubic Spline.
  14. Pose Morph OR PLA: It’s not possible to export PLA and Pose Morph animations together.
  15. Pose Morph global Strength: The global Strength value and its curve in the Pose Morph tag cannot be exported, it is multiplied by the other strength values.
  16. Skin Animation Weights: in glTF 2.0, a vertex may be assigned up to 4 weights by 4 joints only! If more than 4 joints influence a vertex, the 4 that assign the largest weights will be exported as the influencers of that vertex.
  17. Bake Animation: If your exported animation doesn’t look right, try enabling the Bake Animation option.
  18. Animation Range: Exported animation range depends on the Timeline limits defined in the Cinema 4D


Last updated September 18th, 2019

Previous Builds:


Cinema 4D R20


Simply unzip the downloaded archive into the “plugins” folder.


Provide your bug reports, test scenes or ideas by writing an email to labs-at-maxon-dot-net

Please rate this


  1. Thanks for creating this plugin.
    I can`t install it, it just doesn`t show up in the export menue.
    I have R21, created a plugins-folder and linked it in c4d`s preferences.
    Anyone any idea what i`m doing wrong?

  2. I follow up on this: The last update was 5 months ago and not a single answer or post from Basel since September 19. Is this project abandoned? Or if you’re planning to include this in R22 still please let us work with it / test it until then.

  3. Thanks a lot for this plugin.

    I have a question about the Normals export (at least, I think thats the problem).
    I have a plane morphing to a sphere with a wrap deformer. This animation is baked via Function -> Bake Objects with PLA. Then exported with in gltf with PLA.
    The animation works fine, but somehow I can’t get any shading (like shadows). The surface stays the same color, no mater how it moves. Seems like the normals are not updating…

    Best regards

  4. Great plugin! I’ll use it on a lot of projects in the future, starting with this website, where i’ll remodel the vehicle trackers.

  5. Amazing plugin
    It provide a perfect workflow for webGL, three.js and skinned mesh animations
    Thanks a lot!

  6. is the development of the plugin stopped. The last update was 4 months ago.
    I would be very sad about it.

  7. I noticed that the occlusion map in the diffusion channel if exported in gltf/glb doesn’t maintain the uv map. The other channels are ok

  8. Thanks for the exporter!
    I am a C4D novice. May I ask if this tool can export the materials of Octance and Arnold? In addition, the. Bin file is not normally output, will it affect the use of GLTF? Thank you very much and look forward to your reply!

  9. Hi Will this plug-in brings animation and pose morphs into UNITY 2019?.

    Where are the instructions to install this plugin? How do you inst

  10. hello. great plugin. Just a question, a client asked me to send them a GLTF file with my rigged model, the model has 3 different animation and they asked me 3 different motion clips but with same layer/model and then in three.js the different clips can just be grabbed and applied. thanks

  11. Hi, impossible to export file with posemorph, I got an error message “not enough memory”.

    If I export file with PLA, it works but in three editor animation doesn’t appear… Any idea ?

  12. Hi! Thank you so much! This one has been a lifesaver.

    2 questions: Any chance the export of bezier splines is going to be supported?
    And how about multiple animations for one object? Lets say like multiple walk cycles for a rigged character 🙂

  13. Hey Basel,

    Great work on the plugin. However, I have a serious issue while exporting the GLTF. I have an object that has multuple materials applied to it. However, when i export that object as a gltf it only uses one of the material and applies it to the entire object. I wanted to ask whether this plugin supports multple materials export or is there any workaround this problem?

  14. Great. It´s working really well. But is there a way to export multiple UV Sets? Right now it´s only using one – right?

  15. Hey Basel! Is it possible to name the exported morph targets the name of the pose from C4D? Currently the morphTargetDictionary is just indexed “morphTarget0”, “morphTarget1”, “morphTarget2”, etc. Would be awesome to have my labeled poses make this more human readable when trying to access in a three.js environment.

    Thanks for considering!

  16. Hello! I have installed into the plugins folder in R20, but doesn’t seem to show up as an option under the plugins menu for me. Any ideas?

    • Hi Duncan,
      As an exporter, it’s not supposed to show up under the plugins menu, rather under File>Export…

      let me know if it’s not there either 🙂

    • Hi Lesley,
      Please check out the Annotation Tool in C4D.
      But unfortunately there’s no annotation support in glTF, what you see in the link you gave me is specific to that viewer.

      Hope this helps.

  17. Does this plugin work with R21? I can’t seem to get the gltf export option to appear. On macOS, I’ve tried:
    – Placing the plugin in a plugins/ folder in my /Applications/Maxon Cinema 4D R21/ folder
    – Placing the plugin in my user-specific plugins/ folder in ~/Library/Preferences/Maxon/Maxon Cinema 4D R21_90860A1D/
    – Ensuring the above plugin paths are added in Preferences -> Plugin Search Paths
    – Ensuring the xattr is removed from c4d_gltfexporter.xlib

    Yet, when I install the plugin in the older R20 release’s plugins/ folder, it shows up just fine. It refuses to run in demo mode, but the option is at least present in the Export menu, which is more than I can say for R21.

    Am I missing something, or is R21 support something that’s yet to be added?


    • Many thanks for a great plugin, Basel!
      In just 24 hours of use (in R20), your exporter has already proven critical to my workflow, and it’s working flawlessly.

      I understand that R21 requires rewriting and compiling of plugins — so am hopeful that this is on the roadmap?


      • Hi Collin and Ryan,
        I’m pleased to let you know that the latest build(1.000×290161) is supported on R21.
        Grab it and please let me know if you run into any troubles!


    • Simon you just made my day! Thank you and I’m very happy you’re putting the plugin to such awesome use :))
      Well done!

  18. Thank you @Basel
    it’s a pleasure to hear about this new ability to export the 3d web format, (I Heard when first created, I just waited for it to get some maturity, which today is on a perfect stage of it development)

    (i switched recently to another software just because of this version needed) I’m glad we have it now within C4D 🙂
    Good luck.

  19. Life saving! My animations (that I acquired through mixamo) come out stuttering and Jittering.
    Any suggestion?

    • Hi Jet,
      please send me your test scenes over to the email mentioned above and I’ll have a look!


  20. Does it support C4D R18.011?
    I have already install it , but don’t find in flie-export.
    Hope to receive your answer.

    • Hi Angola,

      sorry but the plugin is compiled for R20 only right now.


  21. Hi Basel, thanks a lot for this plugin. It has been really useful to me. I noticed something that may be a bug. When I open the animation on the exported gtlf at my script, I noticed that Z axis has to be inverted in relation to same object when it hasn’t an animation on it. This happening with the “flip Z axis” enabled on both cases, so I assume that it shouldn’t happen. This is happening with a camera animation.

    • Hi Simon,

      can I bother you with submitting your report along with a test scene to the mentioned email above?
      I’ll have a look soon!


  22. Hey Basel! Thanks a lot for this tool! It’s highly appreciated.
    I’ve found little weird behavior when exporting with frozen transformations and/or changed rotation order. Maybe it’s a helpful info. I’ve sent a bug report.

  23. First off, this exporter is amazing and has significantly reduced overhead in my C4D -> real time pipeline. 🙏🙏🙏 So thank you!

    I’m struggling at the moment with multiple animations being exported on the same geometry. Is this possible yet? If so, what are the general steps for doing so and getting them to show up in for instance?

    Thanks in advance 🙂

    • Hi Austin,

      glad that you like the exporter so far 🙂
      Exporting multiple animations is a subject that we’re currently discussing on how to tackle. There isn’t one clear way to do it in Cinema and we’re in contact with our users to determine the best approach.

      Just like everyone else here, I can’t wait for it to get done 🙂


    • With that being said, please email us at the email mentioned above and drop your opinion on the matter 🙂 We’d love to hear it!

  24. Missing peace of puzzle – web player to view your models

    Thanks for best software in the universe – Cinema4D and for amazing plugin)

    If anyone had success with textured 3D model in Chrome locally without server, please tell me how to do it. I see images are embedded using base64, but CORS still does not allow access to them

    Seems like GLTF does not support embedded environment maps?

    maybe it makes sense to make separate material editor for gltf?

    • Thanks Artem for the mention 🙂 careful with how you spell my last name though 😉

      – I’m not sure I understood your first question? could you rephrase?
      – No, in the standard glTF 2.0 there is no support for Environment maps.
      – Working on it.


      • Oops) fixed)

        it feels like perfect workflow should be as follows:

        1. create 3D model
        2. export to web
        3. view in browser

        But viewing in browser on local computer just does not work( To view model on my computer I have to upload it via FTP to server or I have to run local server. Textures are not displayed if they are not served via http( due to CORS (Cross-origin something) in chrome browser. That is strange as textures are embedded into GLTF as base64 variable. So I guess it’s not a plugin problem. Maybe it’s because of GLTF loader or three.js issue or some browser limitations. There’s no such problem in firefox.

  25. I cannot get reflections to work properly at all. I have tried several viewers, and none of those that I have tried are getting anywhere close. I have expressly followed the directions listed here (I am currently doing some tutorials about using this plug in). Any advice?

    • To make reflections work correctly you have to bake reflection map and add it in web player for desired geometry separately. Or you can use fake reflection map for entire gltf, or you can render reflections to cube in real-time and add them as environment map. All of the above methods give not very predictable results and result in slow performance so I would recommend not using reflections at all. Basically the only way to get 1:1 to what you see in Cinema4d is to use luminance channel only, with fully baked scene and to fake reflections like on table legs here:

      I will add commented string to JavaScript later today that allows you to add fake environment map to entire gltf scene

  26. Hallo,
    can you please add the names of the materials in the exported .gltf file and try to use the material multible. Now i have 24 objects and 6 materials when i export the file i have 24 material in the gltf. In three.js i have to change 6 objects instead of 1 material.
    When i export as fbx and convert it in blender as gltf i get, in this case, what i want but there are many other troubles.
    And what about multible animation tracks

    • Hi Wolf,
      – Material names: I’ll add that in the next build
      – Material sharing and multiple animations: yes those points were raised before and are on my to-do list. Hang in there I’ll try to deliver soon.


  27. Is there a way to export a object with a Phong and normal tag without losing the normals?
    I really need this to work so I can display imported CAD models.

  28. Hello,

    It works BUT there is no option to save a glTF + bin file which is needed in some cases. Any chance that option can be added?


    • Hi Anton,
      I’ll add it to the suggestions list… In the meantime I recommend getting Microsoft Visual Code and its glTF Extension:

      It’s very recommended to all glTF users, devs and designers alike.

      Export a .glb using my plugin and use the extension’s “glTF: Import from GLB” functionality. It will convert the .glb into .gltf while also outputting a separate .bin + texture images.

      Hope this helps.

  29. Hello, please any chance for something like that (working) but lower Cinema? R17 needed, cannot change into newest now 🙁 expensive. Just training and need some tools for FB 3D models, any help? GLB with that what I found never works, textures lost and crap 🙁

  30. HI! I noticed a bug! create a cube. Animate scale from 0 to 1 between 25-50 frames. Create position animation between 0 and 50. Create rotation animation from 0 to 50. Theoretically the cube shoudlnt be seeing between 0 and 25 frames. but when you export the animation it shows the cube scale as 1 from the beginning (then it starts animating from 0 at 25.

    A question: i have an animation from 0 to 150. How can I get different animation clips (each witha name) from it?

  31. BUG: If you create a new scene, add the “Bed – Modern 01” to it. Export gltf with the Scale setting in the popup dialog set to 0.01 and Centimeters, then the scene will export out with the object exploded apart. This would be due to not adjusting the matrix offsets of the child meshes when exporting.

    • Hi Kent,
      I’m sorry, I couldn’t reproduce the bug as you described it.
      Please check your beta forum inbox.


    • Try setting a keyframe at 0 with scale 0 for the objects that are goign to “grow”

  32. Hi Basel,

    Thank you for your labors on this exporter. I’m encountering an issue where once the parameters for export have been selected, Cinema freezes. Any ideas what might be causing this issue?



    • Hi Neil,
      Please email us about the issue at the email mentioned above in the Support section.


      • Sure thing, Basel. Just sent over another message with some of the troubleshooting procedures I’ve taken on my end.

        Just to confirm, the address is:, correct?

  33. 为什么点击导出以后我的C4D就卡住了,死机了,很久时间都没有反应

    • Hi Lucas,
      could you please send an email to the labs address mentioned in the Support section above?


    • Hi Martin 🙂
      the plugin so far doesn’t stick a name to the animation object, I’ll deliver that once multiple animations are supported.

      If you export as .gltf file, you can essentially, as a temporary solution for your case, edit the file and add a “name” attribute to the animation object… Simply open the file in a text editor, search for “animations”, and add the following a “name” attribute so it looks like this:


      pay attention to the comma after the attribute declaration 😉

      hope this helps for now.

      • Hey Basel,

        Yup that worked great. I encourage you to put on a magic leap headset and check this out. It’s sort of a pain to add the string and convert to .glb. BUT it works. I really appreciate your help with this. I did run in to one error- the name could not have any spaces. Your tool is becoming critical for me to rapidly prototype for AR. Thanks Basel!

      • that shouldn’t be an issue, spaces should be definitely supported in names

  34. Great plugin! But i have an issue somehow if i check export normals in the plugin, i can import the file in the t but not export again. With models from the it works fine.
    Do you think this is a bug or a different way of write normals?

    • Hi Moritz,
      please send an email of the issue to the email mentioned above in the Support section.

      Thank you,

  35. thanks for the exporter!
    is it somehow possible to export mograph animations/dynamic animations to gltf format?
    by baking or cashing or something else?
    thanks for any feedback.

    • Hi Max,
      Happy you like the exporter! Unfortunately no, the supported types of animations are explained above in the documentation. But please, let me know which features of Mograph you would like to see get supported, and I’ll see if it can be done 🙂

      Email me at labs-at-maxon-dot-net


    • To export mograph, currently requires a workaround – Not related to this plugin, sadly.
      1. First bake your cloner to alembic.
      2. Copy paste results into new doc (for avoid exporting stuff you don’t need).
      3. Export as fbx.
      4. Convert fbx to gLTF here:

  36. Hey Basel- I’ve been using the exporter for a month now and love it! Do you think you could post a few images of the PBR texture stack in the node editor so I have a better understanding of how everything is working?

    Love your work. Thank you so much.

    • Hi Martin,
      thanks I’m glad you like it so far 🙂
      I’m sorry but the exporter support for materials was first developed with legacy materials in mind, please check the documentation above to see which parameters are supported and how to use them. Also I recommend going over the Important Notes section as well.


      • Thanks,

        It worked great in the R20 demo. Just need to convince my bosses to upgrade now.

      • Let us know if you need any help with that 😉 I’m sure the next release will be even more persuasive!

        Best of luck!

  37. I didn’t see this in the Known Issues section so I thought I’d bring it up:

    Exporting a bunch of separate cubes with different textures on them, I’m getting this from the validator over at Don McCurdy’s GLTF viewer –

    VALUE_NOT_IN_LIST Invalid value 9987. Valid values are (9728, 9729). /samplers/0/magFilter
    VALUE_NOT_IN_LIST Invalid value 9987. Valid values are (9728, 9729). /samplers/1/magFilter
    VALUE_NOT_IN_LIST Invalid value 9987. Valid values are (9728, 9729). /samplers/2/magFilter
    VALUE_NOT_IN_LIST Invalid value 9987. Valid values are (9728, 9729). /samplers/3/magFilter
    VALUE_NOT_IN_LIST Invalid value 9987. Valid values are (9728, 9729). /samplers/4/magFilter

    I hope that feedback is helpful,


      • Those are warnings, but the filtering for mag (when camera is near the texture) will be set to nearest, which will look pixelated. If you edit the exported GLTF and replace 9987 with 9729 (for linear interpolation) everything looks smoother.

        Specs only allow 9728 (NEAREST) and 9729 (LINEAR) for mag filter. 9987 (LINEAR_MIPMAP_LINEAR) is only valid for min filters.

        BTW: Great work. Exporting is fast and painless.

      • Oh! this is definitely my bad.
        Many thanks, I’ll fix it.

  38. I love the new baked animation stuff. Thank you.

    Still unable to export multi-material meshes. Is this on the roadmap? I’m writing a blog post for Torch3D (which uses gltf exclusively) and, unfortunately, I have to include a C4D->SketchFab->Torch step. I’d love to be able to just go C4D->Torch

    Thanks again, this plugin will be mighty when you’re done.


      • Indeed, very much looking forward for this 🙂 but have patience as I’m still occupied with animation support. Skinning animations next 😉


  39. Great job! The scale factor was a great addition. I just wan’t to report a small bug. Apparently, the factor is being applied only to the scale of the objects, and not to their transfrom (position). So, let’s say you have two objects on the same scene on C4D, and one of them is on position y=0 and the other y=1. When viewing the exported scene on Three.js, the second object will be at y=1000, even if the scale was corrected by the scale factor when exporting. So the scene will look very different, with correct scale but wrong positions.

    • Hi Simon,
      many thanks for bringing this to my attention 🙂 you’re right, the exported transform isn’t taking the scale into account. Easy fix, will come in the next release!


  40. HI Basel! im working with ventuz software, hope you heard about that, so now it has support of glTF 2.0 format for use rigged animations, in this format Geometry, Animation, and some other things can be stored so i make Eagle animation in cinema4d r20, export it as glTF import to vetntuz, model is there but no animations, but if i export same project as fbx and then convert it into glTF online then i can see my animation in Ventuz, whats issue can be there?

    • Hi Dmitriy,
      I’m guessing you’re asking for Skinning animations, that’s still to come in the near future. For now, only TRS and Pose Morph/PLA animations are supported.


  41. Thank you for the Exporter.
    Can you tell me what´s wrong with Clay Viewer when loading the GLTF file?

    • Wohoah that’s some nasty stuff happening over there 🙂
      If I had to guess, it may be that the dev didn’t account for interlaced data — that’s when vertex position, normal and uv are written into the buffer in an interlaced fashion and not separately, e.g. p1,n1,uv1,p2,n2,uv2,… what happens then is that the Clay Viewer is interpreting the buffer as p1,p2,p3,p4,p5,p6,…
      Go ahead and export without normals and uvs, I bet it’ll work.


  42. Hi,

    Hi, I cant get this to show in my export window. I have created the plugins folder and have added both files along with the res folder. Quit and restarted my machine a number of times. The gltf export option just isn’t there. I have also pointed C4D to the plugins folder manually and the other plugins I have for c4d show and are fine.. Can you please advise. I’m very anxious to have this working. Thanks. ps, I’m running Windows 10 and R20 C4D.

  43. Hey Basel! How about a quick video going over the shader stack? I would really like to see your workflow. Or maybe post a few baseline textures? Thanks!

  44. This is prefect 🙂 I really hope the Plug will find a way as a permanent/regular c4d-exporter into c4d in future releases.
    First i thought it didn´t work in ThreeJS. Before you export from c4d, keep an eye on the scene scaling. My objects were always to big. In ThreeJS they were clipped because of there big size. But after scaling them down to a really small value everything worked perfect. Then i adjusted Near- and Farclipping in ThreeJs an now i can export the Models in a normal worldscale… It would be perfect to have the option to set a scaling factor in the exportwindow. Thank you very very much for that great work 🙂

  45. Basel could you please date-stamp the latest versions so we can easily tell if/when it has been updated.

  46. I sure hope Maxon realizes how important this is and prioritizes robust support for an R20 patch or for R21 at the latest. glTF is becoming a big deal. Thanks Basel for your work on this.

  47. Here are a couple of bugs with the exporter

    – file should include an asset.generator string so devs can identify how it was created

    – animations should be bundled into a single glTF animation entry if they’re meant to be played together, not separate small animations for each piece of the model

    – something is buggy in the TRS animation export, maybe quaternion rotations need to be resampled.

    • Hi there Alek,
      thank you for bringing these to my attention
      – I see, thanks I will get it done for the next build.
      – ditto.
      – Correct, I also noticed this last week and got it fixed, will be available in the next build.

      Thank you for your feedback and make sure to check back in the upcoming days for the new build 🙂


      • Hi Basel,
        Thank you for making this great plugin. Do you know how to set to imbed several animation clips within the glb file. I tried created animation layer, separate motion clips, but it seems like it just shows the animation on timeline and I couldn’t figure out how to make different timelines.

      • Hi Yue,
        It’s something that we’re trying to figure out how it’s best to implement for all our exporters. So until there’s a consensus and a plan, this will have to wait 🙁


    • Thanks Martin! Let me know how it goes for you and if you have any complaints 🙂

  48. Hi,

    Thanks for this plugin, Basel – great work! We are trying to use UV channel 2 from Cinema 4D for AO in three.js, but it doesn’t seem like this plugin exports the second set of UV coordinates. Is this is true, or are we doing something wrong? If not, could it be updated with this feature?

    • True, this is missing… It’s a simple fix, I’ll add it and you can find it in the next release 🙂

      • An update was released on 10. of April. Is this fix included? I couldn’t make it out in the changelog. It would be great to know so we know where to look because we also want to export AO for using in threejs

      • Hi Benjamin,
        I have to apologize, as I continued to look into this I found that it goes deeper and would be better to delay it at the moment.
        Rest assured it’s on my to-do list, I’ve just released the latest version that marks the end of my allocated time for animation support. I will now tend to your suggestions and bug fixes 🙂


      • Hey Basel,

        Is this being worked on? I still cant get the 2nd UV channel to my exported GLTF

  49. Thanks so much for this Basel. I’m exporting with and image texture but get a I get a kind of grainy/noisy shimmering when looking round the model in the viewers (babylon, domcurdy) but when exporting from blender everything is smooth. This is amplified when viewed in VR. Known issue? Thanks again.

    • I managed to get this plugin working (I had polygon selection, doh!) but am seeing the same issues. Like anti-aliasing problem. MIP mapping issues?

      • Testing with babylon it shows that mipmapping is not present.

      • Thank you for bringing this to my attention, it has been fixed and will be available in the next release soon 🙂

  50. Sir, you are a legend!!!

    I’m having issues with my image textures though. Cant seem to get them to show up in my exported file. I’m testing with babylon js sandbox. All working great apart from the image texture. I’m using a PBR material with the image texture in Reflectance > Default Diffuse > Layer Color. Have played around with setting but no joy. Any tips?

      • Double check the notes and limitations above. I was using Polygon Selection; Where I was applying multiple materials to one mesh via selected faces. When I broke the mech into separate parts so each had only one material the texture image showed.

  51. First of all, thank you for your work!

    Is there a roadmap or something like this?
    Will you be supporting extensions like Lights and Draco Compression?

    • Hi Viktor,
      no roadmap is planned but to follow the standard glTF 2.0 specification as best as possible 🙂


  52. Unfortunately, this doesn’t work at all when trying to load scenes in to Three.JS.

    • Maybe you ran into the same problem that Fabian Kerbusch mentioned. Have you tried scaling?

  53. Oh goodness, Thank you so much, its excelent working on C4D R20 , i expored object with PBR material and this is worked without any problems. I want to transit my project into a web site, due this plugin i can do this pretty simple!!!

    • Hi Iain,
      please double check:
      – You have Cinema 4D R20 or higher.
      – xlib/xdl64 and res folder together under /plugins folder of your Cinema4D(create one if missing).
      – Restart Cinema 4D and check File->Export: is the gltf option available?

      • Hi, Thanks for your quick reply. I am running C4D r20 and have created a plugins folder in program files/MAXON/Cinema 4D R20/

        I have restarted a number of times.


  54. Is it possible to have some kind of notification or be able to subscribe to a repo or something for updates to this?

  55. Oh yeah! The current export-pipeline via FBX and a Commandline-Convert-Tool was… let’s say… ineffective 😉
    Thanks a lot Basel for your work!

    Does anybody know when Maxon intends to add glTF import/export functionality right away?

  56. Awesome news! This means you can now create WebGL applications with Cinema 4D (possibly with Verge3D).

  57. Animation support including multiple animations is a must. GlTF supports this and I’ve previously managed to achieve this via takes > export to fbx > convert to gltf using fbx2gltf. Would be awesome to have this native though. Also +1 for import!!

  58. Hey, that‘s great news! Is an importer for gltf also planned? Would be great to work with sketchfab models without havimg to go through Blender etc.

  59. Fantastic work Basel! Much needed plugin (you saved us some gray hair)
    Plus one on animation
    many thanks
    Vertex Helix

Leave a Reply to Tom Cancel reply

Your email address will not be published. Required fields are marked *