BlenderのNLA(Non-Linear Animation:ノンリニアアニメーション)エディタは、複数のアニメーションを効率的に管理・編集するための強力なツールです。アニメーションを非線形に組み合わせたり、調整することができ、複雑な動きをシンプルに管理できるため、キャラクターアニメーションやシーン全体のアニメーション作成に非常に便利です。
この記事では、NLAエディタの基本的な使い方から、実際の作業でどのように活用するかを詳しく解説します。特に、アクションのストリッピングや複数のアニメーションをタイムラインで組み合わせる方法について紹介し、Blenderでのアニメーション作業をより効率的に進めるためのコツ、複雑な作業でミスしないためのコツをお伝えします。
この記事は、Blenderのアニメーション制作、NLAエディタについて詳しく知りたい中級者向けの記事です。
難易度
今回解説で使用したキャラクターを使って、NLAエディタを活用し、短いショートアニメーションを作成してみました。歩き、座り、しゃべりなどアニメーションの組み合わせや調整をNLAでどのように行うかを実際に体験しながら、効率的に編集する方法を確認できます。※音が出ます。
「おつかれの猫さん」
BGM にょ太郎の小さな悩み/田中芳典さん
声 VOICEVOX:後鬼
Dope Sheetの使い方
NLAエディタとDope Sheetの関連についてのざっくりとした解説:
Dope SheetとNLAエディタ(Non-Linear Animationエディタ)は、Blenderのアニメーション作業において密接に関連しています。Dope Sheetは、個別のアクションやキーをタイムラインで管理するツールで、アニメーションの詳細な調整を行います。一方、NLAエディタは、これらのアクションを非線形に組み合わせて管理するツールです。
簡単に言うと、Dope Sheetでアニメーションを作成・編集し、その後、NLAエディタで作成したアクションを組み合わせてシーン全体のアニメーションを構築する流れになります。例えば、キャラクターの歩行アニメーションとジャンプアニメーションをDope Sheetで別々に作り、それらをNLAエディタで非線形に並べて、キャラクターが歩いてジャンプするような複雑なアニメーションを作成します。
NLAエディタを使うことで、複数のアクションを効率よく管理・調整でき、同じアクションを複数のシーンで再利用したり、簡単にタイミングを変えることができます。Dope SheetとNLAエディタを組み合わせて使うことで、Blenderでのアニメーション制作がよりスムーズかつ効率的になります。
まずDope Sheetについてですが、いろいろモードがあります。
Dope Sheet (通常モード)…基本的にはタイムラインとほぼ一緒。再生やストップボタンはない。NLAストリップ化されたものはTabを押さないと見れない。Select, Channel, Keyという項目があり、それらでプラスの機能がある(例えばチャンネルグループ機能がある)。多分複雑なシーンなどでキーを見やすくしたり、編集しやすくするためのモード
Action Editor…アクションを作る。オブジェクトやリグの位置・回転・拡縮アニメ編集。マテリアルやジオメトリーノード、各数値を連動させたいならドライバー設定すべし。NLAストリップ作成にも使えるが、ただアクションを作成するのにも使える。一個ずつ保存しながら(フェイクユーザー設定忘れずに)作成しないと消えるが、ストリップ化すると消えないらしい
Shape Key Editor…シェイプキーのアクションを作る。シェイプキーもグラフエディタで補間調整可能。シェイプキーとアクションエディタで作ったアクションストリップはNLAエディタで一緒に組み合わせてアニメーションを作ることが可能
Grease Pencil…Grease Pencilオブジェクトのアニメーションを編集するモード。2Dアニメーションや手描きのエフェクトを作る際に使用するらしい。使ったことがない。またわかったら追記予定
Mask…Compositeやビデオ編集時に作成したマスクの変形アニメに使うらしい。使ったことがない。またわかったら追記予定
Cache File…Alembic, USDキャッシュのアニメーションデータを少し調整できるらしい。未使用。
グリースペンシルは未使用なのでよくわからないけど、とにかくシェイプキー、リグ、オブジェクトのトランスフォーム変換くらいしか使えないと思っていい。マテリアルやジオメトリノードの数値を変化させるアニメーションはDope SheetやAction Editorにはキーフレームが出てこない、が、NLAエディタでは出てきて、ストリップを作ることが可能。ただマテリアルやジオメトリノードは多数のオブジェクトに同一のものをつけるとそのまま複数のオブジェクトにアニメーションがついてしまう。複製して違うノードをつけてもバグるのか動かなくなる等不審な動きをするのであまりストリップ化しない方がいい気がする。
NLAエディタとActionEditor(おそらく他のモードも)はかなり連動していて、セットで使用してアクションを作成します。
以下の図でもわかるように、Action EditorではNLAエディタにストリップとして保存したアクションを▼ボタンで移動しながら編集できたりします。普通はTabを押さないとキーフレーム編集できないんですが、二つのエディタを開いておき、▼ボタンでストリップに移動すると、そのままキーフレーム編集ができます。新しいアクションを作ろうとしてNEWを押した場合、NLAエディタの一番上に編集中のキーフレームがそのまま表れますし、どちらのPush Downを押してもストリップを作成することができます。

アクション作成方法
Action Editorでは、新規を押してオブジェクト、リグの位置・回転・スケール、などのアニメーションをキーフレームを打って作成します。
ストリップがいらない場合
ストリップがいらない場合はそのまま紙アイコンのNew Actionを押して新しいアクションを作成することができます。(このとき盾マークのフェイクユーザーを押しておかないと、ファイルを閉じたらアクションが削除されてしまいます。)
ストリップ作成する場合
ストリップを作成する場合は以下の図のように、Push DownかStashを押します。
Push Down…ストリップが作成され、すぐにアニメが再生され、編集できる(ロックが外れる)ようになる
Stash…ストリップが作成されるがミュート状態(チェックが外れている)で、ロックもかかっている。また、トラック名もアクション名がついていない(保留のような意味合いなので、普通はpush downで作成した方が楽だと思う)

捨てるとき
アクションを捨てるときはアクション名の横の×を押せば、ファイルを閉じてまた開いたときに削除されます。
アクションを作るときの注意
基本1
まず、動かすボーンだけキーフレームを入れます。動かさないボーンにキーフレームをいれない。
これは、NLAエディタで動きをミックスするときに重要になります。
基本2
リピート動きは1サイクルの長さをきちんと調整する
歩きや走りなどのリピートさせる動きは、次のサイクルへ自然に移行したいため、最初のキーフレームを最後にしたいフレームの後に打つことがあります。しかしこのままアクションを作ると、キーフレームが存在するフレームまでアクションストリップとして作成されてしまいます。
なので、例えば30フレームで歩きアクションの1サイクルを作りたかったのに、31フレーム目に最初のキーフレームを打っておくと、アクションストリップを作成したら31フレームのアクションストリップが出来てしまいます。
この修正方法としては、
1 …アクションストリップ作成前に、最後のフレームにキーを打って30フレームぴったりのアクションを作っておく
2 …アクションストリップ作成後にアクションを修正
3 …アクションストリップを30フレームにクリップする
があります。
以下は2のアクションストリップ作成後にアクション修正する方法です。(ストリップの長さだけでなく、他にもアクションを修正したいときにも使えます。)

基本3
まず修正したいアクション以外のアクションストリップのチェックは絶対に外します。他のアクションが混じっているとぐじゃぐじゃになります。
修正したいストリップ上でtabを押し、Action Editorで編集します。
ボーンの動きを編集するとき、そのアクションで使われてるボーンだけを選択するために、Action Editorの左側のボーン選択画面で、一番上のボーンを選択してからShiftと同時に一番下のボーンを押すとちゃんと全部選択できます。(この場所でAを押しても全部選択できるけど、場所を間違うとすべてのボーンを選択してしまうので、おっちょこちょいな人はShiftで選択した方が危険は少ないかもしれません。)
基本4
ボーンは全部可視化しておく
Bone Collectionで不可視化してあるボーンを選択することはできないし、キーフレームも出てこなくなります。絶対全部可視化しておきます。
これらに注意してアクションを修正し、ストリップの長さもActive StripのEndの数値を修正します。
次は3のアクションストリップをクリップして1サイクルの長さを変える方法です。

アクションストリップの内容のアクションは修正せず、1サイクルの長さを変えます。
Active StripのEndの数値は、あくまでも現在アクティブになってるストリップの長さで、1サイクルの長さを変えるものではありません。
その下のAction ClipのEndの数値を変えることで、ストリップの長さを変えることができます。
ただこの方法だと、Tabを押すたびに元の長さに戻ってしまいますので注意が必要です。(後でわかりましたが、Sync Lengthにチェックが入ってると戻ってしまうみたいです。チェックを外せば、Action Clipの長さは戻らないようです。)
1サイクルの長さは調整しなくてもいいようにちゃんと最後のフレームにキーフレームを打って作成しておくのがシンプルでトラブルがなさそうに思います。
NLAエディタでストリップを調整
ストリップの移動…G押さなくてもマウスドラッグで動きます
ストリップ分割、カット…Yでストリップが分割できるので、必要なところだけカットできます。Action ClipでStartやEndの値を変えることでも必要な部分だけにカットできます。
ストリップのスピード変更…Sでバーを起点にストリップを拡縮でき、スピードが変わります。Action ClipのPlayback Scaleを変えることでもスピードが変わります。

Animated Strip Timeは、アクションのスピードを自由に調整できます。
1~20フレームのアクションストリップは、通常の速さで再生するなら1のとき1、20フレームのときは20とキーフレームを打ちます。早くしたい場合は20フレームときに40と打つと2倍になり、速さが1倍から2倍になるというように、速度が変化していくアニメを作ることが簡単にできるようになります。
Cyclic Strip Timeにチェックが入ってると、アクティブストリップが終わるまでそのアクションがリピートされます。
逆再生…Active StripのPlayback Reversedにチェックをいれる
アクションのリピート…Action ClipのRepeatに何回リピートしたいか数値を入れる

注意
ストリップの複製…Shift + Dがリンクコピーになっている(Alt + Dが以前はリンクコピーになった気がしたけど今だと普通の複製になっている。リンクコピーにしたい場合はAction ClipのAction名をリンクコピーしたいアクション名と同名にする)
Blenderだと大体Alt + Dがリンクコピーなんですが、なぜかNLAエディタでは逆で、Shift + Dがアクションはリンクコピーになってしまっています。多分、負荷を減らすために、どうせキーフレームの編集などしないと思ってShiftをリンクコピーにしたのかもしれませんが、かなり誤解する人が多い改変かもしれません。
複製してキーフレームを編集する場合はアクション名が元のアクション名と違うことを必ず確認しましょう
ActionのManual Frame Range…あまりよくわからなかった。スピードなどアニメーションを変化させるというものではないとマニュアルにあったが、範囲を設定してTabを押して戻ると、設定した範囲のストリップになってたりする。CyclickAnimationが作れるのかと思ってフレームを長くしてみてもリピートはされてませんでした…。
アニメーションの補間
上下にアクションストリップを重ねたとき、アニメーションを合成させる機能があります。上下にアクションストリップを積むと、上のアクションが優先されます。
Extrapolation(外挿)…そのアクションストリップの開始前や終了後の挙動をどうするか。
Hold…開始時と終了時のポーズをストリップの前後でずっと継続する。
Nothing…アクションストリップがない部分では何も影響しない。
Hold Forward…終了時のポーズだけ終了後もずっと続ける。
ポーズが残るところは薄くオレンジがつくので見るとわかりやすいようになっています。大体はアクションがあるときにだけ影響させたいときが多いと思うので、アクション合成時はNothingにしておくことが多い気がします(なぜかデフォルトはHoldですが)

Blending(アニメの合成方法)…アクションの合成は、同じボーンを使っているときの合成方法になります。身体のアクションと表情のシェイプキーなど、同じボーンが使われてないなら、どちらもアクションするだけです。
Replace…下にあるアクションは影響せず、上にあるアクションをする。
Combine…いい感じに合成してくれる。(少し加算っぽいけどBlenderの計算式がある)
Add,Subtract,Multiply…合成方法。加算や減算、掛け算などをしてくれるらしい。あまり使ったことない。Combineでうまくいかないとき試してみてもいいかもしれない。
Combineの計算式はBlenderマニュアルにあります。
Blend In / Out…アクションストリップの開始、終了時にフェードイン、アウトをどのくらいのフレーム数でつけるか決めることができ、Replaceなどでアニメが不自然に切り替わってしまうときに自然な動きにすることができます。
Auto Blend In/Out…重なった部分のフレーム幅でフェードをつけてくれます。
Animated Influence…アクションストリップの影響度を時間軸で自由に変化させられるので、Blend In/Outよりも自由にフェードや補間をつけることができます。
横にアクションストリップを並べたときは、二つのストリップを選択し、Shift + TやAddメニューのTransitionで中間のアクションを生成することができます。

補間について詳しくは以下の動画がとても参考になりました。
Modifiers
アクションストリップにモディファイアをつけてアクションにちょっとした変化をつけることもできます。