mieki256's diary



2020/01/24(金) [n年前の日記]

#1 [cg_tools] NiVE2のエクスプレッションについて少し勉強

昨日、NiVE2を使った際、加減速運動を指定できなくて悩んでしまったのだけど。エクスプレッションなるものを使えば座標値その他を数式で変化させられると知り、そのあたりを少しだけ勉強してみたり。以下のページが参考になった。

_NiVE2のエクスプレッションについて (Internet Archive)

ひとまず、こんな感じになった。それらしく動いてる。

手順。 :

  1. ボールのレイヤーを右クリックして、「エクスプレッションを使用する」を選ぶ。
  2. 左のほうの右向き三角をクリックすると「エクスプレッション」と言う項目が増えている。
  3. 「エクスプレッション」の右向き三角をクリックすると「メイン」になっているはず…。タイムライン上の空白部分をクリックすると編集できるようになる。

ボール側には以下を入力。現在時間に応じて、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 だって好きな動きをつけようと思えばできますよ、という事例にはなるのかな…。

以上です。

過去ログ表示

Prev - 2020/01 - Next
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project