---
title: "Game assets on a small budget: CC0 characters, animation retargeting and local Romanian voices"
description: "For SOLOMONAR we take people, animations, voices and music from free sources and run the voice generation on our own machines. The method is to read every licence inside the file, under the heading it sits under, and to check the whole chain an asset came from. That reading reversed one of our own decisions: the Romanian voice we had cleared turned out not to be cleared."
date: 2026-10-11
lang: en
canonical: https://goingstellar.ro/methods/game-assets-on-a-small-budget/
author: Going Stellar
publisher: GOING STELLAR S.R.L.
topic: Games / Assets
license: CC BY 4.0
alternate_ro: https://goingstellar.ro/ro/metode/asseturi-de-joc-cu-buget-mic/
---

# Game assets on a small budget: CC0 characters, animation retargeting and local Romanian voices

*For SOLOMONAR we take people, animations, voices and music from free sources and run the voice generation on our own machines. The method is to read every licence inside the file, under the heading it sits under, and to check the whole chain an asset came from. That reading reversed one of our own decisions: the Romanian voice we had cleared turned out not to be cleared.*

> Games · Assets · 2026-10-11 · https://goingstellar.ro/methods/game-assets-on-a-small-budget/

## Key points

- A label on a repository page is not a licence: read the licence inside the downloaded file, under the heading it sits under.
- A line reading CC0 on a voice model card can describe the dataset rather than the model, so the whole chain of base model, fine-tune and dataset has to be checked.
- When characters and animation clips already share one skeleton, failed animations in Godot are usually a binding problem in the track paths, not a retargeting problem.
- CC0 gives up copyright but not personality rights, so a real speaker's unaltered voice should never be shipped as a game character.
- Generators whose code is copyleft can stay outside the game, in a tools folder that shares no code with it and does not ship.

## What this is for

SOLOMONAR is a first-person folk-horror game set in a Maramureș village, built in Godot with a budget of zero for assets. That makes the licence of each file a condition for the game existing at all, not a detail for the credits page. A label on a repository page is not a licence. We read the licence in the file we download, and we save a small licence record next to every asset, which freezes the evidence and builds the credits section on its own.

This article covers four things: human characters, animations, Romanian voices, and music. It describes what the licences say as we read them. It is not legal advice.

## Characters: CC0 people that share one skeleton

Our villagers come from two CC0 sources. The Quaternius peasant characters are exported with an Unreal-style skeleton of **65** bones, at a native height of **1.56 m**, which removes a whole class of scale bugs. The same author's “Smooth” characters use a different set of **42** bones, and another export of the animation library uses Rigify names. Between those two there are **0** bones in common, which is why our first attempt could not work.

For faces we use MPFB2, the Blender add-on of MakeHuman. Its code is GPL-3.0, but its base mesh, targets, textures, clothes and rigs are CC0, and its licence states that output generated through scripting is not claimed. The generator script therefore lives in our tools folder, marked GPL, shares no code with the game and does not ship. We use only MPFB2, never an export from the standalone MakeHuman application, whose site publishes different licence wording. Its game-engine rig is the Unreal skeleton: **51** of **53** bones have the same name as in the Quaternius library, so the animations land on every track after two renames. MPFB2 also ships **25** facial expression units (blink, brow, mouth corner), from which emotions are composed in the game.

Things we ruled out: MB-Lab, whose licence makes generated characters AGPL-3; Hunyuan3D, whose licence excludes the EU, output included; and the traditional Maramureș costume, which as far as we found does not exist anywhere as a wearable game garment. What exists are static museum scans of mannequins, useful as reference and nothing more.

## Animations: it was not retargeting after all

The animation libraries we use are CC0: Quaternius's two universal animation libraries, with **43** and **45** clips, and the KayKit character animations, whose licence file says CC0 and free for commercial use. We also use motion-capture data whose terms allow any use as long as the data itself is not resold.

Because characters and clips share the skeleton, no retargeting is needed. What fails is binding: on import, **0** of **53** tracks moved, because each track points at the skeleton node of its own source file. The fix rewrites only the node part of each track path and leaves the bone name alone. One small tool now binds **21** animations with none dead. A different rest pose (T-pose against A-pose) does not matter in Godot, since animations write absolute local transforms. What matters is that position tracks exist only on the root and the pelvis.

Gaps we plan around: the motion-capture set has no child walk, so children in the village never walk alone across it; they stand, run short scripted paths or play in place. It also has no scything, spinning or sign of the cross.

## Romanian voices, generated locally

Villagers speak in Romanian, generated on a laptop CPU with no GPU, as a build step. The game ships plain audio files and never sees the speech model. The village currently has **268** voice files, about **900 seconds** of speech.

Most attractive Romanian text-to-speech models are non-commercial: XTTS, the Meta MMS Romanian model, F5-TTS, the SWARA voices and others. Our first choice was the only Romanian Piper voice, out of **176** Piper voices. Its model card says `License: CC0`, and we took that as clearance.

It was not. That line sits under the heading **Dataset**: it is the licence of the Romanian recordings. The card declares no licence for the model, and its next section says it was fine-tuned from an English voice whose training data is licensed for research only, explicitly excluding commercial voice synthesis. Asked about exactly this, the upstream maintainer replied that he could not offer legal advice. We do not claim a legal verdict either way, but nobody in that chain has granted a commercial right, and a product sold on that basis would be a bet. We stopped betting, because replacing it costs one run.

The replacement is a Romanian VITS model from the Coqui registry, licensed BSD-3-Clause in two separate files, trained from scratch on Mozilla Common Voice, which is CC0. It has no parent model. It is a single female voice, measured at a median of **205 Hz**, against about **108 Hz** for the old male one, so every voice target had to be rewritten in hertz. From that one voice we make the others with the WORLD vocoder, which changes pitch and spectral envelope separately. Pitch alone turns a man into a sped-up man; a woman needs both numbers.

One rule holds regardless of licence: CC0 gives up copyright, not personality rights. The speaker is a real volunteer, so no character runs on the unaltered voice, and we never convert a voice towards a real person without signed consent. One thing is still open: the new voice has been measured but not yet judged by ear, and that verdict belongs to a person.

## Music and props

For folk music the plan relies on Béla Bartók's 1923 collection from Maramureș: **378** melodies from the game's own region, in the public domain worldwide. We dropped early 78 rpm recordings: they are public domain in the EU but protected in the United States until 2060 or later.

We also have a tool that generates music with Google's Lyria model. Its terms permit commercial use, but it comes with no IP indemnity, purely generated output is not protected by copyright in Romania or the United States, so re-uploads cannot be stopped, and YouTube requires AI-generated music to be disclosed. Romanian is not an officially supported language.

For props, the Sketchfab account of a Romanian cultural-heritage institute publishes **731** downloadable models, **728** of them CC-BY. The other three are non-commercial, so the licence is read per model, not per account. The default listing order silently missed **107** of the **731**; sorting by publication date found them. The platform changed owner in August 2026, which is why we download now and keep the licence record beside each file.

## Where we were wrong

The Piper voice is the main one: our own voice script stated for days that the model was CC0 and commercially fine, because we read a licence field without reading the heading above it. We also described a Sketchfab account as belonging to a Romanian open-air museum; a count showed only one of its **277** models carried that name and **102** were Greek. And our animation check first marked two clips as dead because it sampled one hand at two moments, in clips where the hand rightly stays still. It now takes eight moments across six bones and uses the largest deviation.

## Limits and checklist

None of this has been tested by a store review or by a release; SOLOMONAR is unreleased. Licences and platforms change, and CC-BY assets require visible credits from the first day.

**1.** Read the licence in the file, under its heading. **2.** Follow the chain: base model, fine-tune, dataset. **3.** Keep generators with copyleft code outside the game. **4.** Save a licence record next to each asset. **5.** Bind animation tracks to your skeleton before concluding you need retargeting. **6.** Never ship an unaltered real voice as a character. **7.** Have a person listen before a voice is approved.

## Questions and answers

### How do I check whether a free game asset can be used commercially?

Checking a free game asset for commercial use starts with the licence inside the downloaded file, not the label on the repository page. Read the licence under the heading it sits under, follow the chain the asset came from, and save a small licence record next to each asset. That record freezes the evidence and also builds the credits section. This is a reading of licences, not legal advice.

### Can a text-to-speech model marked CC0 be used in a commercial game?

A text-to-speech model marked CC0 is not automatically safe for a commercial game. On one Romanian voice model card, the CC0 line sat under the Dataset heading, so it covered the recordings, not the model. The card declared no model licence, and the model was fine-tuned from a voice whose training data was licensed for research only. A safer choice is a model trained from scratch, with its own permissive licence.

### Why do animations not move on my character in Godot when the skeletons match?

Animations often fail to move in Godot because each track points at the skeleton node of its own source file, not at the character's skeleton. When characters and clips share the same skeleton, no retargeting is needed. The fix rewrites only the node part of each track path and leaves the bone name alone. A different rest pose, such as a T-pose against an A-pose, does not matter in Godot.

### Can I use a volunteer's voice from a CC0 dataset as a game character?

A volunteer's voice from a CC0 dataset should not be used unaltered as a game character. CC0 gives up copyright, not personality rights, and the speaker is a real person. A cautious approach changes pitch and spectral envelope to build new voices, never converts a voice towards a real person without signed consent, and has a person listen before any voice is approved.

### Is AI-generated music safe to use in an indie game?

AI-generated music carries risks in an indie game even when the terms permit commercial use. A tool may offer no intellectual-property indemnity, purely generated output is not protected by copyright in Romania or the United States, so re-uploads cannot be stopped, and YouTube requires AI-generated music to be disclosed. Public-domain folk collections can be a cleaner source for traditional music.

### Do all models from one Sketchfab account share the same licence?

Models from one Sketchfab account do not necessarily share the same licence. One cultural-heritage account published mostly CC-BY models, but a few were non-commercial, so the licence has to be read per model, not per account. The default listing order can also silently miss models; sorting by publication date found the missing ones. CC-BY assets require visible credits from the first day.

## How to cite

**Cite this as:** Going Stellar (2026). *Game assets on a small budget: CC0 characters, animation retargeting and local Romanian voices*. GOING STELLAR S.R.L.. https://goingstellar.ro/methods/game-assets-on-a-small-budget/

```bibtex
@misc{goingstellar2026game,
  title  = {Game assets on a small budget: CC0 characters, animation retargeting and local Romanian voices},
  author = {{Going Stellar}},
  year   = {2026},
  url    = {https://goingstellar.ro/methods/game-assets-on-a-small-budget/},
  note   = {2026-10-11}
}
```

Licence. Free to quote with attribution.

## Also available

- This page as HTML: https://goingstellar.ro/methods/game-assets-on-a-small-budget/
- Same article in Romanian: https://goingstellar.ro/ro/metode/asseturi-de-joc-cu-buget-mic/
