「マルチタスク」の編集履歴(バックアップ)一覧はこちら
マルチタスク - (2008/06/27 (金) 23:11:08) の最新版との変更点
追加された行は緑色になります。
削除された行は赤色になります。
<マルチタスク>
スクリプトパネルはタスク毎に配置され、最大で16個のタスクを同時に実行可能。
スクリプトはタスク単位で実行され、各タスクはタスク停止パネルがない限りは、最後尾のスクリプトパネルを実行後はゲートにループして最初のスクリプトパネルから繰り返される。
自タスクを停止するタスク停止パネルがあるタスクは、タスク内でループされない。(ただし、自動起動タスクでは、起動条件を満たせば再度タスク開始)
タスク開始パネルで、任意のタスクのスクリプトを任意に開始できる。
タスク停止パネルで、任意のタスクのスクリプトを任意に停止できる。(タスク停止パネルの置かれたタスク自身を停止することも可能)
・タスクの起動条件
メイン:キャラクタが出現した時に自動起動。
攻撃ヒット時:相手に攻撃が命中した時に自動起動。
防御ヒット時:相手から攻撃を受けた時(背景からダメージを受けた時も含む)に自動起動。(破壊時には起動なし)
破壊時:HPが0になり破壊された時に自動起動。
プレイヤー:プレイヤー登場時用のタスクで、手動起動。
メニュー:メニュー専用のタスクで、手動起動。
これらのタスクはシステムで予約されているためにタスク番号は固定。
何も記述しない場合でも[[デフォルトスクリプト]]が実行するが、[[デフォルトスクリプト]]が登録されていない場合は何も実行されない。
継承スクリプトを設定している場合は、何も記述していないタスクでは継承スクリプトに記述されたスクリプトが起動。(継承スクリプトにも記述されていないタスクは、デフォルトスクリプトが起動)
・メインタスク以外のタスクを編集する時の注意点
ゲートの作成:ゲートが無ければ実行されない。
ラベルはタスク単位でローカル:他のタスクへはジャンプできない。
ループカウンタはタスク単位でローカル:他のタスクには影響を与えない。
ローカル変数はスクリプト単位でローカル:同じスクリプト内ではローカル変数の番号が重複しないように注意。
システム変数は全スクリプトで共通:同じゲーム内ではシステム変数のオプション番号が重複しないように注意。
シグナルは全タスクで共通:同じスクリプト内ではシグナルが重複しないように注意。
メインタスク以外のユーザータスクは手動起動(一部は自動起動):「タスク開始」コマンドで起動。
<マルチタスク>
スクリプトパネルはタスク毎に配置され、最大で16個のタスクを同時に実行可能。
スクリプトはタスク単位で実行され、各タスクは「タスク停止」パネルがない限りは、最後尾のスクリプトパネルを実行後はゲートにループして最初のスクリプトパネルから繰り返される。
自タスクを停止する「タスク停止」パネルがあるタスクは、タスク内でループされない。(ただし、自動起動タスクでは、起動条件を満たせば再度タスク開始)
「タスク開始」パネルで、任意のタスクのスクリプトを任意に開始できる。
「タスク停止」パネルで、任意のタスクのスクリプトを任意に停止できる。(「タスク停止」パネルの置かれたタスク自身を停止することも可能)
・タスクの起動条件
メイン:キャラクタが出現した時に自動起動。
攻撃ヒット時:相手に攻撃が命中した時に自動起動。
防御ヒット時:相手から攻撃を受けた時(背景からダメージを受けた時も含む)に自動起動。(破壊時には起動なし)
破壊時:HPが0になり破壊された時に自動起動。
壁ヒット時:HIT背景に接触した時に自動起動。(v0.99.04以降)
プレイヤー:プレイヤー登場時用のタスクで、手動起動。
メニュー:メニュー専用のタスクで、手動起動。
これらのタスクはシステムで予約されているためにタスク番号は固定。
何も記述しない場合でも[[デフォルトスクリプト]]が実行するが、[[デフォルトスクリプト]]が登録されていない場合は何も実行されない。
[[継承スクリプト]]を設定している場合は、何も記述していないタスクでは[[継承スクリプト]]に記述されたスクリプトが起動。
([[継承スクリプト]]にも記述されていないタスクは、[[デフォルトスクリプト]]が起動)
・タスクを編集する場合の注意点
ゲートからタスクの終了まで(配置画面の下端や右端へ至るまで、もしくは「タスク停止」パネルまで)に、必ず1フレーム以上の時間消費(時間待ちの設定)が必要。
条件分岐がある場合、1フレーム以上の時間消費がないルートが1つでも存在すると、「無限ループ」が発生する。
ルート内のいずれかのパネル、もしくは「通過」パネルで1フレーム以上の時間待ちを設定するが、
「通過」パネルの時間待ちを「動作完了まで」にすると、「通過」パネルを完了できず(無期限の時間待ちとなり)、「無限ループ」が発生する。
・メインタスク以外のタスクを編集する時の注意点
ゲートの作成:ゲートが無ければ実行されない。
→[[スクリプト編集 右クリックメニュー]]
ラベルはタスク単位でローカル:他のタスクへはジャンプできない。
ループカウンタはタスク単位でローカル:他のタスクには影響を与えない。
シグナルは親子単位でローカル:同じ親子キャラクタの全タスクで、シグナルが重複しないように注意。
ローカル変数はキャラクタ単位でローカル:同じキャラクタの全タスクで、ローカル変数の番号が重複しないように注意。
システム変数は全キャラクタで共通:同じゲーム内で、システム変数のオプション番号が重複しないように注意。
メインタスク以外のユーザータスクは手動起動(一部は自動起動):「タスク開始」コマンドで起動。
(ユーザータスクは「タスク開始」がなければ、ゲートを作成してあっても自動で起動しない)
複数のユーザータスクを開始時より有効にしておくためには、メインタスクに、起動したいユーザータスクの「タスク開始」を複数配置し、
最後にメインタスクを「タスク停止」しておく必要あり。
----
→[[スクリプト編集]],[[タスク]],[[デフォルトスクリプト]],[[継承スクリプト]]
----