NULLパーツは「参照セル」の情報を持たない、位置情報や反転といったアトリビュートのみのパーツです。
フレームコントロールウィンドウのパーツ名の前にがついているのが「NULLパーツ」になります。
アニメーションの基準位置をNULLパーツで設定したり、汎用アニメーションのためのボーンとして使用したり、さまざまな使用方法があります。
NULLパーツの追加方法
「NULLパーツ」を追加する方法は以下のふたつがあります。
- 「フレームコントロール」ウィンドウのツールバーにある「NULLパーツの追加」ボタンを押す
- 「フレームコントロール」ウィンドウのコンテキストメニューで「NULLパーツの追加」を選択する
NULLパーツを編集する
NULLパーツは参照セルの情報が無い透明のパーツなので、フォーカス枠で操作しにくい場合はギズモを使用すると的確に操作することができます。
ギズモは現在選択されているパーツの原点位置を中心に表示されます。
ギズモはレイアウトウィンドウ上部の「ギズモを表示」アイコンをクリックして有効にすることで使用することが可能です。
NULLパーツの使い方
「アニメーションの基準位置」として
キャラクターが「走る」アニメーションを作りたい場合、「rootパーツ」を地面の接地点としてしまうと、キャラクター本体の基準位置とするパーツをどうすればよいか悩んでしまいます。
そんなときは「rootパーツ」の直下に「NULLパーツ」を作成し、そのNULLパーツをキャラクターの基準位置とします。
キャラクターの各パーツをそのNULLパーツの子パーツにすることで、「接地点」と「キャラクターの基準点」を両方持ったアニメーションを作成することができます。
上の図の例では、rootパーツを接地点に設定し、「Base」というNULLパーツをアニメーションの基準位置に設定しています。
装備に応じて武器の絵を切り替える等、表示の制御に
武器を振るうアニメーションなどを作成する際、「キャラクタの手の位置」に、物を持たせる目印・位置指定として、手の子パーツに「NULLパーツ」を設置すると便利です。
例えば「装備に応じて持っている物を変えたい」場合は、手の子パーツにNULLパーツを作成することで、持っている物を切り替えることができます。
汎用アニメーションを作る時のボーンとして
複数のNULLパーツで親子関係を構築することで、パーツを「ボーン」のように配置し、「歩く」「攻撃」といった汎用アニメーションを作成できます。
右図のようにパーツの親子関係をNULLパーツで作り、それぞれのNULLパーツの子パーツとして、それぞれの部位を配置することで、様々なポーズやアニメーションを作ることができます。
この状態で、配置しているパーツを別のテクスチャと交換すると、別のキャラクタ画像で同じアニメーションを作成することも可能です。
大量にキャラクターがいる場合、キャラクター毎にアニメーションを作成しなくてもよいため、大変便利です。
パーツをプログラムで差し替えられるような仕組みを構築したい
NULLパーツを使って画像とアトリビュート設定を別にすることで、パーツをプログラムで差し替えられる仕組みを構築することができます。
なお、NULLパーツと子パーツを調整することで、体格の違うキャラクターにも同じようなアニメーションをさせることが可能です。
パーツに依存しない当たり判定を設定したい時に
パーツの位置、大きさに依存しない当たり判定を設定したい場合、NULLパーツを応用することで「当たり判定」用の透明なパーツを作成することができます。
- フレームコントロールウィンドウの左上にある「NULLパーツの追加」で、新しいNULLパーツを作成します
- アトリビュートウィンドウの「パーツ情報」欄の、「パーツ種別」を「通常」に変更します。
- 「パーツ情報」欄の「当たり判定」を「四角形」にします。
- アトリビュート「X/Yスケール」に任意のサイズ入力し、サイズ調整します。
- 作成したパーツを、当たり判定をつけたいパーツの子パーツとして設定し、親子関係を構築します。
「hip」というパーツの当たり判定を「四角形」に設定した場合、「hip」のパーツの位置、大きさに合わせて設定されます。 | |
上記手順に則って、当たり判定用のパーツを作成することで、当たり判定を自由に設定することができます。 |
アニメーションデータを左右反転させたいときに
rootパーツや、一番親となるデータの1つ下にNULLパーツを作成し、アトリビュートの「Xスケール」を「-1」にすると、下図のように、レイアウトを崩さずに左右反転することが可能です。
上下反転させたい場合は「Yスケール」を「-1」にしてください。
この方法を利用すると、IK(インバースキネマティクス)が正常に動作しなくなります。
パーツIKを使用してアニメーション調整を行われる場合は、
- パーツIKを使用してアニメーション調整後にスケールを-1して左右反転をおこなう
- 左右反転した参照イメージを準備していただき、参照セルを変更してから、アニメーション調整をおこなう
……の、どちらかの方法でおこなっていただくようお願いします。
パーツIK(インバースキネマティクス)のハンドルに
IKを使用する際に、NULLパーツをハンドルとして設置し、動きの制御を行います。
レイアウトウィンドウ上部にあるアイコンをクリックする事で、下の階層からいくつ目までの親子関係のパーツに影響するかを設定します。
- 体
- 上腕
- 右腕
- NULLパーツ(IKのハンドル用)
というパーツの構成で、「右腕」と「上腕」を連動する形で動かしたいけれど、「体」は動かしたくない場合は、「IK影響範囲のリンク数」を「2」に設定します。(ハンドルとなるNULLパーツは換算しません)
NULLパーツを利用して汎用効果を作成する
スケール、座標移動を入れたNULLパーツを準備し、その子パーツとして、キャラクターのパーツを設定することで、NULLパーツに属する子パーツ全体に効果をかけることができます。
X・Yスケールを使ってズームイン・ズームアウトといったカメラ的な効果や、座標移動を使用してダメージを受けたときの振動などをNULLパーツで作成しておくと、さまざまなアニメーションに簡単に効果をつけることができ、大変便利です。
ただし、NULLパーツにはカラーブレンドや頂点変形は設定できないため、それらのアトリビュートを使用する効果をNULLパーツで作成することはできません。
ズームインをするNULLパーツを作成する
例として、ズームインの効果を持つNULLパーツを作成します。
NULLパーツを追加し、X・Yスケールのアトリビュートを、0フレーム目で「1」、最終フレームで「3」に設定します。
NULLパーツに属する形で子パーツを設定します。
NULLパーツの子パーツ全体に効果が反映され、ズームインを行うアニメーションが完成します。
ここで作成したNULLパーツを他のアニメーションデータにコピーすることで、どのアニメーションにもズームイン効果を反映することができます。
元アニメーション | NULLパーツ追加後 |
スケールの適用範囲をNULLパーツで制御する
OPTPiX SpriteStudio 5では「X/Yスケール」アトリビュートの継承を無効にすることができません。
親パーツと子パーツの間にNULLパーツを挟むことで、「X/Yスケール」の適用範囲を制御することができます。
例えば、以下のような状況の場合……
- 親パーツ:座標とスケールのキーが設定されている
- 子パーツA:親の座標・スケールを適用したい
- 子パーツB:親の座標は適用したいが、スケールを適用したくない
子パーツBに親のスケールを適用したくないので、以下のように、親パーツが持っている「座標」と「スケール」を分離することで制御を行います。
- NULLパーツ:座標を設定する
- 親パーツ:スケールを設定する
- 子パーツA:親のスケールが適用される
- 子パーツB:座標設定のみ継承される
- 親パーツ:スケールを設定する
【Ver.6】ローカルスケールを使用する
SpriteStudio Ver.6では、新たに追加されたアトリビュート「ローカルスケール」を使用することで同様の制御が行なえます。
詳しくは以下のページをご覧ください。
フォントの表示エリアを定義する
メッセージ等、フォントの表示エリアを定義したい場合、NULLパーツを活用します。
- NULLパーツを作成します。
- アトリビュートウィンドウの「パーツ情報」で、「パーツ種別」をNULLパーツから通常パーツに変更します。
- 空の通常パーツが完成します。
- 空のパーツのサイズをスケールで変更し、フォントの表示エリアを指定します。
下図の場合、赤い四角形がフォントの表示エリアとなります。
- 指定した表示エリアにプログラム制御でテキストを描画します。
関連ページ
- ギズモの操作方法
レイアウトウィンドウの「ギズモ」の操作方法について解説しています。 - 頂点変形したパーツを反転する
アトリビュート「頂点変形」を使用したパーツの反転方法をまとめています。 - キャラクタアニメーションを画像差し替えでキャラ変更したい
画像を差し替えてアニメーションのバリエーションを作成する方法を解説しています。 - フレームコントロールウィンドウ
- アトリビュートウィンドウ
- レイアウトウィンドウ