0
\$\begingroup\$

I'm looking for a file format to store and load 3D models with skeletal animation data, which is free to use and distribute without licence restrictions.

I've evaluated formats like glTF and Collada (.dae). While they allow for skeletal animation, they require you to follow their license.

I want to be able to use the file type as if I made it with no copyrights or credits at all.

I want to use skeletal animation with this format so regular .obj files aren't good enough because they don't have animation data.

\$\endgroup\$
8
  • 3
    \$\begingroup\$ What specific licence restriction do you find unpalatable with glTF or Collada? glTF allows you to "use and reproduce the unmodified specification for any purpose, without fee or royalty". Collada allows "usage in commercial and noncommercial applications, without restrictions". It's only use of their trademarks that demands an additional agreement - so if you were making a 3DCC tool with a menu option labelled "Save as Kronos glTF", you'd need to jump through an extra hoop for that. Just implementing the spec yourself to read a file does not require any extra credits. So, what's the issue? \$\endgroup\$ Commented Jul 31 at 1:30
  • \$\begingroup\$ You have to use their trademark if you distribute their work \$\endgroup\$ Commented Jul 31 at 1:51
  • 3
    \$\begingroup\$ What do you mean by "distribute their work"? If you implement the spec in a save/load routine that's your own code, it's your work, not theirs. Their trademarks are things like the word "Kronos", so as long as that's not shown in your game, you're not using their trademark. What specific action are you worried would exceed these licence terms? Is it maybe the case that you're not just looking for a format, but you want a library: someone else's code that already implements the spec for you? Using a library often brings additional licensing requirements, even if the format itself is free. \$\endgroup\$ Commented Jul 31 at 2:05
  • 2
    \$\begingroup\$ If you're interested in making your own file format, then why not just make your own file format? What functionality do you need from your format that glTF / Collada do not provide? And if they're lacking in this way, why would you want to use them as a basis rather than just making your new format from scratch, custom-fitted to your needs, as games very often do? Since you're making incompatible changes, using a standard format for interoperability is no longer an advantage anyway, so what's making you want to tie your custom format to something existing? \$\endgroup\$ Commented Jul 31 at 2:20
  • 6
    \$\begingroup\$ I think you're making this much more complicated than it needs to be. No one will buy your proprietary file format when open standards exist, so don't let ideas about selling your format complicate your plans. There are no particular legal hurdles you're likely to encounter when writing down numbers in a file in whatever arrangement you feel like, as long as you're not directly copying some patented format. Make your own decisions and you're in the clear. For what you describe, you don't need an existing format to fork or build on - you can just make up whatever feels good to you. \$\endgroup\$ Commented Jul 31 at 3:19

1 Answer 1

3
\$\begingroup\$

Disclaimer: I'm not a lawyer, this is not legal advice, and this document does not constitute commitment to represent you in court.


You can make a game that loads glTF files and not say it

glTF is an open standard. It is not withheld by patents or license fees; you are free to implement it. In Khronos's own words:

Any developer or company can freely download the available Khronos API Specifications and implement and ship products using the specification completely free of charge, royalty or licensing.

The specification is under CC-BY-4.0. This is the key insight: Documents have copyright. When I tell you that the specification is under CC-BY-4.0, I'm talking about all the documents that describe it. If you distribute any part of those documents, you need to attribute it. But you do not need to distribute the specification to implement it. The Khronos Group also has scripts and tools on the glTF specification repository which are under Apache License 2.0; you don't need those either.

By the way, the glTF format is also ratified as ISO/IEC 12113:2022. You can buy the standard from ISO (it costs nothing, but you have to register), and you would be getting the standard under the ISO Customer License Agreement, which is completely different, but equally irrelevant for your case.

If you implement the specification on your own, you are the author of that code, and as author you can reserve all rights over it.

Remember that trademarks cover the the use of the names or brands. If you do not include the names of glTF or Khronos Group in your game, you do not need to worry. The trademark just protects them from uses of their names/brands in a way that might cause people to think you or your game is in some way affiliated with them.

Meanwhile, copyright covers the expression of ideas, not the ideas themselves. If you implement the glTF specification, it is your own expression of their ideas, and thus, it is at least in principle free of their copyright. In practice it might not be: for example, if you took somebody else's implementation and modified it, then we need to consider the copyright of that implementor.

Finally, the scourge over the Earth (this opinion is my own) known as software patents could extend to alternative implementations, but with glTF being an open standard, there are no software patents that you need to worry about.


You don't have to make a custom format

If you, for whatever reason, want to load glTF in runtime, there are plenty of options.

For example there is an extension for Unity that loads glTF in runtime developed under the Khronos Group umbrella under an MIT license: https://github.com/KhronosGroup/UnityGLTF

Another example that comes to mind is that Godot has custom code (developed independently) to read and write glTF (useful for the few of us who want to use Godot to make 3D tools) and it is also under an MIT license.

These examples aren't the only options. Meanwhile, they demonstrate that code that uses glTF can be under other licenses unrelated to the license of the specification.


It could even be obscured

VRoid uses the vrm file extension. The files are glTF with some custom extra stuff. So you can take a vrm file, change the extension, and import it to Blender using glTF import. This is OK.

VRoid mentions vrm is compatible with glTF in their documentation: How to edit a VRM file/Can I re-edit a VRM file in VRoid Studio?.


But you probably want to make a custom format anyway

In practice, glTF and other similar standards are good as exchange formats (they are good to allow software to interoperate, such as Blender and your game engine).

Notice that making your own specification would mean nobody else is compatible.

However, glTF, obj, and similar formats are not the best for runtime... For runtime, you want a format that closely resembles how you lay out memory for the GPU, so you need minimum processing from reading the file to using it, which is going to mean using a binary format tailored for your shaders.

Because of that, game engines often import the glTF but store it in a custom format, which is what actually gets deployed on release. That means: games made with most engines can use glTF during their development but do not actually ship code to load glTF. This is the usual way it works, although there are exceptions.

Even Blender will convert from and to glTF when you import and export respectively.


You could export your custom format from Blender

You can write a plugin for Blender that writes files in whatever format you want (barring patents), including formats made up by you.

"Blender bones" is not a thing outside of Blender. Once your extension wrote bytes to a file, there is nothing there that we could argue are Blender bones.

As per the names, the closest thing to "official" names is the Rigify naming convention, which is not protected in any way (if it were, then making models with bones with those names would be a legal concern, regardless of format). Yet, you don't have to use those names if you do not want to: rename the bones, or make your own rig. In fact, making your own rig is not unusual for game development studios.


Although using a well known format is good if what you are making is a tool

If you are making a tool (e.g. you want to make it easy for others to mod your game), then it makes sense to use a well known format and to mention it. In doing so, you would allow your tool to interoperate with other software that uses the well known format, and users won't be confused about it.

I believe you should not feature the glTF or Khronos Group names prominently, as to not create a legal basis for a lawsuit about potential user confusion regarding your product being associated with them. But, presumably there would be mention of it in documentation and import options.

Addendum: Yes Khronos Group want you to use the glTF logo as to signify compatibility. Make sure to register as a File Format Adopter and follow their guidelines if you are doing that.


Regardless if you need to or not, there is nothing wrong with attribution

Finally, sorry to say but, "it would be cool" is not a strong argument.

Let me tell you what is cool: include a credits sequence and there properly attribute the people who contributed to the game, including but not limited to any assets you used under a free license, regardless if the attribution is required or not. You can even tell those artists and creators that your game used their assets over social media, which might turn into positive for marketing the game.

Text is often cheap (this answer takes more screen space that the glTF logo would take in your game). Attribution is cheap.

\$\endgroup\$

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.