複数の歯車を使った機械仕掛けのアニメーション – モーション指定

  • モーションプレビューを速くするために、自由曲面をポリゴンメッシュに変換

前回配置した歯車に、モーションを与えるためのジョイントを割り当てます。
平歯車」「冠歯車」では回転ジョイントを使用。
ラックとピニオン」のラックで直線移動ジョイント、ピニオンで回転ジョイントを使用。
スプロケットとローラーチェーン」のスプロケットで回転ジョイント、ローラーチェーンでパスジョイントを使用します。

歯車に回転ジョイントを与える

それぞれの歯車の軸が中心になるように回転ジョイントを配置します。

歯車や軸など、回転の影響を受ける形状を回転ジョイント内に入れておきます。
3つの歯車を持つ軸については、1つの回転ジョイントに軸と3つの歯車が入ることになりますね。

回転のモーションを指定

モーターに一番近い歯車から開始して、順番に回転ジョイントのモーションを指定していきます。
歯車は以下のような半径/歯数となっています。

歯車A「半径20mm/歯数18」の回転ジョイントでは、
モーション設定ウィンドウで30フレーム目で360度回転するようにキーフレームを指定しました。

回転ジョイントの「範囲」をオフにして、-180~+180度以上の角度指定をできるようにしています。

これが回転の速度になります。
1つの歯の長さが同一の平歯車や冠歯車/スプロケット/ピニオンを連鎖させた場合、半径と回転速度は反比例の関係になります。

歯車Aと隣り合う歯車B「半径30mm/歯数27」の回転ジョイントでは、

30フレーム目の角度 = 360 * (20/30) = 240

と回転角度が計算できます。「半径20mmのときに360度」の反比例の計算になります。
また、隣り合う平歯車同士の回転は回転の向きが反転するため、
この場合は歯車Bは30フレーム目で-240度の回転角度になります。

次に、歯車Bと隣り合う冠歯車D「半径20mm/歯数18」の回転ジョイントは、
歯車Aと同じ半径です。
この場合は、歯車Aと同じで30フレームで360度の回転角度となります。

歯車Dと歯車Eは同じ軸上にあるため回転の向きは同じ、また歯車Eは半径20mmであるので、これは30フレームで360度の回転となります。
このように、連鎖する歯車の回転ジョイントでの回転角度を割り当てていきます。

スプロケットとローラーチェーンのモーションを与える

歯車Bの回転(半径30mm、30フレームで-240度)により、同じ軸上にある
歯車B’とスプロケットの歯車C「半径20mm/歯数18」が回転します。

このとき、歯車Cは30フレームで-240度の回転、となっている点に注目するようにします。
ここで、半径20mmの歯車の回転角度が-360度ではなく-240度に変わりました。
このように、同一の軸上で歯車の半径を変えることで回転速度を変更できますね。

この場合は、歯車Cからの回転の連鎖以降は少し速度低下したことになります。
歯車Cはスプロケットであるので、スプロケットとローラーチェーンを見ていきます。
ローラーチェーンは、1つ1つのローラー部ごとにパスジョイントを使用して指定の「閉じた線形状」に沿って移動するようにしています。

歯車Cと歯車C’の中心間の距離は81.18mm、歯車はともに半径20mmとなっています。
この場合のローラーチェーンの長さは「スプロケットとローラーチェーンを動かす」で記載した計算式より、

ローラーチェーンの長さ = スプロケットの円周 + スプロケット間の距離 x 2

で計算できます。
円周の計算式は「半径 * 2 * π」になります。
半径20mmに少し浮かせるための2mmのマージンを設けて計算し、
「(20+2) * 2 * π + 81.18 * 2 = 300.59」となりました。

半径20mmのスプロケットは30フレーム目で240度の回転なのでこのときの移動距離は
「半径20mmの円周 * (240/360)」となります。
半径20mmに2mmのマージンを設けて計算し「(20+2) * 2 * π * (240/360) = 92.15」
ローラーチェーンの長さがローラーチェーン一回転分の距離なので、
「92.15/300.59 = 0.30」が、個々のローラー部の30フレーム目でのパスジョイントの値となります。

※ パスジョイントの「方向制御する」の機能は、Shade3DのStandard/Professional版で使用できます。Basic版では使用できません。
Basic版ではパス+回転ジョイントを使用すると、同様のモーションを与えることができます。

直線移動のラックに向かうモーション

ローラーチェーンのスプロケット歯車C’につながる歯車Gは、同一の軸上にあります。
このときの軸の回転ジョイントの30フレーム目での回転角度は、歯車Cの時と同じで-240度となります。
下画像は後ろから見たときの歯車になります。

歯車G「半径31.11mm/歯数28」から冠歯車H「半径22.22mm/歯数20」につながります。
このときの冠歯車Hの30フレーム目での回転角度は
「歯車Gの30フレーム目の回転角度 * (歯車Gの半径/歯車Hの半径)」より「240*(31.11/22.22)=336.02」となります。

ラックの直線移動ジョイント

ラックとピニオンを動かす」を参考に、ラックを直線移動ジョイントで動かしていきます。

ピニオンに相当する歯車I「半径16.66mm/歯数15」は冠歯車Hと同じ軸上にあるため、
30フレーム目の回転角度は336.02度になります。
歯車Iにつながるラックは、この歯車Iの回転による移動量分直線移動することになります。

歯車Iの30フレーム目の回転による距離は円周の式より以下のように計算できます。


歯車Iの円周 = 16.66 * 2 * 3.141592 = 104.68
30フレーム目での移動量 = (歯車Iの回転角度/360) * 歯車Iの円周 = (336.02/360.0) * 104.68 = 97.71

歯車Iでの30フレーム目の回転でできる移動量と、ラックの移動距離は同じになります。
つまり、ブラウザで直線移動ジョイントを選択したときに表示される形状情報ウィンドウで、
始点から終点の距離を97.71mmになるように調整すると、
モーションウィンドウで30フレーム目でキーフレーム値を1.0にしたときに、歯車Iの回転とかみ合うことになります。

モーションをプレビューすると以下のようになりました。

一連のモーションをプレビュー

以上で、すべての歯車のモーションの指定は完了です。
これをプレビューしてみます。
自由曲面のままではプレビューが重いため、歯車を事前にポリゴンメッシュに「曲面の分割」を「粗い」として変換しました。
プレビューのためにポリゴンメッシュに変換しただけですので、レンダリングは自由曲面のままで問題ありません。

正面から見た歯車のアニメーションです。

後ろから見た歯車のアニメーションです。

アニメーションの歯車カテゴリでの最終目標はこれで達成しました。
作品のように仕上げていくため、次回、表面材質の指定とレンダリングについて説明していきます。

カテゴリー: アニメーション