WidgetのTween

YUIMgrで生成したWidgetは全て階層構造を保持したまま

  • 移動
  • 回転
  • スケール
  • カラー
  • アルファ

のTween処理を行う事ができます。
以下はそれぞれのサンプルのコードです。

移動

Widgetを移動させる事ができます。
位置は現在位置か、親からの相対座標で指定します。


	// X+=200, 2秒で往復. 線形に変動します.
	YUI_WND rWndL = YUIMgr.Create< YUI_WND >( rInfoL );
	rWndL.TWEEN.TweenTransMoveX( 200, 1.0f, YUI.E_TWEEN_TYPE.LINEAR_BACK_LOOP );

回転

Widgetを回転させる事ができます。
角度は現在角か、親からの相対角をオイラー角で指定します。


	// X+=360, 2秒でループ. 8秒で一周するsin値を利用します.
	YUI_WND rWndX = YUIMgr.Create< YUI_WND >( rInfoX );
	rWndX.TWEEN.TweenRotMoveX( 360.0f, 2.0f, YUI.E_TWEEN_TYPE.SIN_LOOP );

スケール

Widgetを拡大縮小させる事ができます。
スケールは現在値か、親からの相対値で指定します。


	// X+=1.5, 4秒で往復. 8秒で一周するsin値を利用します.
	YUI_WND rWndX = YUIMgr.Create<YUI_WND>( rInfoX );
	rWndX.TWEEN.TweenScaleX( 1.5f, 2.0f, YUI.E_TWEEN_TYPE.SIN_BACK_LOOP );

カラー

色を変動させる事ができます。
色は現在色や直接指定色で設定します。


	// red -> blue, 4秒で往復. 線形に変動します。
	YUI_WND rWndColor = YUIMgr.Create<YUI_WND>( rInfoColor );
	rWndColor.TWEEN.TweenColor( Color.red, Color.blue, 2.0f, YUI.E_TWEEN_TYPE.LINEAR_BACK_LOOP );

アルファ

アルファ値を変動させる事ができます。
値は現在値や直接指定値で設定します。


	// 1.0f -> 0.0f, 4秒で往復. 8秒で一周するsin値を利用します.
	YUI_WND rWndAlpha = YUIMgr.Create<YUI_WND>( rInfoAlpha );
	rWndAlpha.TWEEN.TweenAlpha( 1.0f, 0.0f, 2.0f, YUI.E_TWEEN_TYPE.SIN_BACK_LOOP, true );

何かに利用する値を変動させ、内部で格納します。
値は起点と終点を必ず指定します。


	// fNow -> fTarget, fTime秒で変動. 線形に変動します.
	YUI_WND rWndValue = YUIMgr.Create<YUI_WND>( rInfoValue );
	rWndValue.TWEEN.TweenValue( fNow, fTarget, fTime, YUI.E_TWEEN_TYPE.LINEAR );

Tween値の変化指定

Tween設定時に下記の値変動方法が設定できます。

値変動指定内容
LINEAR 線形変動し、終端で終了
LINEAR_LOOP 線形変動し、終端で起点から再始動
LINEAR_BACK 線形変動し、往復で終了
LINEAR_BACK_LOOP 線形変動し、往復したら再始動
   
↓最初は速く、後半ゆっくり変動します。
SIN sin0-sin90で変動し、終端で終了
SIN_LOOP sin0-sin90で変動し、終端で起点から再始動
SIN_BACK sin0-sin90で変動し、往復で終了
SIN_LOOP sin0-sin90で変動し、往復したら再始動
   
↓最初はゆっくり、後半速く変動します。
COS (1-cos0)-(1-cos90)で変動し、終端で終了
COS_LOOP (1-cos0)-(1-cos90)で変動し、終端で起点から再始動
COS_BACK (1-cos0)-(1-cos90)で変動し、往復で終了
COS_LOOP (1-cos0)-(1-cos90)で変動し、往復したら再始動

変動方法の指定

変動方法には以下のような指定ができます。

方法 効果
起点・終点指定 開始地点から終了地点を移動します
終点指定 現在値から終了地点まで移動します
移動値指定 現在値から指定値だけ移動します

※値Tweenは起点・終点指定のみとなります。