見出し画像

[2.8]ジャンプ&ホールド

「箱がジャンプしてそのあと空中でホールド、ストンと落ちる」という動きを作っていきたいと思います。

・ 左にジャンプ
・ 右にジャンプ
・ふわふわと浮いて
・ストンと落ちる

というアニメーションを作ってみたいと思います。

人によっては以下2枚のスクショでだいたいやっていることがわかるかもしれません。

プラスして「高さに応じて影の大きさが変わる」ギミックを仕込みます。

オブジェクトの配置

今回の登場人物は Cube とPlane 2枚。わかりやすいようにそれぞれマテリアルを割り当てておきましょう。作業自体の表示モードはDevLookで。

配置は Cube の高さを Z=1 とし、影となるPlane高さを Z=0 とします。床に相当するfloorは Z=0 より若干低い位置に配置します。

・ 動かす本体: Cube = (0,0,1)
・ 影: Plane = (0,0,0)
・ 床: floor = (0,0,-0.03)

高さに応じて影の大きさが変わる

擬似的な影として、板ポリゴン(Plane)を用意します。実生活でボールをバウンドさせてみると分かるんですが、床面に対して高くバウンドすると影が小さくなりますね。この効果を作ってみます。


・Cubeが接地(Z=1)している時の影の大きさ: Size =1
・Cubeの高さがZ=3 またはそれ以上の時の影の大きさ: Size =0.5
・Cubeの高さが 1〜3 の間はリニアに大きさが変わる
・(Zが1より小さくなることはしない=考慮しない)
・(床面はZ=0で固定)

これをドライバーで使う場合の式です。三項演算子(Pythonでは「条件式」として説明があります)を使います。

(1 - (var-1)/4) if (var - 1 ) <2.0 else .5

Planeオブジェクトを選択した状態で、プロパティパネル、Scale: の X: の入力項目上で右クリックしてメニューを表示し、 Add Driver をクリックします。

すると Driver Propertyパネルが表示されるので、設定していきます。途中でパネルが閉じた場合には、Scale: > X: の入力項目上で右クリックしてメニューを表示し、 Edit Driver をクリックしてパネルを開くことができます。

・ Expression:  (1 - (var-1)/4) if (var - 1 ) <2.0 else .5
・ Object: Cube
・ Type: Z Location

設定を終えたら、Update Dependicies ボタンを押します。

なお、パネル自体はマウスカーソルをパネルから離すと勝手に閉じます。

これを Scale: X: および Y: に対して実施します。

うまく動くか確認のために、Cubeを選択し、移動させます。

ショートカットキー[G][Z]で上下に動かして床から離れた度合いによって影となるオブジェクトの大きさが変わります。

コンストレイント追加

余談ですが、重なったオブジェクトを選択するときに[Alt]+左クリックで重なって隠れているオブジェクトも選択できます

影となるPlaneオブジェクトは高さは床面を維持し、Cubeの真下に位置するようにしたいので、ここでPlaneオブジェクトに対してCopy Locationコンストレイントを追加します。

・ Target: Cube
・ X: Enabled
・ Y: Enabled


アニメーションカーブを編集

ヘッダのエディタータイプを指定してグラフエディターを開きます。

キーを打っていくこと自体は詳しく説明しませんが、だいたい以下のような順番で「ジャンプの動作」として作っています。

・ジャンプ前のコマ数でキーを打つ
・ジャンプ終了コマ数でキーを打つ
・ジャンプ中に最高点となるコマ数でキーを打つ(大まかでok)
・Interpolation で効果を追加(バウンドしている感)
・タイミングおよびタメツメをキー位置、カーブハンドル調整

モディファイアの追加

動画最後の方の、「ふわふわと浮き上がる」というアニメーション効果について。フレーム45から80にかけてノイズモディファイアを追加しています。上がモディファイア追加前、下が追加後、です。

対象のカーブを選択している状態で、グラフエディタの右側、プロパティシェルフのModifierタブをクリックして、Add Modifierから Noise をクリックして追加します。

Restrict Frame Range でノイズの開始・終了コマ数を設定します。


Tip: 影を落とさないオプション

レンダリング時に設置した照明の影ができてしまって、擬似的な影が意味をなさないということがないように、Cubeの影を発生させないようにマテリアルを設定します。マテリアルオプションを変更した場合には3Dビューで他のオブジェクトを選択するなどしないと表示が更新されないので注意しましょう。

・ Settings > Shadow Mode: None

または、照明側の設定で「影を落とさない」ように Shadow のチェックを外す、という方法も使えます。

Light > Shadow: Disabled

まとめ

まとめます

・ポリゴンで影を擬似的に作って「リアルではない」表現として使う
・影の大きさをドライバーを使って制御する
・アニメーションカーブの追加とカーブの効果(Interpolation)をうまく使う
・照明による影はオブジェクトのマテリアル、照明の設定で無効にできる


お読みいただきありがとうございます。サポートいただいた分はおやつのグレードアップに使おうかと思います。スキ、SNSにシェアもよろしくお願いします!