Blender 複数のアニメーションを持つglTFを書き出す方法


概要

Blender上で、1つのオブジェクトに対して複数のアニメーションが存在するようなglTFファイルの書き出し方が分からなかったのでメモ

結論

Nonlinear Animation Editor上で複数NlaTrackを追加すればいいです。

解説

結論は上記の通りですが、味気ないので書き出しまでの手順を記します。

Nonlinear Animation Editorを開きます

適当にAction Editor上でActionを追加し、「Push Down」を押して Nonlinear Animation Editor に追加します。

あとは、File > Export > glTF 2.0 でオブジェクトを書き出せばOKです。

書き出したglTFの中身にもちゃんと"animations"が存在していました。

    "animations" : [
        {
            "channels" : [
                {
                    "sampler" : 0,
                    "target" : {
                        "node" : 0,
                        "path" : "translation"
                    }
                }
            ],
            "name" : "Location",
            "samplers" : [
                {
                    "input" : 2,
                    "interpolation" : "LINEAR",
                    "output" : 3
                }
            ]
        },
        {
            "channels" : [
                {
                    "sampler" : 0,
                    "target" : {
                        "node" : 0,
                        "path" : "rotation"
                    }
                }
            ],
            "name" : "Rotation",
            "samplers" : [
                {
                    "input" : 2,
                    "interpolation" : "LINEAR",
                    "output" : 4
                }
            ]
        },
        {
            "channels" : [
                {
                    "sampler" : 0,
                    "target" : {
                        "node" : 0,
                        "path" : "scale"
                    }
                }
            ],
            "name" : "Scale",
            "samplers" : [
                {
                    "input" : 2,
                    "interpolation" : "LINEAR",
                    "output" : 5
                }
            ]
        }
    ],

また、glTF Tools Extension for Visual Studio Codeで動作確認もしたところ無事再生もできました。