ð¡Gltfãã¡ã€ã«ä»æ§
GLTFïŒGL Transmission FormatïŒã¯ã3Dã¢ãã«ãšãã®ã·ãŒã³ãèšè¿°ããããã®ãã©ãŒãããã§ãåºæ¬çã«ã¯ããã¹ãããŒã¹ã®JSONãã¡ã€ã«ã§ãããã®JSONãã¡ã€ã«ã«ã¯ã3Dã¢ãã«ã®æ§é ãã¡ãã·ã¥ããã¯ã¹ãã£ããããªã¢ã«ãã·ã§ãŒããŒãã¢ãã¡ãŒã·ã§ã³ãªã©ã®æ å ±ãå«ãŸããŠããŸããããããGLTFã¯ãã€ããªããŒã¿ïŒãã€ããªglTFãŸãã¯.glbãšããŠç¥ãããïŒãšããŠãä¿åãããããšãããããã®åœ¢åŒã§ã¯å šãŠã®æ å ±ãåäžã®ãã€ããªãã¡ã€ã«ã«ããã±ãŒãžãããŠããŸãããããã£ãŠãGLTFã¯ããã¹ããã¡ã€ã«ã§ãããšãããã€ããªãã¡ã€ã«ã§ãããšãèšããŸãã
Glbã¯zipãããŠããŸããïŒ
GLBïŒGLTFãã€ããªãã¡ã€ã«åœ¢åŒïŒã¯ãZIP圢åŒã§å§çž®ãããŠããããã§ã¯ãããŸãããGLBã¯ã3Dã¢ãã«ããŒã¿ãã·ã§ãŒããŒããã¯ã¹ãã£ãªã©ãäžã€ã®ãã€ããªãã¡ã€ã«ã«çµ±åãã圢åŒã§ãJSONæ§é ã®GLTFãã¡ã€ã«ãšãã€ããªã¢ã»ããããŒã¿ïŒãããã¡ïŒãçµã¿åããããã®ã§ãããã®ãã¡ã€ã«åœ¢åŒã¯ãå¹ççãªèªã¿èŸŒã¿ãšå®è¡ãå¯èœã«ããããã«èšèšãããŠãããããŒã¿ãéå§çž®ã®ç¶æ ã§æ ŒçŽããŠããŸãããã ãããã¡ã€ã«ãµã€ãºãåæžããããã«ZIPãä»ã®å§çž®æ¹æ³ãçšããŠæåã§å§çž®ããããšã¯å¯èœã§ãã
4.GLBãã¡ã€ã«ãã©ãŒãããä»æ§
4.1. äžè¬ïŒåèïŒ
glTF ã«ã¯ãäžç·ã«äœ¿çšã§ãã 2 ã€ã®é
ä¿¡ãªãã·ã§ã³ããããŸãïŒ
glTF JSONã¯ãå€éšã®ãã€ããªããŒã¿ïŒãžãªã¡ããªãããŒãã¬ãŒã ãã¹ãã³ïŒããã³ç»åãæããŸãã
glTF JSON ã¯ãããŒã¿ URI ã䜿çšããŠãbase64 ãšã³ã³ãŒãããããã€ã㪠ããŒã¿ãšç»åãã€ã³ã©ã€ã³ã§åã蟌ã¿ãŸãã
ãããã£ãŠãglTFãã¡ã€ã«ãããŒãããã«ã¯ãéåžžããã¹ãŠã®ãã€ããªããŒã¿ããã§ããããããã®åå¥ã®ãªã¯ãšã¹ãããbase64ãšã³ã³ãŒãã«ããäœåãªã¹ããŒã¹ãå¿ èŠã«ãªããŸããBase64ãšã³ã³ãŒãã£ã³ã°ã¯ãã³ãŒãã«äœåãªåŠçãå¿ èŠãšãããã¡ã€ã«ãµã€ãºãå¢å ãããŸãïŒãšã³ã³ãŒãããããªãœãŒã¹ã«å¯ŸããŠ~33%ïŒããã©ã³ã¹ããŒãã¬ã€ã€ãŒã®gzipã¯ãã¡ã€ã«ãµã€ãºã®å¢å ã軜æžããŸããã解åãšãã³ãŒãã¯ãŸã ããªãã®ããŒãæéãè¿œå ããŸãã
ãã®ãã¡ã€ã«ã»ãµã€ãºãšåŠçã®ãªãŒããŒããããåé¿ããããã«ãJSONããããã¡ãç»åãå«ãglTFã¢ã»ãããåäžã®ãã€ããªã»ãããã«æ ŒçŽã§ããã³ã³ããã»ãã©ãŒãããããã€ããªglTFãå°å ¥ãããŸããã
ãã€ããªglTFã¢ã»ããã§ãå€éšãªãœãŒã¹ãåç §ã§ããŸããããšãã°ãç»åãå¥ã®ãã¡ã€ã«ãšããŠä¿æãããã¢ããªã±ãŒã·ã§ã³ã¯ãç»å以å€ã®ã·ãŒã³ã«å¿ èŠãªãã¹ãŠããã€ããªglTFã«åã蟌ãããšãã§ããŸãã
4.2. æ§é
ãã€ããªglTFã¯ã次ã®ãããªæ§é ãæã€ïŒ
ããããŒãšåŒã°ãã12ãã€ãã®ããªã¢ã³ãã«ã
JSONã³ã³ãã³ããšãã€ããªããŒã¿ãå«ã1ã€ä»¥äžã®ãã£ã³ã¯ã
JSONãå«ããã£ã³ã¯ã¯ãéåžžéãå€éšãªãœãŒã¹ãåç §ããŠãããïŒMAYïŒãä»ã®ãã£ã³ã¯å ã«æ ŒçŽããããªãœãŒã¹ãåç §ããŠãããïŒMAYïŒã
4.4.2. ããããŒ
12ãã€ãã®ããããŒã¯3ã€ã®4ãã€ãã®ãšã³ããªãŒã§æ§æãããïŒ
uint32 magic
uint32 ããŒãžã§ã³
uint32 é·ã
magic 㯠0x46546C67 ãšçãããªããã°ãªããªããããã¯ASCIIæååglTFã§ããããã€ããªglTFãšããŠããŒã¿ãèå¥ããããã«äœ¿çšã§ããã
version ã¯ãBinary glTF ã³ã³ãããã©ãŒãããã®ããŒãžã§ã³ã瀺ããæ¬ä»æ§ã§ã¯ããŒãžã§ã³2ãå®çŸ©ããã
GLBããããŒã§æå®ãããããŒãžã§ã³ã¯GLBã³ã³ããããŒãžã§ã³ãåç §ããã ããªã®ã§ãGLBãã©ãŒããããããŒãããã¯ã©ã€ã¢ã³ãå®è£ ã¯ãJSONãã£ã³ã¯ã®ã¢ã»ããããŒãžã§ã³ããããã£ããã§ãã¯ããªããã°ãªããŸããïŒMUSTïŒã
lengthã¯ãããããŒãšãã¹ãŠã®ãã£ã³ã¯ãå«ããã€ããªglTFã®å šé·ïŒãã€ãåäœïŒã§ãã
ãé¡ãèŽããŸã