Open3

[Resonite]タイマーに使えそうなコンポーネント&ProtoFlux一覧

S.Fuka(S.Haruya)S.Fuka(S.Haruya)

AuthorityTimeBase

  • 概要:ワールド時間を生成・操作する基準クロック。BaseSpeedで進み方を加速/逆転し、_actualOffsetで任意のゼロ点を設定できる。自身をソースにするとDouble値の現在時刻を取得でき、一括ポーズやスローモーション演出に最適。
  • 公式URLhttps://wiki.resonite.com/Component:AuthorityTimeBase
  • カテゴリComponents > Utility
  • メモ:時間経過を管理するのに便利。一時停止やリスタート、巻き戻しもできる。(下に別途使い方メモあり)

CurrentDateTimeTextDriver

  • 概要:システム日時を取得し、C# DateTime書式で整形して指定テキストに出力するドライバ。Patternで書式指定、UseUTCでUTC/ローカル切替が可能。リアルタイム時計や日付表示パネルを手軽に作成可能。
  • 公式URLhttps://wiki.resonite.com/Component:CurrentDateTimeTextDriver
  • カテゴリComponents > Utility
  • メモ:手っ取り早く現在の時間を文字列で表示するのに便利

TextCountdownClock

  • 概要CountdownTimeに「T+残り秒数」を書くとh:mm:ss形式でカウントダウン表示するタイマー。AllowNegativeで0以下も継続、TextTargetTextRenderer.Textを接続するだけで動作。制限時間UIに最適。
  • 公式URLhttps://wiki.resonite.com/Component:TextCountdownClock
  • カテゴリComponents > Utility
  • メモ:テキストで表示するカウントダウンを作るには一番簡単

Panner(1D / 2D / 3D / 4D)

  • 概要_speed_repeatで決めた範囲を連続ループまたはPingPongしながら値を変化させるドライバ。UVスクロール、位置アニメ、発光強度の周期変化など「同じ動きを繰り返す」場面で活躍。
  • 公式URLhttps://wiki.resonite.com/Component:Panner1D(※2~4D も同様のURL末尾)
  • カテゴリComponents > Transform > Drivers
  • メモ:同じ動きを繰り返す場面で活躍、まさにそれ

Spinner

  • 概要:対象のRotationFloat3速度で恒常回転させるコンポーネント。Rangeで角度上限を設定すると到達時に0へ巻き戻る。風車や車輪、UIダイヤルなど「一定速度で回す」演出を簡単に実装可能。
  • 公式URLhttps://wiki.resonite.com/Component:Spinner
  • カテゴリComponents > Transform > Drivers
  • メモ:一定速度で回転させる用

AxisPanner

  • 概要:指定Axis方向にSpeedで移動距離Rangeを往復させるパンナー。TimeBaseAuthorityTimeBase等を指定すれば時間操作と同期可能。PositionScaleを同時に駆動でき、動く床や昇降機に便利。
  • 公式URLhttps://wiki.resonite.com/Component:AxisPanner
  • カテゴリComponents > Transform > Drivers
  • メモ:AuthorityTimeBaseとの相性最高

S.Fuka(S.Haruya)S.Fuka(S.Haruya)

「AuthorityTimeBase」の使い方
■ 概要

AuthorityTimeBase(オーサリティタイムベース)は、時間経過を取得するための便利なコンポーネント。
うまく使うと「カウントアップ」「カウント停止」「カウントダウン」などが簡単に作れる。


■ 基本の使い方

  1. AuthorityTimeBaseを任意のスロットに追加。
    1. コンポーネントの場所
      1. Components>Utility>AuthorityTimeBase
    2. 公式Wiki
      1. https://wiki.resonite.com/Component:AuthorityTimeBase
  2. Fluxツールを装備してコンポーネント名部分をGrabしコンテキストメニューから
    Sourceを選択するとdouble型の時間値を取得できる。
  3. Base Speed1.0 に設定すると、1秒に1ずつ増加するカウンターになる。
    • Base Speed = 0 でカウント停止。
    • Base Speed = 12 で1秒に12増加。
    • Base Speed = -1 で1秒に-1ずつ減少。

■ ProtoFluxでの初期化

  • ValueWrite ノードを使って AuthorityTimeBase の値を 0 で書き込めば初期化できる。

  • この値は double型 なので、同じ型で書き込みを行う。

  • 同時にタイマーを止めたければ Base Speed にも 0 で書きこむ。(float型)
    `)


■ ボタンでの操作(コンポーネントベース)

操作用ボタンを3つ用意:

  • 再生ボタン(カウント開始)
  • 一時停止ボタン(カウント停止)
  • リセットボタン(完全初期化)

各ボタンの処理

● 再生(Base Speed = 1)

  • ButtonValueSet を使って、Base Speed1.0 をセット。

● 一時停止(Base Speed = 0)

  • 同じく ButtonValueSet0.0 をセット。

● リセット(全項目 = 0)

完全に初期化したいときは以下3項目すべてを 0 にする:

  • Base Speed(float)
  • Active Speed(float)
  • Offset(double)

これにより、完全に状態がリセットされて再スタートできる。


■ コンポーネントでカウント値の表示

手順:

  1. ValueTextFormatDriver を使用してdouble型の値をテキストに変化する
  2. ただしAuthorityTimeBase から値を直接 ValueTextFormatDriver に渡すのはできないのでいったん ValueField<double> を用意して、中継する。

構成:

[AuthorityTimeBase] → [ValueDriver<double>] → [ValueField<double>] → [ValueTextFormatDriver]
  • ValueDriver で AuthorityTimeBase の値を ValueField にドライブする。
  • ValueTextFormatDriverValueField<double> の値をテキスト表示する。
  • Format に {0} と入力すれば値が表示される。

■ 注意点と補足

  • AuthorityTimeBase は内部的に「ワールド経過時間」を元に動作しており、再生・停止のたびに Offset を自動調整してくれる。
  • そのため、頻繁な再生・停止にも違和感なくスムーズに動作する。
S.Fuka(S.Haruya)S.Fuka(S.Haruya)

タイマーで使えそうなProtoFlux

Stopwatch

  • 概要:Start/Stop/Reset で経過秒を計測するストップウォッチ。走行中は Time が増え、停止で値を保持、Reset で 0 に戻る。
  • 公式URLhttps://wiki.resonite.com/ProtoFlux:Stopwatch
  • カテゴリ:ProtoFlux > Time
  • メモ:まさにストップウォッチが簡単に作れる

World_Time_Double

  • 概要:ワールドが開いてからの累計経過時間を秒(double)で連続出力するグローバル時計。
  • 公式URLhttps://wiki.resonite.com/ProtoFlux:World_Time_Double
  • カテゴリ:ProtoFlux > Time
  • メモ:経過時間の管理とかでよく使う。Tの値を保持、後で改めてTの値を取得し保持していいた値と比較すれば経過時間がとれる。

TimeSpan_From_Seconds

  • 概要:秒数(double)を TimeSpan 型に変換するノード。後続の TimeSpan 系処理や書式化を行う際の入口として使う。
  • 公式URLhttps://wiki.resonite.com/ProtoFlux:TimeSpan_From_Seconds
  • カテゴリ:ProtoFlux > Time > TimeSpan
  • メモ:Tとセットでよく使う

TimeSpan_Seconds

  • 概要TimeSpan から「秒」成分のみを int で抽出するノード。
  • 公式URLhttps://wiki.resonite.com/ProtoFlux:TimeSpan_Seconds
  • カテゴリ:ProtoFlux > Time > TimeSpan
  • メモ:最終的に文字列として整形したいときによく使う。同じカテゴリに分、日、時、などがある。

To_String

  • 概要:任意の値を文字列へ変換する汎用ノード。
  • 公式URLhttps://wiki.resonite.com/ProtoFlux:To_String
  • カテゴリ:ProtoFlux > Strings
  • メモ:最終的に文字列可するときに使う。桁数を揃えたいとき仮に2桁ならFormatにd2と入れればいい。

Fire_On_True

  • 概要Booltrue になった瞬間に OnChanged を発火する。特定ユーザー限定監視もでき、条件付きトリガーを簡単に組める。
  • 公式URLhttps://wiki.resonite.com/ProtoFlux:Fire_On_True
  • カテゴリ:ProtoFlux > Flow
  • メモ:時間になったらアラームを鳴らしたい、なんて時に使える。