devlog [naru design]

プログラミングやテクニカルな内容の覚え書き。

motion panelのtargetに目標アイテムを選択すると、アイテムの向きを自動的に制御することができます。
ただし、この方法では時間軸でtargetをON/OFFさせることはできません。

RelativityプラグインとSliderを使って時間軸でON/OFFできるターゲットを実現してみました。

操作動画


# 音声やテキストが無いので分かりにくいです。ゴメンナサイ。

補足

RelativityのVariablesに設定した数式

A: 0
B: -1
C: XW(B, t)
D: ZW(B, t)
E: #A * #C + #B * #D
F: sqrt(#A * #A + #B * #B)
G: sqrt(#C * #C + #D * #D)
H: acos(#E / (#F * #G))

RelativityのH:に設定した数式(1)

H: #H

arrow.lwoのX座標がマイナスの時は正常にターゲット動作が行われる。

RelativityのH:に設定した数式(2)

H: COND(#C < #A, #H, -#H)

arrow.lwoのX座標がプラスの時には回転角度が逆方向(マイナス)の値になるように修正。

RelativityのH:に設定した数式(3)

H: COND(#C < #A, #H, -#H) * X(Slider, t)

arrow.lwoの回転角度にスライダーの値(0〜1)を乗算。
スライダーのXの値でターゲットの割合をコントロールできるように修正。

考え方

非回転時のベクトルA(0, -1)を基準にし、arrow.lwoの位置ベクトルとのなす角を求め、回転値として適用する。

スクリーンショット 2013-04-09 12.52.38

2つのベクトルのなす角は、ベクトルの内積を用いて求める。ただし、このなす角には方向(プラスマイナス)の情報が含まれていないので、簡易的にベクトルのX位置を比較することで回転の向きを求める。

Pocket

コメントを残す

Trackback URL: