Add files via upload

This commit is contained in:
bakustarver 2024-07-01 20:48:27 +03:00 committed by GitHub
parent 84512ee061
commit e3d02e28b1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
71 changed files with 1748 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 562 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 360 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 457 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 242 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 241 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 242 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 296 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 321 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 524 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 810 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 826 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 486 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View file

@ -0,0 +1,101 @@
;=========================================
; CG モード 画面作成
;=========================================
@layopt layer=message0 visible=false
@clearfix
[hidemenubutton]
[cm]
[bg storage="../../tyrano/images/system/bg_base.png" time=100]
[layopt layer=1 visible=true]
[image layer=1 left=0 top=0 storage="config/label_cg.png" folder="image" ]
[iscript]
tf.page = 0;
tf.selected_cg_image = ""; //選択されたCGを一時的に保管
[endscript]
*cgpage
[layopt layer=1 visible=true]
[cm]
[button graphic="config/menu_button_close.png" enterimg="config/menu_button_close2.png" target="*backtitle" x=820 y=20 ]
[iscript]
tf.tmp_index = 0;
tf.cg_index = 12 * tf.page;
tf.top = 100;
tf.left = 60;
[endscript]
[iscript]
tf.target_page = "page_"+tf.page;
[endscript]
*cgview
@jump target=&tf.target_page
*page_0
[cg_image_button graphic="rouka.jpg,room.jpg,title.png" no_graphic="../../tyrano/images/system/noimage.png" x=60 y=130 width=160 height=140 folder="bgimage" ]
[cg_image_button graphic="room.jpg" no_graphic="../../tyrano/images/system/noimage.png" x=250 y=130 width=160 height=140 folder="bgimage" ]
@jump target="*common"
*common
*endpage
[s]
*backtitle
[cm]
[freeimage layer=1]
@jump storage=title.ks
*nextpage
[emb exp="tf.page++;"]
@jump target="*cgpage"
*backpage
[emb exp="tf.page--;"]
@jump target="*cgpage"
*clickcg
[cm]
[layopt layer=1 visible=false]
[eval exp="tf.cg_index=0"]
*cg_next_image
[image storage=&tf.selected_cg_image[tf.cg_index] folder="bgimage" ]
[l]
[bg storage="../../tyrano/images/system/bg_base.png" time=10]
[eval exp="tf.cg_index++"]
@jump target="cg_next_image" cond="tf.selected_cg_image.length > tf.cg_index"
@jump target=*cgpage
[s]
*no_image
@jump target=*cgpage

View file

@ -0,0 +1,277 @@
; ティラノスクリプト標準テーマプラグイン
;=========================================
; コンフィグ モード 画面作成
;=========================================
; メッセージレイヤ0を不可視に
[layopt layer=message0 visible=false]
; fixボタン消し
[clearfix]
;ゲーム中に効果が設定されている場合は無効
[free_layermode time=0 ]
[reset_camera time=0]
; イメージ消去
[iscript]
$(".layer_camera").empty();
[endscript]
; メニューボタン非表示
[hidemenubutton]
[iscript]
tf.current_bgm_vol=parseInt(TG.config.defaultBgmVolume);
tf.current_se_vol=parseInt(TG.config.defaultSeVolume);
tf.current_ch_speed=parseInt(TG.config.chSpeed);
tf.current_auto_speed=parseInt(TG.config.autoSpeed);
tf.text_skip ="ON";
if(TG.config.unReadTextSkip != "true"){
tf.text_skip ="OFF";
}
[endscript]
; レイヤ1を可視に
[layopt layer=1 visible=true]
[cm]
; コンフィグ用の背景を読み込んでトランジション
[bg storage="../../tyrano/images/system/bg_config.jpg" time=100]
; 画面右上の「Back」ボタン
[button graphic="config/c_btn_back.png" fix=true enterimg="config/c_btn_back2.png" target="*backtitle" x=840 y=20]
[jump target="*config_page"]
*config_page
;かなり横長なスクリプトになってしまったのでマクロにしたほうがスッキリします
;c_btn.png は 4×4px の完全透明な画像です。width.heightを使って拡大しています
;一部のスマホブラウザでは音量変更に対応していないのでご留意ください
;------------------------------------------------------------------------------------------------------
;▼BGM音量
;------------------------------------------------------------------------------------------------------
;BGM音量-10
[button name="bgmvol,bgmvol_10" fix="true" target="*vol_bgm_change" graphic="config/c_btn.png" width=35 height=35 x=300 y=170 exp="tf.current_bgm_vol=10"]
;BGM音量-20
[button name="bgmvol,bgmvol_20" fix="true" target="*vol_bgm_change" graphic="config/c_btn.png" width=35 height=35 x=340 y=170 exp="tf.current_bgm_vol=20"]
;BGM音量-30
[button name="bgmvol,bgmvol_30" fix="true" target="*vol_bgm_change" graphic="config/c_btn.png" width=35 height=35 x=380 y=170 exp="tf.current_bgm_vol=30"]
;BGM音量-40
[button name="bgmvol,bgmvol_40" fix="true" target="*vol_bgm_change" graphic="config/c_btn.png" width=35 height=35 x=420 y=170 exp="tf.current_bgm_vol=40"]
;BGM音量-50
[button name="bgmvol,bgmvol_50" fix="true" target="*vol_bgm_change" graphic="config/c_btn.png" width=35 height=35 x=460 y=170 exp="tf.current_bgm_vol=50"]
;BGM音量-60
[button name="bgmvol,bgmvol_60" fix="true" target="*vol_bgm_change" graphic="config/c_btn.png" width=35 height=35 x=500 y=170 exp="tf.current_bgm_vol=60"]
;BGM音量-70
[button name="bgmvol,bgmvol_70" fix="true" target="*vol_bgm_change" graphic="config/c_btn.png" width=35 height=35 x=540 y=170 exp="tf.current_bgm_vol=70"]
;BGM音量-80
[button name="bgmvol,bgmvol_80" fix="true" target="*vol_bgm_change" graphic="config/c_btn.png" width=35 height=35 x=580 y=170 exp="tf.current_bgm_vol=80"]
;BGM音量-90
[button name="bgmvol,bgmvol_90" fix="true" target="*vol_bgm_change" graphic="config/c_btn.png" width=35 height=35 x=620 y=170 exp="tf.current_bgm_vol=90"]
;BGM音量-100
[button name="bgmvol,bgmvol_100" fix="true" target="*vol_bgm_change" graphic="config/c_btn.png" width=35 height=35 x=660 y=170 exp="tf.current_bgm_vol=100"]
;BGM音量-ミュート(音量=0)
[button name="bgmvol,bgmvol_0" fix="true" target="*vol_bgm_change" graphic="config/c_btn.png" width=35 height=35 x=780 y=170 exp="tf.current_bgm_vol=0"]
;------------------------------------------------------------------------------------------------------
;▼SE音量
;------------------------------------------------------------------------------------------------------
[button name="sevol,sevol_10" fix="true" target="*vol_se_change" graphic="config/c_btn.png" width=35 height=35 x=300 y=220 exp="tf.current_se_vol=10"]
[button name="sevol,sevol_20" fix="true" target="*vol_se_change" graphic="config/c_btn.png" width=35 height=35 x=340 y=220 exp="tf.current_se_vol=20"]
[button name="sevol,sevol_30" fix="true" target="*vol_se_change" graphic="config/c_btn.png" width=35 height=35 x=380 y=220 exp="tf.current_se_vol=30"]
[button name="sevol,sevol_40" fix="true" target="*vol_se_change" graphic="config/c_btn.png" width=35 height=35 x=420 y=220 exp="tf.current_se_vol=40"]
[button name="sevol,sevol_50" fix="true" target="*vol_se_change" graphic="config/c_btn.png" width=35 height=35 x=460 y=220 exp="tf.current_se_vol=50"]
[button name="sevol,sevol_60" fix="true" target="*vol_se_change" graphic="config/c_btn.png" width=35 height=35 x=500 y=220 exp="tf.current_se_vol=60"]
[button name="sevol,sevol_70" fix="true" target="*vol_se_change" graphic="config/c_btn.png" width=35 height=35 x=540 y=220 exp="tf.current_se_vol=70"]
[button name="sevol,sevol_80" fix="true" target="*vol_se_change" graphic="config/c_btn.png" width=35 height=35 x=580 y=220 exp="tf.current_se_vol=80"]
[button name="sevol,sevol_90" fix="true" target="*vol_se_change" graphic="config/c_btn.png" width=35 height=35 x=620 y=220 exp="tf.current_se_vol=90"]
[button name="sevol,sevol_100" fix="true" target="*vol_se_change" graphic="config/c_btn.png" width=35 height=35 x=660 y=220 exp="tf.current_se_vol=100"]
;SEミュート
[button name="sevol,sevol_0" fix="true" target="*vol_se_change" graphic="config/c_btn.png" width=35 height=35 x=780 y=220 exp="tf.current_se_vol=0"]
;------------------------------------------------------------------------------------------------------
;▼テキスト速度
;------------------------------------------------------------------------------------------------------
[button name="ch,ch_100" fix="true" target="*ch_speed_change" exp="tf.set_ch_speed=100" graphic="config/c_btn.png" width=35 height=35 x=300 y=290]
[button name="ch,ch_80" fix="true" target="*ch_speed_change" exp="tf.set_ch_speed=80" graphic="config/c_btn.png" width=35 height=35 x=340 y=290]
[button name="ch,ch_50" fix="true" target="*ch_speed_change" exp="tf.set_ch_speed=50" graphic="config/c_btn.png" width=35 height=35 x=380 y=290]
[button name="ch,ch_40" fix="true" target="*ch_speed_change" exp="tf.set_ch_speed=40" graphic="config/c_btn.png" width=35 height=35 x=420 y=290]
[button name="ch,ch_30" fix="true" target="*ch_speed_change" exp="tf.set_ch_speed=30" graphic="config/c_btn.png" width=35 height=35 x=460 y=290]
[button name="ch,ch_25" fix="true" target="*ch_speed_change" exp="tf.set_ch_speed=25" graphic="config/c_btn.png" width=35 height=35 x=500 y=290]
[button name="ch,ch_20" fix="true" target="*ch_speed_change" exp="tf.set_ch_speed=20" graphic="config/c_btn.png" width=35 height=35 x=540 y=290]
[button name="ch,ch_11" fix="true" target="*ch_speed_change" exp="tf.set_ch_speed=11" graphic="config/c_btn.png" width=35 height=35 x=580 y=290]
[button name="ch,ch_8" fix="true" target="*ch_speed_change" exp="tf.set_ch_speed=8" graphic="config/c_btn.png" width=35 height=35 x=620 y=290]
[button name="ch,ch_5" fix="true" target="*ch_speed_change" exp="tf.set_ch_speed=5" graphic="config/c_btn.png" width=35 height=35 x=660 y=290]
;------------------------------------------------------------------------------------------------------
;▼オート速度
;------------------------------------------------------------------------------------------------------
[button fix="true" name="auto,auto_5000" target="*auto_speed_change" exp="tf.set_auto_speed=5000;tf.text_auto=0" graphic="config/c_btn.png" width=35 height=35 x=300 y=340]
[button fix="true" name="auto,auto_4500" target="*auto_speed_change" exp="tf.set_auto_speed=4500;tf.text_auto=1" graphic="config/c_btn.png" width=35 height=35 x=340 y=340]
[button fix="true" name="auto,auto_4000" target="*auto_speed_change" exp="tf.set_auto_speed=4000;tf.text_auto=2" graphic="config/c_btn.png" width=35 height=35 x=380 y=340]
[button fix="true" name="auto,auto_3500" target="*auto_speed_change" exp="tf.set_auto_speed=3500;tf.text_auto=3" graphic="config/c_btn.png" width=35 height=35 x=420 y=340]
[button fix="true" name="auto,auto_3000" target="*auto_speed_change" exp="tf.set_auto_speed=3000;tf.text_auto=4" graphic="config/c_btn.png" width=35 height=35 x=460 y=340]
[button fix="true" name="auto,auto_2500" target="*auto_speed_change" exp="tf.set_auto_speed=2500;tf.text_auto=5" graphic="config/c_btn.png" width=35 height=35 x=500 y=340]
[button fix="true" name="auto,auto_2000" target="*auto_speed_change" exp="tf.set_auto_speed=2000;tf.text_auto=6" graphic="config/c_btn.png" width=35 height=35 x=540 y=340]
[button fix="true" name="auto,auto_1300" target="*auto_speed_change" exp="tf.set_auto_speed=1300;tf.text_auto=7" graphic="config/c_btn.png" width=35 height=35 x=580 y=340]
[button fix="true" name="auto,auto_800" target="*auto_speed_change" exp="tf.set_auto_speed=800;tf.text_auto=8" graphic="config/c_btn.png" width=35 height=35 x=620 y=340]
[button fix="true" name="auto,auto_500" target="*auto_speed_change" exp="tf.set_auto_speed=500;tf.text_auto=9" graphic="config/c_btn.png" width=35 height=35 x=660 y=340]
;------------------------------------------------------------------------------------------------------
;▼未読スキップ
;------------------------------------------------------------------------------------------------------
; 未読スキップ-OFF
[button name="unread_off" fix="true" target="*skip_off" graphic="config/c_btn.png" width=125 height=35 x=300 y=420]
; 未読スキップ-ON
[button name="unread_on" fix="true" target="*skip_on" graphic="config/c_btn.png" width=125 height=35 x=435 y=420]
;------------------------------------------------------------------------------------------------------
;▼コンフィグ起動時の画面更新
;------------------------------------------------------------------------------------------------------
; BGM音量・SE音量・テキスト速度・オート速度・未読スキップの順
; $(セレクタ).attr("src","画像ファイルの場所");
;※画像差し替え版を使用するときは c_set.gif を c_set.png に書き換えてね
[iscript]
$(".bgmvol_"+tf.current_bgm_vol).attr("src","data/image/config/c_set.png");
$(".sevol_"+tf.current_se_vol).attr("src","data/image/config/c_set.png");
$(".ch_"+tf.current_ch_speed).attr("src","data/image/config/c_set.png");
$(".auto_"+tf.current_auto_speed).attr("src","data/image/config/c_set.png");
if(tf.text_skip == 'OFF'){
$(".unread_off").attr("src","data/image/config/c_uts_off.png");
}else{
$(".unread_on").attr("src","data/image/config/c_uts_on.png");
}
[endscript]
[s]
;--------------------------------------------------------------------------------
; タイトルに戻る
;--------------------------------------------------------------------------------
*backtitle
[iscript]
tf.flag_back=$(".message1_fore").css("display");
[endscript]
[if exp="tf.flag_back=='none'"]
[cm]
[layopt layer=message1 visible=false]
[freeimage layer=1]
[clearfix]
;コンフィグの呼び出しに sleepgame を使っているので、必ず awakegame で戻してやってください
[awakegame]
[endif]
[return]
;===================================================
;★ボタンクリック時の処理
;===================================================
;--------------------------------------------------------------------------------
;▼BGM音量
;--------------------------------------------------------------------------------
*vol_bgm_change
[iscript]
$(".bgmvol").attr("src","data/image/config/c_btn.png");
$(".bgmvol_"+tf.current_bgm_vol).attr("src","data/image/config/c_set.png");
[endscript]
[bgmopt volume="&tf.current_bgm_vol"]
[return]
;--------------------------------------------------------------------------------
;▼SE音量
;--------------------------------------------------------------------------------
*vol_se_change
[iscript]
$(".sevol").attr("src","data/image/config/c_btn.png");
$(".sevol_"+tf.current_se_vol).attr("src","data/image/config/c_set.png");
[endscript]
[seopt volume="&tf.current_se_vol"]
[return]
;---------------------------------------------------------------------------------
;▼テキスト速度
;--------------------------------------------------------------------------------
*ch_speed_change
[iscript]
$(".ch").attr("src","data/image/config/c_btn.png");
$(".ch_"+tf.set_ch_speed).attr("src","data/image/config/c_set.png");
[endscript]
[configdelay speed="&tf.set_ch_speed"]
; テキスト速度サンプル
[position layer=message1 left=40 top=490 width=880 height=110 page=fore visible=true opacity=0]
[layopt layer=message1 visible=true]
[current layer=message1]
[font color="0x454D51"]
このスピードで表示されます
[iscript]
tf.system.backlog.pop(); // 上の「このスピードで表示されます」のテキストを履歴から削除
[endscript]
[wait time=2000]
[er]
[layopt layer=message1 visible=false]
[return]
;--------------------------------------------------------------------------------
;▼オート速度
;--------------------------------------------------------------------------------
*auto_speed_change
[iscript]
$(".auto").attr("src","data/image/config/c_btn.png");
$(".auto_"+tf.set_auto_speed).attr("src","data/image/config/c_set.png");
[endscript]
[autoconfig speed="&tf.set_auto_speed"]
[return]
;--------------------------------------------------------------------------------
;▼スキップ処理-OFF
;--------------------------------------------------------------------------------
*skip_off
[iscript]
$(".unread_off").attr("src","data/image/config/c_uts_off.png");
$(".unread_on").attr("src","data/image/config/c_btn.png");
tf.text_skip="OFF";
[endscript]
[config_record_label skip=false]
[return]
;--------------------------------------------------------------------------------
;▼スキップ処理-ON
;--------------------------------------------------------------------------------
*skip_on
[iscript]
$(".unread_off").attr("src","data/image/config/c_btn.png");
$(".unread_on").attr("src","data/image/config/c_uts_on.png");
tf.text_skip="ON";
[endscript]
[config_record_label skip=true]
[return]

View file

@ -0,0 +1,25 @@
;一番最初に呼び出されるファイル
[title name="ティラノスクリプト解説"]
[stop_keyconfig]
;ティラノスクリプトが標準で用意している便利なライブラリ群
;コンフィグ、CG、回想モードを使う場合は必須
@call storage="tyrano.ks"
;ゲームで必ず必要な初期化処理はこのファイルに記述するのがオススメ
;メッセージボックスは非表示
@layopt layer="message" visible=false
;最初は右下のメニューボタンを非表示にする
[hidemenubutton]
;タイトル画面へ移動
@jump storage="title.ks"
[s]

View file

@ -0,0 +1,10 @@
;このファイルは削除しないでください!
;
;make.ks はデータをロードした時に呼ばれる特別なKSファイルです。
;Fixレイヤーの初期化など、ロード時点で再構築したい処理をこちらに記述してください。
;
;
;make.ks はロード時にcallとして呼ばれるため、return必須です。
[return]

View file

@ -0,0 +1,79 @@
;=========================================
; 回想モード 画面作成
;=========================================
*start
@layopt layer=message0 visible=false
@clearfix
[hidemenubutton]
[cm]
[bg storage="../../tyrano/images/system/bg_base.png" time=100]
[layopt layer=1 visible=true]
[image name="label_replay" layer=1 left=0 top=0 storage="config/label_recollection.png" folder="image" ]
[iscript]
tf.page = 0;
tf.selected_replay_obj = ""; //選択されたリプレイを一時的に保管
[endscript]
*replaypage
[cm]
[button graphic="config/menu_button_close.png" enterimg="config/menu_button_close2.png" target="*backtitle" x=820 y=20 ]
[iscript]
tf.target_page = "page_"+tf.page;
[endscript]
*replayview
@jump target=&tf.target_page
*page_0
[replay_image_button name="replay1" graphic="cat.jpg" no_graphic="../../tyrano/images/system/noimage.png" x=60 y=130 width=160 height=140 folder="bgimage" ]
[replay_image_button name="replay2" graphic="toile.jpg" no_graphic="../../tyrano/images/system/noimage.png" x=260 y=130 width=160 height=140 folder="bgimage" ]
@jump target ="*common"
*common
[s]
*backtitle
[cm]
[freeimage layer=1]
@jump storage=title.ks
*nextpage
[emb exp="tf.page++;"]
@jump target="*replaypage"
*backpage
[emb exp="tf.page--;"]
@jump target="*replaypage"
*clickcg
[cm]
[iscript]
tf.flag_replay = true;
[endscript]
[free layer=1 name="label_replay"]
@jump storage=&tf.selected_replay_obj.storage target=&tf.selected_replay_obj.target
[s]
*no_image
@jump target=*replaypage

View file

@ -0,0 +1,445 @@
;ティラノスクリプトサンプルゲーム
*start
[cm ]
[clearfix]
[start_keyconfig]
[bg storage="room.jpg" time="100"]
;メニューボタンの表示
@showmenubutton
;メッセージウィンドウの設定
[position layer="message0" left=20 top=400 width=920 height=200 page=fore visible=true]
;文字が表示される領域を調整
[position layer=message0 page=fore margint="45" marginl="50" marginr="70" marginb="60"]
;メッセージウィンドウの表示
@layopt layer=message0 visible=true
;キャラクターの名前が表示される文字領域
[ptext name="chara_name_area" layer="message0" color="white" size=24 x=50 y=410]
;上記で定義した領域がキャラクターの名前表示であることを宣言(これがないと#の部分でエラーになります)
[chara_config ptext="chara_name_area"]
;このゲームで登場するキャラクターを宣言
;akane
[chara_new name="akane" storage="chara/akane/normal.png" jname="あかね" ]
;キャラクターの表情登録
[chara_face name="akane" face="angry" storage="chara/akane/angry.png"]
[chara_face name="akane" face="doki" storage="chara/akane/doki.png"]
[chara_face name="akane" face="happy" storage="chara/akane/happy.png"]
[chara_face name="akane" face="sad" storage="chara/akane/sad.png"]
;yamato
[chara_new name="yamato" storage="chara/yamato/normal.png" jname="やまと" ]
#
さて、ゲームが簡単に作れるというから、来てみたものの[p]
誰もいねぇじゃねぇか。[p]
……[p]
帰るか。。。[p]
[font size="30" ]
#?
ちょっとまったーーーーー[p]
[resetfont ]
#
誰だ!?[p]
;キャラクター登場
[chara_show name="akane" ]
#?
こんにちは。[p]
私の名前はあかね。[p]
#あかね
もしかして、ノベルゲームの開発に興味があるの?[p]
[glink color="blue" storage="scene1.ks" size="20" x="260" width="400" y="100" text="はい。興味あります" target="*selectinterest" ]
[glink color="blue" storage="scene1.ks" size="20" x="260" width="400" y="170" text="興味あります!" target="*selectinterest" ]
[glink color="blue" storage="scene1.ks" size="20" x="260" width="400" y="240" text="どちらかと言うと興味あり" target="*selectinterest" ]
[s ]
*selectinterest
[chara_mod name="akane" face="happy" ]
#あかね
わー。興味あるなんて、嬉しいなー。[p]
#
・・・・・[p]
まぁ、作ってみたい気持ちはあるけど、むずかしいんでしょ?[p]
プログラミングとかやったことないし、、、[p]
[chara_mod name="akane" face="default"]
#あかね
そんな君に、耳寄りな情報があるんだけど[p]
ききたい? ききたいよね?[p]
#
いや、べつに
#あかね
[cm]
[font size=40]
[delay speed=160]
ティラノスクリプトー[p]
[delay speed=30]
[resetfont]
#
・・・・[p]
#あかね
ティラノスクリプトを使うと、簡単に本格的なノベルゲームが簡単に作れてしまうのよ。[p]
#
へぇー。それはちょっと興味あるね。[p]
[chara_mod name="akane" face="happy" ]
#あかね
ほ、ほんと!?[p]
このゲームをプレイするだけで、ティラノスクリプトの機能を確認することができるから[p]
ぜひ、最後までつきあってね[p]
まず、ティラノスクリプトの特徴として[font color="red"]「HTML5」[resetfont]で動作するよ[p]
#
つ、つまり?[p]
#あかね
一度ティラノスクリプトで作ったゲームは多くの環境で動作させることができるってこと![p]
#
へぇー。それはいいね。[p]
せっかく作ったらたくさんの人に遊んでもらいたいもんね。[p]
#あかね
ウィンドウズ用のPCアプリケーションはもちろん。[p]
マック用のアプリケーションにだって対応するわよ。[p]
あと、HTML5だから、ブラウザゲームとしても発表できるわよ。[p]
ウェブサイトに貼り付けて遊んでもらえるから、気軽にゲームをプレイしてもらうことができるね。[p]
主要なブラウザはすべてサポートしているから、安心してね。[p]
#
やるなぁ。。[p]
でも、最近スマホが復旧してて、僕のサイトにもスマホで訪れる人が増えたんだけど[p]
スマホからは遊べない?[p]
#あかね
ティラノスクリプトで作ったゲームはスマートフォンからでも遊べるよ![p]
アイフォーン、アンドロイドはもちろん。アイパッドとかのタブレットでも問題ないわ。[p]
#
おぉー。[p]
#あかね
AppStoreやGooglePlayに向けてアプリ化して販売することもできるから[p]
#
おぉぉ、、やっとの貧困生活から脱出できるかも[p]
#あかね
まぁ、おもしろいゲームつくらないと、売れもしないけどな![p]
#
くっ。。[p]
#あかね
じゃあ、次に場面を移動してみるね[p]
廊下に移動するよ[p]
[bg time="3000" method="crossfade" storage="rouka.jpg" ]
#
お、廊下に移動したね。[p]
#あかね
寒いよぉ〜。はやく教室に戻ろう。[p]
[bg time="1000" method="slide" storage="room.jpg" ]
#
あれ、今、場面の移動がちょっと違ったね。[p]
#あかね
うん。急いでたからね。[p]
ティラノスクリプトでは、いろいろな演出を加える事ができて[p]
画面を切り替えるだけでも10種類以上の演出がつかえるよ。[p]
#
ふむ。便利だ[p]
#あかね
次にメッセージの表示方法を変えてみるね[p]
ティラノスクリプトでは、今みたいなアドベンチャーゲームの他に[r]
ビジュアルノベルのような全画面表示のゲームもつくれるよ。[p]
#
;キャラクター非表示
[chara_hide name="akane"]
;メッセージを全画面に切り替え
[position layer="message0" left=20 top=40 width=920 height=560 page=fore visible=true ]
どうかな? 物語をじっくり読ませたい場合はこの方式が便利ですね[l][r]
ティラノスクリプトは非常に強力で、柔軟な表現が可能です。[l][cm]
[font size=40]文字のサイズを変更したり
[l][r]
[resetfont]
[font color="pink"]色を変更したり
[resetfont][l][r]
[ruby text=る]ル[ruby text=び]ビを[ruby text=ふ]振ることだって[ruby text=かん]簡[ruby text=たん]単にできます[l]
[cm]
;たて書きにする
[position vertical=true layer=message0 page=fore margint="45" marginl="0" marginr="70" marginb="60"]
このように縦書きで記述することもできます。[r][l]
縦書きでも、横書きの時と同じ機能を使うことができます。[r][l]
;横書きに戻す
[position vertical=false]
横書きと縦書きをシーンによって使い分けることもできます[r][l]
じゃあ、アドベンチャー形式に戻しますね[p]
;メッセージボックスを元に戻す
[position layer="message0" left=20 top=400 width=920 height=200 page=fore visible=true]
@chara_show name="akane"
#akane
メッセージボックスは、自分の好きな画像を使うこともできるよ[p]
[font color="0x454D51"]
[deffont color="0x454D51"]
;名前の表示位置も変更
[free name="chara_name_area" layer="message0"]
[position layer=message0 width=960 height=210 top=430 left=0]
[position layer=message0 page=fore frame="frame.png" margint="45" marginl="50" marginr="70" marginb="60" opacity=230 ]
;名前枠の設定
[ptext name="chara_name_area" layer="message0" color="0xFAFAFA" size=24 x=40 y=435]
[chara_config ptext="chara_name_area"]
どうかな?[p]
ゲームに合わせて自分の好きなデザインを作ってくださいね[p]
あと、デフォルトだとセーブやロードは画面右下のボタンからできるけど[p]
ウィンドウをカスタマイズすれば、、、、[p]
;メニューボタン非表示
@hidemenubutton
;ロールボタン追加;;;;;;;;;;;;;;
[button name="role_button" role="skip" graphic="button/skip.png" enterimg="button/skip2.png" x=35 y=610]
; オート
[button name="role_button" role="auto" graphic="button/auto.png" enterimg="button/auto2.png" x=110 y=610]
; セーブ
[button name="role_button" role="save" graphic="button/save.png" enterimg="button/save2.png" x=185 y=610]
;ロード
[button name="role_button" role="load" graphic="button/load.png" enterimg="button/load2.png" x=260 y=610]
;クイックセーブ
[button name="role_button" role="quicksave" graphic="button/qsave.png" enterimg="button/qsave2.png" x=335 y=610]
;クイックロード
[button name="role_button" role="quickload" graphic="button/qload.png" enterimg="button/qload2.png" x=410 y=610]
;バックログ
[button name="role_button" role="backlog" graphic="button/log.png" enterimg="button/log2.png" x=485 y=610]
;メッセージウィンドウ非表示
[button name="role_button" role="window" graphic="button/close.png" enterimg="button/close2.png" x=560 y=610]
;フルスクリーン切替
[button name="role_button" role="fullscreen" graphic="button/screen.png" enterimg="button/screen2.png" x=635 y=610]
;メニュー呼び出し(※ロールボタンを使うなら不要)
[button name="role_button" role="menu" graphic="button/menu.png" enterimg="button/menu2.png" x=710 y=610]
;コンフィグ(※sleepgame を使用して config.ks を呼び出しています)
[button name="role_button" role="sleepgame" graphic="button/sleep.png" enterimg="button/sleep2.png" x=785 y=610 storage="config.ks"]
;タイトルに戻る
[button name="role_button" role="title" graphic="button/title.png" enterimg="button/title2.png" x=860 y=610]
;;ロールボタン追加終わり
こんな風にゲームに必要な機能を画面の上に持たせることも簡単にできるよ[p]
これはロールボタンといって、ボタンに特別な機能を持たせる事ができます。[p]
標準で用意されているのは、[l]
セーブ、[l]
ロード、[l][cm]
タイトルへ戻る、
メニュー表示、
メッセージ非表示、
スキップ、
バックログ、
フルスクリーン切り替え、
クイックセーブ、
クイックロード、
オートモード!
[p]
はぁ、はぁ[p]
#
大丈夫?[p]
これだけあれば、ゲームを作るには困らなそうだね[p]
#あかね
さて、もちろん音楽を鳴らすこともできるよ[l][cm]
それじゃあ、再生するよ?[l][cm]
[link target=*playmusic]【1】うん。再生してください[endlink][r]
[link target=*noplay]【2】いや。今は再生しないで![endlink]
[s]
*playmusic
[cm]
よし、再生するよ。[l]
@playbgm time="3000" storage=music.ogg loop=true
徐々にフェードインしながら再生することもできるんだ[l][cm]
@jump target="*common_bgm"
*noplay
[cm]
うん。わかった。再生はしないね。[l][cm]
また、試してみてね[l][cm]
*common_bgm
あ、そうそう[l][cm]
今みたいな選択肢で物語を分岐することも、簡単にできるよ。[l][cm]
#あかね
ここらで、別のキャラクターに登場してもらいましょうか[l][cm]
やまとー[p]
[chara_show name="yamato"]
こんな風に。簡単です。[l][r]
キャラクターは何人でも登場させることができるから、試してみてね。[p]
#yamato
おい、俺もう、帰っていいかな?[l][cm]
#akane
あ、ごめんごめん。ありがとう[l][cm]
[chara_hide name="yamato"]
#akane
これでティラノスクリプトの基本機能の説明は終わりだけど[p]
どうだったかな?[p]
#
うん、これなら自分でも作れそうな気がしてきたよ[p]
#あかね
よかった![p]
最初は、ティラノスクリプト公式ページのチュートリアルをやってみると良いと思うよ![p]
もちろん、このゲームもティラノスクリプトで動いてるから、参考になると思うし。[p]
ぜひ、ゲーム制作にチャレンジしてみてね[p]
プレイしてくれてありがとう。[p]
最後にティラノスクリプトで役立つ情報へのリンクを表示しておくから
確認してみてね。[p]
[cm]
*button_link
@layopt layer=message0 visible=false
@layopt layer=fix visible=false
[anim name="akane" left=600 time=1000]
;リンクボタンを表示
[glink text="ティラノビルダーの紹介" size=20 width=500 x=30 y=100 color=blue target=tyranobuilder ]
[glink text="制作事例" size=20 width=500 x=30 y=160 color=blue target=example ]
[glink text="応用テクニック" size=20 width=500 x=30 y=220 color=blue target=tech ]
[glink text="役に立つ情報源" size=20 width=500 x=30 y=280 color=blue target=info ]
[glink text="タグリファレンス" size=20 width=500 x=30 y=340 color=blue target=tagref ]
[s]
*tyranobuilder
[cm]
@layopt layer=message0 visible=true
@layopt layer=fix visible=true;
[font color-"red"]
「ティラノビルダー」
[resetfont]
という無料の開発ツールもあります。[p]
[image layer=1 page=fore visible=true top=10 left=50 width=560 height=400 storage = builder.png]
これは、グラフィカルな画面でノベルゲームを作れるツールです[p]
スクリプトが苦手な人でもゲーム制作を行うことができるからぜひ試してね。[p]
[freeimage layer=1]
@jump target=button_link
[s]
*example
@layopt layer=message0 visible=true
@layopt layer=fix visible=true
これまで、ティラノスクリプトを使って沢山のゲームが作成されています。[p]
一部の制作事例を公式サイトに乗せているのでよければ確認してくださいね。[p]
[iscript]
window.open("http://tyrano.jp/home/example");
[endscript]
@jump target=button_link
[cm]
[s]
*tech
@layopt layer=message0 visible=true
@layopt layer=fix visible=true
このサンプルでは、ティラノスクリプトのごく一部の機能しか紹介できていません[p]
さらに出来ることを知りたい場合、スクリプトを丸ごとダウンロードできるようになっているので[p]
そのサンプルを触ってみることをオススメします![p]
[iscript]
window.open("http://tyrano.jp/home/demo");
[endscript]
@jump target=button_link
*info
@layopt layer=message0 visible=true
@layopt layer=fix visible=true
ティラノスクリプトでわからないことがあったら[p]
公式掲示板で質問したり、Wikiなどもありますので参考にしてみてください[p]
@jump target=button_link
*tagref
@layopt layer=message0 visible=true
@layopt layer=fix visible=true
タグは詳細なリファレンスページが用意されています。[p]
このページでさらに詳細な使い方を身につけてください[p]
[iscript]
window.open("http://tyrano.jp/home/tag");
[endscript]
@jump target="*button_link"
[s]

View file

@ -0,0 +1,23 @@
[cm]
@clearstack
@bg storage ="title.jpg" time=100
@wait time = 200
*start
[button x=100 y=250 graphic="title/button_start.png" target="gamestart"]
[button x=100 y=320 graphic="title/button_load.png" role="load" ]
[button x=100 y=390 graphic="title/button_cg.png" storage="cg.ks" ]
[button x=100 y=460 graphic="title/button_replay.png" storage="replay.ks" ]
[button x=100 y=530 graphic="title/button_config.png" role="sleepgame" storage="config.ks" ]
[s]
*gamestart
;一番最初のシナリオファイルへジャンプする
@jump storage="scene1.ks"

View file

@ -0,0 +1,185 @@
*start
;背景変更マクロ storage と time を指定する
[macro name="back"]
;@layopt layer=message0 visible=false
[backlay]
[image layer=base page=back storage=%storage]
[trans layer="base" method=%method|crossfade children=false time=%time|2000]
[wt]
;@layopt layer=message0 visible=true
[endmacro]
;キャラクターを表示、そして設定
[macro name="charaset"]
[backlay]
[image storage=%storage left=%left|0 top=%top|0 layer=%layer page=back visible=true ]
[trans time=%time|1]
@wt
[endmacro]
[macro name="chararemove"]
[freeimage layer = %layer]
[endmacro]
;;;;;;;;;;;;セーブ関係
;save情報を取得、ptextを継承する
[macro name="saveinfo"]
[iscript]
tf.savetext = "";
tf.array_save = TG.menu.getSaveData().data;
tf.data = tf.array_save[mp.index];
tf.title = tf.data.title;
tf.save_date = tf.data.save_date;
tf.savetext = "<span style='font-size:10px'>"+tf.save_date+"</span><br />"+tf.title;
[endscript]
[ptext * text=&tf.savetext ]
[endmacro]
[macro name="setsave"]
[iscript]
TG.menu.doSave(mp.index);
[endscript]
[endmacro]
[macro name="loading"]
[iscript]
TG.menu.loadGame(mp.index);
[endscript]
[endmacro]
;/////////////拡張 CGモードなどを利用するための設定
[iscript]
if(sf.cg_view){
}else{
sf.cg_view = {};
}
if(sf.replay_view){
}else{
sf.replay_view = {};
}
[endscript]
;CGモードのボタンを表示するためのマクロ
[macro name="cg_image_button"]
[iscript]
mp.graphic = mp.graphic.split(',');
mp.tmp_graphic = mp.graphic.concat();
tf.is_cg_open = false;
if(sf.cg_view[mp.graphic[0]]){
tf.is_cg_open = true;
}
if(typeof mp.thumb !="undefined"){
mp.tmp_graphic[0] = mp.thumb;
}
[endscript]
;渡された値を元に、CG状態を確認していく
[if exp="tf.is_cg_open==true"]
[button graphic=&mp.tmp_graphic[0] x=&mp.x y=&mp.y width=&mp.width height=&mp.height preexp="mp.graphic" exp="tf.selected_cg_image = preexp" storage="cg.ks" target="*clickcg" folder="bgimage" ]
[else]
[button graphic=&mp.no_graphic x=&mp.x y=&mp.y width=&mp.width height=&mp.height storage="cg.ks" target="*no_image" folder="bgimage" ]
[endif]
[endmacro]
;CGが閲覧された場合、CGモードで表示できるようにする
[macro name="cg" ]
[iscript]
sf.cg_view[mp.storage] = "on";
[endscript]
[endmacro]
;リプレイモード
;CGモードのボタンを表示するためのマクロ
[macro name="replay_image_button"]
[iscript]
tf.is_replay_open = false;
if(sf.replay_view[mp.name]){
tf.is_replay_open = true;
}
[endscript]
;渡された値を元に、CG状態を確認していく
[if exp="tf.is_replay_open==true"]
[button graphic=&mp.graphic x=&mp.x y=&mp.y width=&mp.width height=&mp.height preexp="sf.replay_view[mp.name]" exp="tf.selected_replay_obj = preexp" storage="replay.ks" target="*clickcg" folder="bgimage" ]
[else]
[button graphic=&mp.no_graphic x=&mp.x y=&mp.y width=&mp.width height=&mp.height storage="replay.ks" target="*no_image" folder="bgimage" ]
[endif]
[endmacro]
;リプレイを開放する
[macro name="setreplay" ]
[iscript]
sf.replay_view[mp.name] = {storage:mp.storage, target:mp.target};
[endscript]
[endmacro]
[macro name="endreplay"]
[if exp="tf.flag_replay == true"]
@layopt page="fore" layer="message0" visible=false
;システムボタンを非表示にするなど
[hidemenubutton]
@jump storage="replay.ks"
[endif]
[endmacro]
[return]

View file

@ -0,0 +1,374 @@
// Config.tjs - ティラノスクリプト 設定
// Copyright (C) 2012-2017 ShikemokuMK
;global.config_version = "4.50"; // この行を消さないでください
// ティラノスクリプトの基本設定になります。
// 吉里吉里で動かす場合は同一フォルダ内のKirikiri_Config.tjs を使用して下さい
// このファイル内で設定できる項目は、すべて
// ;設定名 = 値;
// の形式になっています。
// 「追加の設定」を除いて、設定は各項目につき1行で記述する必要があります。
//------------------------------------------------------- 全体の設定 -----
// ◆ タイトル
// ウィンドウのキャプション(タイトル)および
// ブラウザの場合は、タイトルに指定されます
;System.title = "ティラノスクリプト";
// ◆ プロジェクト一意の識別名称 ティラノスクリプト独自設定
// プロジェクト固有の文字列を指定してください。特に同一ドメイン上にプロジェクトを配置する場合は必ず指定してください
;projectID = tyranoproject;
// ◆ リリースバージョンを数値で指定します。全角・英数字は使用できません。
// パッチ機能において重要な役割を果たします。パッチファイルで指定されたバージョンがこの数値より大きい場合はパッチが適応されます。
// ゲームをアップデートした場合、必ず以下の数値を上げておくことをオススメします。
;game_version = 0.0;
// 画面比率を固定にするか否か
// "fit"を指定すると、プレイヤーが閲覧している端末に合わせて自動的に調整されますが、縦横比率は保たれません。
// "fix"を指定すると縦横比率は保たれます。ただし、端末によっては何も表示されない空白領域ができてしまいます。
// "default"を指定すると縦横比の調整は一切行われません
;ScreenRatio = fix;
//パッチファイルが配置されている場合、起動時に自動的に反映するか否か。
//trueを指定すると実行ファイルと同一フォルダにtpatchファイルが存在する場合反映してから起動します。
//(MacOS Sierra 以降の場合は home/ユーザー名/_TyranoGameData/ 以下)
//falseを指定した場合 起動後に[apply_local_patch]タグを使って反映することもできます。
;patch_apply_auto = true;
// 画面をセンタリングするか否か
// アプリ化などでゲーム画面が画面外に出てしまうような場合にfalseを指定すると改善する場合があります。
;ScreenCentering = true;
// カメラ機能を使えるようにするかを設定
// trueで有効 false で無効です。
;useCamera = true;
//-------------------------------------------- ウィンドウや動作の設定 -----
// ◆ 画面サイズ
// scWidth に画面の幅、scHeight に画面の高さをピクセル単位で指定します。
;scWidth = 960;
;scHeight = 640;
// ◆ 文字表示スピード
// delay で指定した場合はその値が優先されます。resetdelayで元に戻ります
;chSpeed = 30;
// ◆ 文字表示スピード (ミリ秒/文字)(未実装)
;chSpeeds.fast = 10; // 「高速」文字表示スピード
;chSpeeds.normal = 30; // 「普通」文字表示スピード
;chSpeeds.slow = 50; // 「遅い」文字表示スピード
// ◆ スキップスピード (ミリ秒/文字)
//スキップ時にどれくらいの早さで進むかを設定できる
;skipSpeed = 30;
// ◆ スキップの時、演出もスキップするかを設定できる
//trueで有効。背景変更・キャラクター表示・非表示の速度をが短くなります。
;skipEffectIgnore = true;
// ◆ オートスピード
//autoSpeedはオート時にどれくらいの早さで進むかをミリ秒設定できる
//autoClickStop は 画面クリックでオートが停止するかどうかを設定。trueを指定すると、クリックでオートが停止
;autoSpeed = 1300;
;autoClickStop = true;
//オート時の待ち時間を文字数に応じて調整できます。1文字あたり指定したミリ秒分がautoSpeedの時間に追加された時間待ちます
//例えば10文字のテキストだった場合、60*10 = 600ms + autoSpeedの値
;autoSpeedWithText = 60;
// ◆ マウスカーソル
// マウスカーソルを指定します。画像ファイルも指定することができます
// defaultを指定すると、通常の矢印になります。
// 独自の画像カーソルを使用したい場合はimageフォルダに配置した上で、ファイル名を指定してください
// [cursor]タグを使って、ゲーム中に変更することもできます。
;cursorDefault = default; // 通常のマウスカーソル
// ◆ デフォルトのサウンド・動画フォーマットを指定
// デフォルトはogg形式です
// すべてのブラウザに対応させるためには、ogg と aac の両ファイルを用意指定してください。
// 近年、mp3・mp4ファイルはライセンス上の関係から避けられる傾向があります
// 特に商用利用の場合はライセンスフリーのogg・webm等の利用をお願い致します。
// Windows・Mac のアプリ形式で動かす場合は ogg を指定する必要があります。mp3は鳴らせません
// "ogg" もしくは "mp3" を指定します。
;mediaFormatDefault = ogg;
// ◆ BGMの音量 0 〜 100 で指定します。
;defaultBgmVolume = 100;
// ◆ SEの音量 0 〜 100 で指定します。
;defaultSeVolume = 100;
// ◆ 動画の音量 0 〜 100 で指定します。
;defaultMovieVolume = 100;
// ◆ BGMで使用するスロット数をあらかじめ定義します。
// こちらは、スマートフォンブラウザで適切に音を再生したい場合は必須です
;defaultBgmSlotNum = 1;
// ◆ サウンドで使用するスロット数をあらかじめ定義します。
// こちらは、スマートフォンブラウザで適切に音を再生したい場合は必須です
;defaultSoundSlotNum = 3;
// ◆ コンフィグ(メニュー)機能表示
// セーブ・ロードやタイトルに戻るといった一連の機能を表示するかを指定します
;configVisible = true; //コンフィグアイコンを表示
;configLeft = -1 //コンフィグアイコンの左位置を指定できます。-1の場合は画面右下
;configTop = -1 //コンフィグアイコンの上位置を指定できます。-1の場合は画面右下
// ◆ セーブの方式を指定
//注意:途中でセーブ方式を変更することはできません。
//webstorage :WebStorage領域に保存します。あらゆる環境で利用できますが、セーブデータが大きくなりすぎた場合に保存できなくなります
//webstorage_compress :圧縮を施したうえで、WebStorage領域に保存します。セーブ・ロードに時間がかかりますが、保存できるデータ量は大きく増加します
//file : セーブデータを sav ファイルとして書き出します。この場合PCゲームにしか利用できません。セーブデータを移動したり、容量制限の心配が不要です。
;configSave = webstorage
// セーブ・ロード時にサムネを表示したくない場合はこちらをfalseに設定してください
// 一部古い機種でセーブ機能が動作しない場合などにサムネを表示しないことで解決しないことがあります。
;configThumbnail = true;
// サムネイル画像を使用する場合の画質を指定できます。
// ブラウザといったローカルストレージを使用する場合は low か middle がおすすめです。
// low:最低画質(jpeg) middle:中画質(jpeg) high:最高画質(png)
;configThumbnailQuality = middle ;
// セーブスロットの数を指定できます。
// ただし、configSaveの形式がwebstorageの場合、5個程度に抑えておかないと容量不足でセーブできなくなる可能性があります。
// スロット数はゲーム開始後は変更できません。その場合、セーブデータをすべて消した上で再度開始する必要があります。
;configSaveSlotNum = 5;
// ◆ バックログ機能
// バックログ機能用にテキストの最大保持数を保存できます。
// 保存されたデータはtf.system.backlog に配列として格納されます。
// 0の場合、保存を行いません。
;maxBackLogNum = 50;
// ◆ ラベル記録
// 重要:既読管理を有効にしたい場合は必ずtrueを指定して下さい
// 自動的に「読んだ」ラベルを記録するかどうかを指定します。
// この設定が false でなく true になっていると、ラベルを読むごとにシステム
// 変数 (sf.record) に
// trail_シナリオファイル名_ラベル名
// という変数名の変数に 1 が加算されます。
// たとえば first.ks の *start というラベルであれば sf.record.trail_first_start とい
// う変数名になります。まだ通過していないカ所では 未定義 ( undefined として見なされ
// ます ) になっています。
//
// 次のラベルに到達した時に ラベルの終了と見なされます。
// 吉里吉里/KAGとは仕様が異なりますのでご注意下さい。
// つまり、jump で他のシナリオファイルにジャンプしただけでは、記録されません。
// シナリオファイルの最初にラベルを配置しておくと記録されます
;autoRecordLabel = false;
// ◆ 既読管理
// 既読管理に関連する設定です
// 以下を有効にするには autoRecordLabel に trueを指定する必要があります
// 未読スキップを有効にするかどうかを指定します。 true を指定すると有効です
;unReadTextSkip = false  
//既読のテキストの色(0x000000形式)を変更できます。default を指定すると既読テキストでも色は変わりません。
;alreadyReadTextColor = 0x87cefa
// ◆ 初期状態の前景レイヤの数
// 必要なければ 0 を指定してかまいません。
// 数が多いと速度が低下したりメモリを消費しますので、必要以上に大きな数を指
// 定しない方が良いでしょう。
// laycount タグでシナリオ内でも変更できます。
;numCharacterLayers = 3;
// ◆ 前景レイヤの左右中心位置指定
// +---------+
// | |
// | | | | |
// | | | | |
// +---------+
// image タグあるいは img タグの pos 属性で指定する前景レイヤの 位置名 (
// left や lecft_center など ) とそれぞれに対応する 中心位置 ( x 座標 ) を
// 指定します。;scPositionX.位置名 = 中心位置; の形式で指定します。
;scPositionX.left = 160;
;scPositionX.left_center = 240;
;scPositionX.center = 320;
;scPositionX.right_center = 400;
;scPositionX.right = 480;
// 簡易な記号
// ( pos 属性に指定する left, left_center, center, right_center, right を
// それぞれ l, lc, c, rc, r でも指定できるように別名を定義します )
;scPositionX.l = scPositionX.left;
;scPositionX.lc = scPositionX.left_center;
;scPositionX.c = scPositionX.center;
;scPositionX.rc = scPositionX.right_center;
;scPositionX.r = scPositionX.right;
// ◆ 初期状態のメッセージレイヤの数
// 前景レイヤと違って、0 を指定することはできません。これも必要な数だけ確保
// するようにすべきです。laycount タグでシナリオ内でも変更できます。
;numMessageLayers = 2;
// ◆ 初期状態でメッセージレイヤを表示するかどうか
// true を指定するとメッセージレイヤ0が初期状態で表示状態になりますが、
// false を指定すると初期状態ではすべてのメッセージレイヤは初期状態で非表示
// になります。
;initialMessageLayerVisible = true;
// ◆ 左右上下マージン
// マージン (余白) を pixel 単位で指定します。メッセージ枠用の画像を指定し
// た場合は、メッセージ枠の表示範囲内に設定する必要があります。
// これらは、position タグの marginl, maringt, marginr, marginb 属性に対応
// します。
;marginL = 8; // 左余白
;marginT = 8; // 上余白
;marginR = 8; // 右余白
;marginB = 8; // 下余白
// ◆ 初期位置
// これらは、position タグのそれぞれ left top width height の属性に対応しま
// す。
;ml = 16; // 左端位置
;mt = 16; // 上端位置
;mw = 960-32; // 幅
;mh = 640-32; // 高さ
// ◆ 「デバッグ」
// ここをtrueにしておくことでブラウザのコンソールログに各種値が出力されるようになります
// ゲームリリース時は必ずfalseにしておきましょう
;debugMenu.visible = true;
//-------------------------------------------- メッセージレイヤの設定 -----
// ◆ メッセージレイヤの色と不透明度
// frameColor には 0xRRGGBB 形式で ( RR GG BB はそれぞれ 2 桁の 16 進数)
// メッセージレイヤの色を指定します。frameOpacity には 0 ~ 255 の数値で、
// 不透明度を指定します。メッセージ枠用の画像が指定されている場合は無効で
// す。
;frameColor = 0x000000; // position タグの color 属性に相当
;frameOpacity = 128; // position タグの opacity 属性に相当
// ◆ 自動改行/改ページ
// true を設定すると、行末での自動改行、ページ末での自動改ページが行われま
// す。false を設定するとこれらが行われない他、禁則処理等もされなくなりま
// す。
;defaultAutoReturn = true;
// ◆ 右文字マージン (未実装)
// 禁則処理用にあけておく右端の文字数を指定します。
// (縦書きモードでは下端の文字数であると解釈されます)
;marginRCh = 2;
// ◆ 文字の大きさ
// デフォルトの文字の大きさ ( 高さ ) を pixel 単位で指定します。
;defaultFontSize = 24; // deffont タグの size 属性に相当
// ◆ 行間
// 行間を pixel 単位で指定します。
;defaultLineSpacing = 8; // defstyle タグの linespacing 属性に相当
// ◆ 字間
// 字間を pixel 単位で指定します。
// デフォルトは 0 で、正あるいは負のオフセットで指定します。
// 負の数値を指定すると字間が詰まります。正の数値を指定すると字間が空きま
// す。
;defaultPitch = 0; // defstyle タグの pitch 属性に相当
// ◆ 文字の書体
// デフォルトのフォント名を指定します。
// この設定はシステム変数に記録されて、次回起動時に引き継がれるので、
// userFace の設定を変更し、適用したい場合はシステム変数ファイル
// カンマで区切って複数のフォントを指定することができます。その場合は、最初
// の方に書いたフォントが存在すれば、優先されます。
;userFace = Quicksand, 游ゴシック体, "Yu Gothic", YuGothic, "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", メイリオ, Meiryo, Osaka, "MS Pゴシック", "MS PGothic", sans-serif;
// ◆ 文字の色
// デフォルトの文字の色を 0xRRGGBB 形式で指定します。
;defaultChColor = 0xffffff; // deffont タグの color 属性に相当
// ◆ 文字をボールドにするか
// する場合は true, しない場合は false を指定します。
;defaultBold = false; // deffont タグの bold 属性に相当
// ◆ ルビサイズ (未実装)
// ルビサイズを pixel 単位で指定します。
;defaultRubySize = 10; // deffont タグの rubysize に相当
// ◆ ルビ の表示オフセット(未実装)
// 負の数を指定するとその pixel 数分、本文に近い位置に表示されます。
;defaultRubyOffset = -2; // deffont タグの rubyoffset に相当
// ◆ 文字のアンチエイリアス効果をするか(なめらかな文字表現)
// これはゲーム全体の文字に適応されます
// 0:無効 1:弱めのアンチエイリアス効果 2:強めのアンチエイリアス効果
;defaultAntialiased = 1;
// ◆ 影を描画するか
// する場合は true, しない場合は false を指定します。
// 注意:文字の縁取りと同時に使用することはできません。その場合、影は無効になります。
;defaultShadow = false; // deffont タグの shadow 属性に相当
// ◆ 影の色
// 影の色を 0xRRGGBB 形式で指定します。
;defaultShadowColor = 0x000000; // deffont タグの shadowcolor に属性に相当
// ◆ 縁取りをするか
// する場合は true, しない場合は false を指定します。
;defaultEdge = false; // deffont タグの edge 属性に相当
// ◆ 縁取りの色
// 縁取りの色を 0xRRGGBB 形式で指定します。
;defaultEdgeColor = 0x000000; // deffont タグの edgecolor に属性に相当
// ◆ リンクの強調色 (未実装)
// リンクを選択したときに出る半透明矩形のデフォルトの色です。
;defaultLinkColor = 0x0080ff; // link タグの color 属性に相当
// ◆ リンクの不透明度 (未実装)
// リンクを選択したときに出る半透明矩形の不透明度です。
;defaultLinkOpacity = 64;
// ◆ 縦書きモード
// メッセージレイヤを標準で縦書きモードにする場合は false ではなく true を
// 指定してください。
;vertical = false;
//---------------------------------------------- メッセージ履歴の設定 -----

View file

@ -0,0 +1,106 @@
/*
Ver4.50以降で有効
ティラノスクリプトの装置入出力に関する設定を行うファイルです
<設定できるアクション>
save:セーブ画面を開きます
load:ロード画面を開きます
next:次の文章に移ります左クリックの操作
menu:メニュー画面を表示します
title:タイトルへ戻ります
skip:スキップを開始します
backlog:バックログを表示します
fullscreen:フルスクリーン切り替え
qsave:クイックセーブ実行
qload:クイックロード実行
auto:オートモード開始
hidemessage:メッセージ消去
関数を指定することもできます
例えばコンフィグ画面の表示などは関数の中にsleepgameでコンフィグ画面のシナリオファイルを指定してください
function(){
//config呼び出し
TYRANO.kag.ftag.startTag("sleepgame", {storage:"config.ks"});
}
<キーボード指定方法>
キーコードとそのキーが押されたときのアクションを配置します
キーコードの調べ方は
http://shanabrian.com/web/javascript/keycode.php
上記サイトで実際にキーを押すことで対応する数字を取得できます
ノベルゲームでよく利用すると思わえるキーコードを書いておきます
32:space 13:Enter 17:Ctrl
<マウス操作>
right:右クリック
center:センターボタンをクリック
wheel_up:マウスホイールを上に上げたときの動作
wheel_down:マウスホイールを下に下げたときの動作
<ジェスチャー>
スマホやタブレット限定ですフリック操作などに対応してシステムを呼び出すことができます
swipe_up_1 は例えば画面の上方向にフリックした時の動作を指定できます
この _1 の数字は指の数をしていできます
なので1本でのスワイプと2本でのスワイプの動作を分けたい場合にはそれぞれ
swipe_up_1 とswipe_up_2 を分けて定義すれば良いということです
holdは 画面を一定時間タッチし続けたときに発動します
*/
var __tyrano_key_config = {
//キーボード操作
"key" : {
"32" : "hidemessage", //Space
"13" : "next", // Enter
"91" : "skip", //Command(Mac)
"17" : "skip", //Ctrl (Windows)
"67":function(){ // c ボタン
//config呼び出し例 コメント化
/*
if (TYRANO.kag.tmp.sleep_game != null) {
return false;
}
TYRANO.kag.ftag.startTag("sleepgame", {storage:"config.ks"});
*/
}
},
//マウス操作
"mouse" : {
"right" : "hidemessage", //右クリックの動作
"center": "menu", //センターボタンをクリック
"wheel_up" : "backlog", // ホイールをアップした時の動作
"wheel_down" : "next" //ホイールをダウンした時の動作
},
//ジェスチャー
"gesture" : {
"swipe_up_1" : {
"action" : "backlog"
},
"swipe_left_1" : {
"action" : "auto"
},
"swipe_right_1" : {
"action" : "menu"
},
"swipe_down_1" : {
"action" : "load"
},
"hold" : {
"action" : "skip",
}
}
};

View file

@ -0,0 +1,123 @@
<?php
echo "start TyranoScript Minifiy\n";
echo "version:v".$argv[1]."\n";
$version = $argv[1];
//今日の日付を含むディレクトリの作成
$tyrano_name = "tyranoscript_v".$version;
$dirname="./result/".$tyrano_name;
mkdir($dirname, 0700);
//original_dataのコピー
$original_dir = "../tyrano/";
//通常コピーで良いファイル郡
$array_copy = array(
//"jquery-1.10.2.min.js",
//"jquery-ui-1.8.20.custom.min.js",
//"jquery.a3d.min.js",
"libs.js",
"tyrano.base.js",
"tyrano.js",
"tyrano.css",
"animate.css",
"font.css",
"lang.js",
);
//ミニファイ対象のファイル郡
$array_mini = array(
"plugins/kag/kag.js",
"plugins/kag/kag.layer.js",
"plugins/kag/kag.menu.js",
"plugins/kag/kag.event.js",
"plugins/kag/kag.parser.js",
"plugins/kag/kag.tag.js",
"plugins/kag/kag.tag_audio.js",
"plugins/kag/kag.tag_ext.js",
"plugins/kag/kag.tag_system.js",
"plugins/kag/kag.key_mouse.js",
"plugins/kag/kag.rider.js",
"plugins/kag/kag.tag_camera.js",
);
//トップディレクトリ
exec("cp ../index.html ".$dirname."/index.html");
exec("cp ../readme.txt ".$dirname."/readme.txt");
//exec("cp ../memo.txt ".$dirname."/うまく動かない場合.txt");
//exec("cp ../package.json ".$dirname."/package.json");
exec("mkdir -p -m 777 ".$dirname."/tyrano/plugins/kag/");
foreach($array_copy as $file){
//echo "cp --parents ../tyrano/".$file." ".$dirname."/tyrano/";
//コピーする
exec("cp ../tyrano/".$file." ".$dirname."/tyrano/");
}
//ライブラリディレクのコピー
exec("cp -R ../tyrano/libs ".$dirname."/tyrano/");
//imageディレクトリのコピー
exec("cp -R ../tyrano/images ".$dirname."/tyrano/");
exec("cp -R ../tyrano/html ".$dirname."/tyrano/");
//オリジナルマスターデータのコピー
exec("cp -R ./master_tyrano/data ".$dirname."/data");
//ミニファイ対象のコピー
foreach($array_mini as $file){
//echo "cp --parents ../tyrano/".$file." ".$dirname."/tyrano/";
//コピーする
//exec("cp ../tyrano/".$file." ".$dirname."/tyrano/");
exec("java -jar compiler-latest/compiler.jar --js=../tyrano/".$file." --js_output_file=".$dirname."/tyrano/".$file." --compilation_level WHITESPACE_ONLY");
}
chdir("./result") ;
exec("zip -r ".$tyrano_name.".zip ".$tyrano_name );
//$mac_path = "tyranoscript_for_mac_v".$version;
//$win_path = "tyranoscript_for_win_v".$version;
//各ファイルをコピーする
//exec("cp -R ../binmac ".$mac_path);
//exec("cp -R ../binwin ".$win_path);
//exec("cp -R ".$dirname."/* ".$mac_path."/");
//exec("cp -R ".$dirname."/* ".$win_path."/");
//exec("zip -r ".$mac_path.".zip ".$mac_path."/*" );
//exec("zip -r ".$win_path.".zip ".$win_path."/*" );
//copy("", $newfile);
//必要なファイルをコピーする
//JSなど一部のファイルはミニファイする
echo "finish minify tyrano";