1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ティラノスクリプト解析

Last updated at Posted at 2025-06-08

TYRANOとtyrano(tyrano.js)

TYRANO = object(tyrano.core); // 98行目
TYRANO.kag = object(tyrano.plugin.kag); // 68行目
 tyrano.plugin.kagの定義はkag.jsに記載
TYRANO.kag.tyrano = TYRANO; // 71行目
 ←kagからTYRANOを参照するため

TYRANOとtyranoは別物
tyranoとTYRANO.kag.tyranoは別物
TYRANOとTYRANO.kag.tyranoは同じもの

kag.js

init

「コンフィグファイルの読み込み」、「ゲームの初期化(init_game)」、「first.ks読み込み」などを行う。

init_game

レイヤーの作成(base, message, character) // 1194行

parseScenario

シナリオファイルをタグ配列にパース。

loadScenario

parseScenarioでタグ配列を取得し、実行していく。

setStyles

cssにスタイルをセットする。
様々なタグの処理で利用される。

kag.tag.js

nextOrder

master_tagとmacroに対して、その処理を実行する。
実行はthis.master_tag[tag.name].start関数(462行目)から行われる。
 なので、start関数の定義は必須。
また、kag.trigger("nextorder")によって、開発ツールにタグの実行を通知したりもしている。

非同期処理を前提としているので、同期させたい場合はコールバックの利用などが必要。

タグの記述

vital: 必須パラメータ
pm: 任意パラメータ(デフォルト値つき)
start関数に処理を記述

[chara_show]

デフォルトでは、div.0_fore(page: "fore", layer: "0")下にdiv.tyrano_charaを追加し、キャラ画像を表示。

tyrano.base.js

body直下のdiv#tyrano_baseの設定。

kag.layer.js

tyrano_base下のdiv#root_layer_gameとdiv#root_layer_systemの設定。
root_layer_gameは背景、キャラクターなど。
root_layer_systemはメッセージウィンドウ、UI、メニューなど。
image.png

kag.menu.js

メニューボタンをクリックすると、showMenu関数が呼ばれ、div.layer_menu -> div#menu_menu_wrapper -> div.display_menuに各種コンフィグボタンを表示

kag.tag_system.js

システム・外部プラグイン関連タグの定義。

クリック待ちの仕組み

kag.layer.jsでイベントレイヤーを作成。
kag.key_mouse.jsでイベントレイヤーのクリックを管理し、nextOrderを実行。
kag.jsのis_stop, is_strong_stopでストップ状態を管理。

外部プラグインの仕組み

pluginタグ(kag.tag_system.js 2733行目)

プラグインの初期化。
storageパラメータのデフォルト値がinit.ksになっており、startTag関数から[call]タグを呼び、init.ksが実行される。
this.kag.stat.mp = pmでパラメータを保存。

タグ登録方法

TYRANO.kag.ftag.master_tag.tag_name = {
 vital : [""],
 pm : {},
 start : function(pm) {}
}
という感じでタグオブジェクトとその中のstart関数を登録する。
(※custom_rubyプラグインではtyrano.plugin.kag.tagを利用していたが、これは既にあるrubyタグを上書きするから?)

パラメータ

Vroidプラグイン

html要素

TYRANO.kag.layer.getLayer(layer).append(domElement); // vroid.js 171行目
 domElementはcanvas要素。
 getLayer関数はdiv要素(jQueryオブジェクト)を取得。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?