Pohyblivé 3D modely pro Kinect
← Úvod · kin3 – provoz a modely · Kalibrace kin3 · Návod k provozu
Kinect senzor neposílá data přímo do prohlížeče. Bridge
app\Kinect360Bridge.exe převádí pohyb na JSON přes WebSocket
(ws://127.0.0.1:8765) – 20 kloubů ve formátu Kinect SDK 1.8.
Pro animaci 3D modelu je potřeba retargeting: mapování těchto kloubů na kostru (rig) modelu.
1. Kinect 360 vs Kinect One (Xbox One)
| Kinect Xbox 360 | Kinect One / Xbox One | |
|---|---|---|
| SDK | Kinect for Windows SDK 1.8 | Kinect for Windows SDK 2.0 (ukončeno) |
| Klouby | 20 (Head, HandLeft, FootRight…) | 25 (+ prsty, SpineShoulder…) |
| Depth | 320×240, nižší rozlišení | 512×424, lepší hloubka |
| Náš bridge | Podporováno – Kinect360Bridge.exe |
Zatím ne – vyžaduje nový bridge (SDK 2.0) |
| Režimy | app\start-kin1.bat, app\start-kin2.bat |
Stejný princip po doplnění bridge |
| Modely | Kostra, point cloud, budoucí kin3 (GLB) | Stejné vizuály po retargetingu z 25 kloubů |
Všechny níže uvedené postupy a stažené modely cílí na Kinect 360, který máte dnes. U Kinect One je princip stejný (skeleton → rig), ale joint mapa a bridge jsou jiné – řeší se v další fázi.
2. Co už funguje (kin1 a kin2)
| Režim | Vzhled | Data | Poznámka |
|---|---|---|---|
| kin1 | 2D kostra – čáry a klouby na canvasu | 20 kloubů z WebSocket | Základní demo, nízké nároky na GPU |
| kin2 | Point cloud – tisíce bodů tvořících siluetu | Klouby → procedurální oblaky bodů* | *Bridge posílá i reálné depth body; kin2.js je zatím nesynchronizuje |
| kin3 (plán) | 3D rigovaný model (GLB/FBX) | 20 kloubů → rotace kostí rigu | Hotovo – viz kapitola kin3 |
3. Přehled možností pohyblivých modelů
| Varianta | Vzhled | Kinect 360 | Zdarma? | Náročnost integrace | Poznámka |
|---|---|---|---|---|---|
| A – Kostra (kin1) | Drátěný model | Hotovo | Ano | — | Výchozí demo v balíčku |
| B – Point cloud (kin2) | Depth silueta | Hotovo | Ano | — | Syntetický cloud z kloubů |
| C – GLB humanoid (kin3) | 3D postava s kostrou | Připraveno | Ano (ukázky) | Střední–vysoká | Mixamo, Khronos samples, vlastní FBX→GLB |
| D – Reálný depth cloud | Skutečné body z Kinectu | Částečně | Ano | Nízká | Bridge už posílá points[] – stačí upravit kin2.js |
| E – SMPL tělo | Realistické 3D tělo | Teoreticky | Výzkum | Velmi vysoká | Projekty SkeletonTracker, avatar (C++) |
| F – Rive / Live2D | 2D animovaná postava | Možné | Částečně | Střední | Plánováno jako rozšíření (zatím ne) |
| G – Placené 3D | Custom postava | Ano | Ne | — | Ready Player Me, TurboSquid (viz návod TurboSquid), vlastní modelář |
4. Stažené modely v balíčku (zdarma)
Do složky app\www\assets\models\ jsou zkopírovány testovací modely
z Khronos glTF Sample Assets
(licence CC-BY 4.0) a skeleton packy z itch.io (GreyFrogGames, KayKit).
Slouží k ověření načítání GLB a jako základ pro provoz kin3.
| Soubor | Velikost | Typ | Vhodné pro Kinect? |
|---|---|---|---|
CesiumMan.glb |
~430 KB | Humanoid, skin, animace | Ano – hlavní testovací postava |
RiggedFigure.glb |
~50 KB | Jednoduchá rigovaná postava | Ano – rychlý test rigu |
RiggedSimple.glb |
~15 KB | Minimální rig | Ano – ladění mapování kloubů |
Fox.glb |
~160 KB | Liška, 3 animace | Ne (jiná kostra) – test animací v Three.js |
GreyFrogSkeleton.glb |
~3,1 MB | Humanoidní kostra, animace | Ano – Halloween / veletrh, CC-BY 4.0 |
KayKit_Skeleton_Warrior.glb |
~360 KB | Stylizovaná kostra – válečník | Ano – doporučená KayKit varianta |
KayKit_Skeleton_Mage.glb |
~260 KB | Kostra – mág | Ano – fantasy varianta |
KayKit_Skeleton_Rogue.glb |
~330 KB | Kostra – lučištník | Ano – fantasy varianta |
KayKit_Skeleton_Minion.glb |
~320 KB | Základní kostra | Ano – nejlehčí KayKit |
BodyBlock.glb |
~5 MB | Mixamo humanoid | Ano – po kalibraci, vlastní postava |
Licence: viz app\www\assets\models\LICENSES.md.
U produkce doporučujeme vlastní postavu s jasnou licencí (např. Mixamo po přihlášení).
Náhled modelů
Testovací stránka (Three.js, rotace modelu, vestavěná animace):
- Spuštění: dvojklik na
app\start-modely-preview.bat - Soubor stránky:
app\www\modely-preview.html - Modely:
app\www\assets\models\*.glb
Nepoužívejte dvojklik na HTML soubor – prohlížeč pak nemůže načíst GLB (chyba „Failed to fetch“). Vždy spouštějte přes bat, který naběhne s vestavěným HTTP serverem.
5. Skeleton packy z itch.io – stažení, nastavení, kalibrace
V balíčku jsou předpřipravené rigované kostry ze dvou bezplatných zdrojů na itch.io. Oba packy jsou ve formátu GLB – lze je rovnou použít v kin3 po kalibraci.
GreyFrog SkeletonGreyFrogGames (itch.io), CC-BY 4.0
KayKit WarriorKay Lousberg / KayKit, CC0
KayKit MageKay Lousberg / KayKit, CC0
KayKit RogueKay Lousberg / KayKit, CC0
KayKit MinionKay Lousberg / KayKit, CC0| Zdroj | Co obsahuje | Licence | Odkaz |
|---|---|---|---|
| GreyFrogGames – Skeleton | 1× rigovaná kostra (Idle/Walk/Jump), Tier 1 zdarma | CC-BY 4.0 | itch.io/skeleton |
| KayKit – Skeletons | 4× postavy (Warrior, Mage, Rogue, Minion), Free 1.1 | CC0 | itch.io/kaykit-skeletons |
Automatické stažení a kopírování GLB
Modely jsou v balíčku již stažené. Pro obnovu nebo čistou instalaci použijte:
- Dvojklik na
app\setup-skeleton-models.bat- stáhne zipy z itch.io (skript
tools\download-itch.php), - rozbalí archivy do
app\www\assets\models\_downloads\, - zkopíruje GLB do
app\www\assets\models\.
- stáhne zipy z itch.io (skript
- Nebo ručně:
php tools\download-itch.php(vyžaduje PHP v PATH).
Ruční stažení z itch.io je také možné – na stránce zvolte Download Now (cena 0 USD)
a zip uložte do _downloads\. Pak spusťte znovu setup-skeleton-models.bat (přeskočí download, pokud zipy existují – nebo je přepíše).
Registrace v kin3-models.json
Skeleton modely jsou zapsány v app\www\data\kin3-models.json s těmito identifikátory:
| id | GLB soubor | hipBone (výchozí) | Spuštění kin3 |
|---|---|---|---|
greyfrogskeleton | GreyFrogSkeleton.glb | Root | app\start-kin3-greyfrogskeleton.bat |
kaykitwarrior | KayKit_Skeleton_Warrior.glb | hips | app\start-kin3-kaykitwarrior.bat |
kaykitmage | KayKit_Skeleton_Mage.glb | hips | app\start-kin3-kaykitmage.bat |
kaykitrogue | KayKit_Skeleton_Rogue.glb | hips | app\start-kin3-kaykitrogue.bat |
kaykitminion | KayKit_Skeleton_Minion.glb | hips | app\start-kin3-kaykitminion.bat |
Pole boneMap je prázdné – mapování kloubů doplníte ve vizuální kalibraci.
Podrobný popis jednotlivých modelů: kin3 – GreyFrog,
KayKit Warrior.
Kalibrace a spuštění na kiosku
- Ověřte kin1 – Kinect reaguje na pohyb (nebo
kin3_mock_mode: true). - Náhled GLB:
app\start-modely-preview.bat– v seznamu jsou GreyFrog a KayKit modely. - Kalibrace (příklad GreyFrog):
Pro KayKit Warrior:app\start-kin3-kalibrace-greyfrogskeleton.batapp\start-kin3-kalibrace-kaykitwarrior.bat - V kalibraci: vyberte model, nastavte kyčelní kost, Navrhnout automaticky, zkontrolujte segmenty, Uložit.
- Produkční režim:
app\start-kin3-greyfrogskeleton.bat app\start-kin3-kaykitwarrior.bat
Kompletní postup kalibrace: Kalibrace – krok za krokem. Tabulka všech modelů a bat souborů: Které modely kalibrovat.
Tipy k mapování kostí
| Model | Kyčel / kořen | Typické kosti paží | Poznámka |
|---|---|---|---|
| GreyFrog Skeleton | Root, Spine |
Arm_Upper.L, Arm_Lower.L… |
Prefix NoDMG_ u některých kostí – v kalibraci vybírejte aktivní kosti bez IK |
| KayKit (všechny postavy) | hips |
upperarm.l, lowerarm.l, hand.l |
Malá písmena, tečka jako oddělovač strany (.l / .r) |
Kontrolní seznam – skeleton modely
- GLB soubory v
app\www\assets\models\ - Záznamy v
kin3-models.jsons"humanoid": true - Bat soubory
start-kin3-*.batastart-kin3-kalibrace-*.batve složceapp\ - Náhled v
modely-previewOK - Kalibrace uložena do
kin3-mappings\{id}.json - kin3 s Kinectem kopíruje pohyb návštěvníka
- Licence: GreyFrog CC-BY (uvést autora), KayKit CC0
6. TurboSquid – placené anatomické modely
Kompletní návod pro nákup, stažení, převod FBX→GLB, kalibraci a nasazení placených koster z TurboSquid je na samostatné stránce turbosquid-anatomie.php (kapitola 7 v obsahu návodu).
Základní doporučený model: Product 1907610 – Lowpoly Human Skeleton Rigged
(turbosquidskeleton v kin3). V katalogu jsou i další modely z kategorie
Anatomy s náhledy.
7. Další zdroje zdarma (ke stažení / inspirace)
| Zdroj | Co nabízí | Kinect 360 | Odkaz |
|---|---|---|---|
| Mixamo | Stovky rigovaných postav + animace (FBX/GLB) | Ano – po exportu a mapování kloubů | mixamo.com (účet zdarma) |
| Khronos glTF Samples | Testovací rigované modely | Ano – už v balíčku | GitHub |
| Three.js examples | GLTFLoader, skinning, IK ukázky | Ano – knihovna pro kin3 | threejs.org |
| Kalidokit | Mapování skeleton → VRM/Live2D (Face/Body) | Částečně – jiný formát kloubů, nutná úprava | GitHub |
| DomainFlag / automatic-rigging | C++ – auto-rig + Kinect v1 animace | Přímo (20 kloubů) | GitHub |
| KinectAvatarUnity | Unity + Kinect v2 avatar | Ne – Kinect One (25 kloubů) | GitHub |
| Kinectron | Stream Kinect → prohlížeč (WebRTC) | Kinect v2 / Azure, ne 360 | GitHub |
| Sketchfab | CC0/CC-BY rigované modely | Ano – po kontrole rigu | sketchfab.com |
| GreyFrogGames – Skeleton | Rigovaná kostra GLB (itch.io) | Ano – v balíčku | itch.io · návod v balíčku |
| KayKit – Skeletons | 4× low-poly kostry GLB (CC0) | Ano – v balíčku | itch.io · návod v balíčku |
8. Klouby Kinect 360 (mapování pro 3D model)
Bridge a kin1/kin2 používají těchto 20 kloubů (Kinect SDK 1.8):
HipCenter, Spine, ShoulderCenter, Head,
ShoulderLeft, ElbowLeft, WristLeft, HandLeft,
ShoulderRight, ElbowRight, WristRight, HandRight,
HipLeft, KneeLeft, AnkleLeft, FootLeft,
HipRight, KneeRight, AnkleRight, FootRight
Pro kin3 je potřeba tabulka Kinect kloub → kost v GLB, např.:
| Kinect (SDK 1.8) | Typická kost v humanoid rigu |
|---|---|
Head | head / neck |
ShoulderCenter | spine2 / chest |
ShoulderLeft / ShoulderRight | upperarm L/R |
ElbowLeft / ElbowRight | forearm L/R |
HandLeft / HandRight | hand L/R |
HipCenter | hips / pelvis |
HipLeft / HipRight | thigh L/R |
KneeLeft / KneeRight | shin L/R |
FootLeft / FootRight | foot L/R |
Přesné názvy kostí závisí na exportu (Mixamo: mixamorig:Head, CesiumMan: vlastní hierarchie, KayKit: upperarm.l, GreyFrog: Arm_Upper.L).
Mapování se ladí jednou pro každý model.
9. Zprovoznění kin3 – provoz vs. vývoj
Pro běžný provoz na kiosku použijte kapitolu kin3 – první spuštění a kalibraci mapování. Níže je původní technický postup pro vývojáře (implementace již proběhla).
- Ověřte Kinect pipeline – kin1 musí reagovat na pohyb (návod k prvnímu spuštění).
-
Otestujte stažené GLB – otevřete
app\www\modely-preview.htmla ověřte, že se modely načítají (CesiumMan, RiggedFigure). -
Přidejte Three.js do projektu – vytvořte
kin3.html+kin3.js(stejná struktura jako kin1, ale WebGL renderer místo canvas 2D). -
Načtěte model z configu – nové pole v
kinect.json, např."kin3_model": "assets/models/CesiumMan.glb". -
Připojte WebSocket – stejný zdroj jako kin1 (
kin1_ws_url/ novékin3_ws_url). - Implementujte retargeting – z pozic 20 kloubů spočítejte rotace kostí (IK nebo look-at mezi páry kloubů jako v open-source projektech výše).
-
Vylaďte měřítko a pozici – Kinect data jsou v metrech; model může potřebovat
scale,offsetainvert_xjako u kin1. -
Přidejte
start-kin3.bat– spouštíKinectKioskHost.exe kin3(po doplnění režimu do hostu). -
Volitelně: reálný depth cloud – v kin2.js načtěte pole
pointsz bridge (rychlejší vizuální upgrade bez rigu).
Navrhovaná rozšíření v kinect.json (budoucí kin3)
{
"kin3_ws_url": "ws://127.0.0.1:8765",
"kin3_model": "assets/models/CesiumMan.glb",
"kin3_model_scale": 1.0,
"kin3_invert_x": false,
"kin3_smooth": 5,
"kin3_mock_mode": false
}
12. Placené a pokročilé varianty
TurboSquid low-poly kostra (Product 1907610) je popsána v kapitole 7 – TurboSquid anatomie včetně nákupu, převodu FBX→GLB a kalibrace. Další možnosti zatím nejsou v balíčku – řeší se podle objednávky:
- Ready Player Me – vlastní 3D avatar z fotky, export GLB
- CGTrader / další TurboSquid modely – stejný postup jako v kapitole 7
- Vlastní modelace – Blender + rig pro přesný vzhled instituce
- SMPL / D-ID – fotorealistické tělo nebo video avatar
- Kinect One bridge – nový bridge pro SDK 2.0 a 25 kloubů
13. Kontrolní seznam – modely a kin3
- kin1 reaguje na pohyb návštěvníka (nebo mock mode pro test)
- Složka
app\www\assets\models\obsahuje stažené GLB modely-preview.htmlzobrazí model s animací- Vybraná produkční postava má jasnou licenci (Mixamo / vlastní / zakoupená)
- Skeleton packy z itch.io stažené a zkalibrované – viz kapitola 5 – Skeleton packy
- Placený TurboSquid model: zakoupen, převeden, zkalibrován – viz kapitola 7 – TurboSquid
- Vlastní Mixamo / FBX model: převod na GLB – viz návod FBX → GLB
- Mapování 20 Kinect kloubů → rig je zdokumentováno pro zvolený model (kalibrace)
- kin3 bat + kalibrace otestovány na kiosku