コンテンツにスキップ

スクリプトタブ(Script Tab)

スクリプトタブVoiceScriptPlayer の中核ロジックを担うシステム です。
プロジェクト内のすべてのイベント、インタラクション、アニメーション、UI、サウンドを
条件(Condition)と動作(Action) によって制御できます。


1. 基本インターフェース

script-main

項目 説明
① ドラッグでスクリプト追加 インスタンススクリプトを作成してプロジェクトに追加します。
② グローバルスクリプト 常に読み込まれるグローバルスクリプトを管理します。
③ インポート 既存のスクリプトテンプレートを読み込みます。
④ 新規作成 新しいスクリプトテンプレートを作成します。
⑤ 編集 ✏️ 選択したスクリプトをエディターで開きます。
⑥ 削除 🗑️ 選択したスクリプトを一覧から削除します。
⑦ フォルダを開く 📂 Asset/Trigger/ フォルダを直接開きます。

💡 補足:
グローバルスクリプトは常に存在しますが、「呼び出された場合のみ実行」オプションでテンプレートのように扱うこともできます。


2. スクリプトエディター

script-editor

スクリプトエディターでは、条件(Condition)動作(Action) ブロックを自由に組み合わせ、
複雑なロジックを視覚的に構築できます。


🧭 上部パネル

項目 説明
名前(Name) スクリプトの固有名を設定します。
説明(Description) スクリプトの目的や機能を簡単にメモします。
一度だけ実行 一度だけ実行され、再度呼び出されません。
停止中も実行 一時停止中でも実行されます(メニューや設定画面で使用)。
呼び出された場合のみ実行 外部トリガーや他のスクリプトから呼び出された時のみ実行されます。

🧩 ローカル変数

機能 説明
追加(+) スクリプト内で使用するローカル変数を追加します。
編集(✏️) 変数名や初期値を変更します。
削除(🗑️) 選択した変数を削除します。

💡 補足:
ローカル変数はそのスクリプト内でのみ有効で、
他のスクリプトやグローバル変数と競合しません。


3. 条件ブロック(Condition)

条件ブロックはスクリプトを 実行するかどうか を決定します。
複数の条件を組み合わせて 詳細なトリガーロジック を作成できます。


⚙️ 基本概念

  • すべての条件が 真(True) の場合、接続された 動作(Action) ブロックが実行されます。
  • 条件が複数ある場合は AND(かつ) 関係として評価されます。
  • 分岐(Branch) ブロックを使用すると、条件の成立/不成立で異なる処理を設定できます。
  • 詳細は 条件一覧 を参照してください。

🧩 例

状況 条件の例
特定のキー入力 「キー [Space] が押されたとき」
音声認識 「音声 [はじめて] が認識されたとき」
変数比較 「変数 [Score] が [100] 以上のとき」
字幕反応 「字幕に [Hello] が含まれるとき」

💡 ヒント:
条件は UI、サウンド、Live2D などのリソースとも連動可能です。
例:「現在のトラックが 1 で、字幕に特定の文が含まれている場合」など。


4. 動作ブロック(Action)

動作ブロックは、条件が満たされたときに実行される 実際の処理 を定義します。
サウンド再生、変数変更、トラック移動、UI表示など、
プロジェクト内のあらゆる動作を制御できます。


⚙️ 基本概念

  • 動作は 上から下へ順番に 実行されます。
  • Wait(待機) アクションを挿入して時間制御も可能です。
  • ループと組み合わせて 繰り返し処理 を作ることもできます。
  • 詳細は 動作一覧 を参照してください。

🧩 例

状況 動作の例
サウンド再生 「サウンド [Voice01] を再生します。」
トラック切替 「トラック [NextScene] に変更します。」
変数操作 「変数 [Volume] を +10 増加します。」
UI 表示 「UI [OptionMenu] を ID [Main] で開きます。」
Live2D 制御 「Live2D [Scene01] のアニメーション [smile] を再生します。」

💡 補足:
動作は時間ベースでも実行可能です。
例:「3 秒かけて変数を増加」「2 秒間アニメーションを切り替え」など。


5. 分岐ブロック(Branch)

分岐ブロックは 条件成立時不成立時 の動作を分けます。

区分 説明
条件成立 条件が真(True)の場合に実行されます。
条件不成立 条件が偽(False)の場合に実行されます。

💡 複数の分岐を入れ子にすることで、複雑なイベントシナリオを表現できます。


6. ループブロック(Loop)

ループブロックは、指定した条件が真である間、特定の動作ブロックを 繰り返し実行 します。

項目 説明
ループ条件 変数やイベント状態などを基準にループを継続します。

💡 「キーが押されている間動作を続ける」「字幕が出るまで待機する」などに便利です。


7. 条件と動作の組み合わせ

script-logic

スクリプトは複数の条件と動作を組み合わせて動作します。
ブロックの順序はドラッグで変更でき、アイコンからコピー/カット/移動も可能です。

アイコン 機能
新しい条件または動作を追加
🔀 分岐ブロックを追加(If / Else)
🔁 ループブロックを追加
✏️ 編集
✂️ カット
📋 コピー/貼り付け
🗑️ 削除
⬆️ / ⬇️ 実行順を調整

⚙️ ヒント:
スクリプト構造は自由に編集でき、実行中でもデバッグが可能です。


8. グローバルスクリプトとインスタンススクリプト

種類 説明
グローバルスクリプト 常にロードされ、プロジェクト全体で適用されます。
インスタンススクリプト 特定のトラック、UI、イベントに紐づいて実行されます。

💡 使用例:
- グローバルスクリプト → HUD 更新、時間経過イベント
- インスタンススクリプト → 選択肢や特定演出の制御


9. スクリプト実行モード

オプション 説明
一度だけ実行 条件が成立したとき一度だけ実行。
呼び出された場合のみ実行 他のスクリプトやトリガーから呼び出されたときのみ実行。
停止中も実行 一時停止状態でも動作(メニューなどで使用)。
無限ループ 条件が成立している間継続実行。

10. 条件一覧

スクリプト実行をトリガーする条件を定義します。


🖱️ キー入力関連

🔹 KeyDown

キー [Key] が押されているとき。

🔹 KeyUp

キー [Key] が離されたとき。

🔹 KeyPressed

キー [Key] が押下された瞬間(Down → Up)。


🗣️ 音声/字幕関連

🔹 SpeechRecognition

音声 [Text] が音量 [Volume]、精度 [Precision] 以上で認識されたとき。

🔹 SubtitleRecognition

字幕に [Text] が含まれているとき。


📊 ステータス/変数関連

🔹 VariableComparison

変数 [Variable][Value][Comparison] 条件で比較します。

🔹 CurrentTrack

現在のトラックが [Track] の場合。

🔹 CumAction

射精アクション [CumType] が発動したとき。

🔹 RestStatus

休憩状態が [Status] の場合。

🔹 EventStatus

イベント [EventType][EventStatus] の場合。


11. 動作一覧

条件成立時に実行される動作を定義します。


⏱️ 時間制御

🔹 WaitTime

[Seconds] 秒間待機します。


🔊 サウンド制御

🔹 PlaySound

サウンド [Sound] を再生します。左右音量:[LeftVolume] / [RightVolume]


📦 変数/トラック制御

🔹 SetVariable

変数 [Variable][Modify] 方式で [Value] に変更します。

🔹 MoveTrack

トラックを [Track] に切り替えます。

🔹 SeekTime

現在のトラック時間を [Seconds] 秒に移動します。


💾 データ管理

🔹 Save / Load

状態を Slot:[Slot] に保存/読み込みします。

🔹 Close

プログラムを終了します。


🧩 UI 制御

🔹 OpenUI / CloseUI

UI [UI] を識別子 [Text] で開く/閉じます。


🔁 スクリプト制御

🔹 TriggerExec / ReturnScript

スクリプト [Trigger] を実行または終了します。


💦 アクション/イベント制御

🔹 CumActionExec

射精アクション [CumType] を強制発動します。

🔹 RestTime

[Seconds] 秒間休憩します。

🔹 StrokeExec

ストローク [Stroke][Seconds] 秒間実行します。


🎬 Live2D/Spine 制御

🔹 SpinePlayAnimation

Live2D [Live2D] の Spine [Model] にてアニメーション [Animation] を再生します。

🔹 SpineSetSkin

Spine [Model] のスキンを [Skin] に変更します。


⚙️ 補足:
すべての条件と動作はブロック形式で視覚的に構築できます。


12. ファイル構造

項目 パス
グローバルスクリプト Asset/Trigger/

⚠️ 注意:
スクリプトは必ずプロジェクト内に保存する必要があり、外部ファイルの参照はできません。


14. 関連ドキュメント