2020/01/24(金) [n年前の日記]
#1 [cg_tools] NiVE2のエクスプレッションについて少し勉強
昨日、NiVE2を使った際、加減速運動を指定できなくて悩んでしまったのだけど。エクスプレッションなるものを使えば座標値その他を数式で変化させられると知り、そのあたりを少しだけ勉強してみたり。以下のページが参考になった。
_NiVE2のエクスプレッションについて (Internet Archive)
ひとまず、こんな感じになった。それらしく動いてる。
ボール側には以下を入力。現在時間に応じて、Y座標にsin値を設定してる。
影側には以下を入力。現在時間に応じて、位置(X,Y座標)、スケール(拡大縮小率)、不透明度にsin値を設定してる。
事前に設定してあったキーフレームは削除しておく。
しかしコレ、キーフレームを削除して、スクリプトを書いてる時点で、初心者(?)向けの作業ではないわな…。でもまあ、NiVE2 だって好きな動きをつけようと思えばできますよ、という事例にはなるのかな…。
_NiVE2のエクスプレッションについて (Internet Archive)
ひとまず、こんな感じになった。それらしく動いてる。
◎ 手順。 :
- ボールのレイヤーを右クリックして、「エクスプレッションを使用する」を選ぶ。
- 左のほうの右向き三角をクリックすると「エクスプレッション」と言う項目が増えている。
- 「エクスプレッション」の右向き三角をクリックすると「メイン」になっているはず…。タイムライン上の空白部分をクリックすると編集できるようになる。
ボール側には以下を入力。現在時間に応じて、Y座標にsin値を設定してる。
double amp = 450; double cycle = 1; VertexProperty pos = (VertexProperty)property.GetProperty(thisItem,"位置"); pos.Y -= amp * Math.Sin(Math.PI / cycle * time); property.SetProperty(thisItem,pos);
影側には以下を入力。現在時間に応じて、位置(X,Y座標)、スケール(拡大縮小率)、不透明度にsin値を設定してる。
double cycle = 1; VertexProperty pos = (VertexProperty)property.GetProperty(thisItem,"位置"); VertexProperty scale = (VertexProperty)property.GetProperty(thisItem,"スケール"); NumberProperty alpha = (NumberProperty)property.GetProperty(thisItem,"不透明度"); pos.X -= 200 * Math.Sin(Math.PI / cycle * time); pos.Y -= 50 * Math.Sin(Math.PI / cycle * time); scale.X -= 10 * Math.Sin(Math.PI / cycle * time); scale.Y -= 5 * Math.Sin(Math.PI / cycle * time); alpha.DoubleValue -= 25 * Math.Sin(Math.PI / cycle * time); property.SetProperty(thisItem, pos); property.SetProperty(thisItem, scale); property.SetProperty(thisItem, alpha);
事前に設定してあったキーフレームは削除しておく。
しかしコレ、キーフレームを削除して、スクリプトを書いてる時点で、初心者(?)向けの作業ではないわな…。でもまあ、NiVE2 だって好きな動きをつけようと思えばできますよ、という事例にはなるのかな…。
[ ツッコむ ]
以上です。