見出し画像

config.tjsを舐めるように読む【ティラノスクリプト】

config.tjs、読んでますか?
たぶんティラノユーザーの8割はprojectIDしかいじってないんじゃないかな?

しかしこのconfig.tjs、ノベルゲームならこれくらい設定しておきたいよね!という設定はだいたいいじることができます。
あなたが「ティラノで〇〇ってできないのかな~汗」とか言ってることは、config.tjsをいじるだけでだいたいできます。

というわけで、今回は実際に「config.tjs」の中身を読んでいきましょう。

なお、config.tjs自体に書いてあるコメント以上のことは説明しないので自力で読める方は自力で読んでください。

ティラノスクリプトv520以降のconfig.tjsを確認していきます。

config.tjsの場所

まさかconfig.tjsがどこにあるか知らない奴はいねえよなぁ!?

それは………………

こーこ!!!!!!

「.tjs」とかいう謎拡張子ですが、中身はただのテキストファイルなので好きなエディタで開いてください。まさかこの期に及んでメモ帳で開く奴はいないと思いますが…まあ今回だけはメモ帳でもいいでしょう……………

いじっちゃダメな部分(1~13行目)

// Config.tjs - ティラノスクリプト 設定
// Copyright (C) 2012-2021 ShikemokuMK

;global.config_version = "5.00"; // この行を消さないでください

// ティラノスクリプトの基本設定になります。

// このファイル内で設定できる項目は、すべて
// ;設定名 = 値;
// の形式になっています。
// 「追加の設定」を除いて、設定は各項目につき1行で記述する必要があります。

ここに書き方は全部書いてあります。
最低10回は読んでおいてください。

全体の設定(14~69行目)

タイトル

// ◆ タイトル
// ウィンドウのキャプション(タイトル)および
// ブラウザの場合は、タイトルに指定されます
;System.title = "ティラノスクリプト解説";

書いてあるとおりですね。
ウィンドウのキャプションとかっていうのは

ここのことです

あと、ティラノスタジオのプロジェクト一覧のタイトルもここの値になります。
が、既存プロジェクトの読み込みからプロジェクト追加する場合、先にconfig.tjsの値をいじっておかないとconfig.tjsを編集してもデフォルトのままになります。

あとからタイトルを変えたときは、
①プロジェクトをティラノスタジオから削除
②プロジェクトのフォルダ内の「studio_config.json」というファイルを消す
③既存プロジェクトを追加
でいけます。

プロジェクト一意の識別名称

// ◆ プロジェクト一意の識別名称 ティラノスクリプト独自設定
// プロジェクト固有の文字列を指定してください。特に同一ドメイン上にプロジェクトを配置する場合は必ず指定してください
;projectID = tyranoproject;

セーブデータのファイル名とかになります。

ノベコレにアップロードするだけなら関係ないですが、自鯖に複数のゲームをアップロードしようとしたときなど、ここを変えておかないと別のゲームのセーブデータが混ざってくることがあります。コメントに書いてあるとおりです。

リリースバージョン

// ◆ リリースバージョンを数値で指定します。全角・英数字は使用できません。
// パッチ機能において重要な役割を果たします。パッチファイルで指定されたバージョンがこの数値より大きい場合はパッチが適応されます。
// ゲームをアップデートした場合、必ず以下の数値を上げておくことをオススメします。
;game_version = 0.0;

v520以降では(2023年3月現在)使ってません。

v4時代は、PCアプリケーションでパッチ適用するときにここの数値をみて、元のバージョンより大きかった場合のみパッチ適用、という動作だったんですが、今は特に関係ないです。

なので、既にパッチ適用されてるファイルに対して同じパッチを無限に当てることができますし、最新版のパッチを適用済みのファイルに古いパッチを当ててしまうといったことも起きます。

画面比率を固定にするか否か

// 画面比率を固定にするか否か
// "fit"を指定すると、プレイヤーが閲覧している端末に合わせて自動的に調整されますが、縦横比率は保たれません。
// "fix"を指定すると縦横比率は保たれます。ただし、端末によっては何も表示されない空白領域ができてしまいます。
// "default"を指定すると縦横比の調整は一切行われません
;ScreenRatio = fix;

ここfix以外にする奴おる?

書いてあるとおりです。あえて変更する必要は特にないと思います。

パッチの自動適用

//パッチファイルが配置されている場合、起動時に自動的に反映するか否か。
//trueを指定すると実行ファイルと同一フォルダにtpatchファイルが存在する場合反映してから起動します。
//(MacOS Sierra 以降の場合は home/ユーザー名/_TyranoGameData/ 以下)
//falseを指定した場合 起動後に[apply_local_patch]タグを使って反映することもできます。
;patch_apply_auto = true;

ティラノでPCゲームをガチ開発したい勢以外は関係ないです。
ガチ開発したい勢も特に理由がなければそのままでいいと思います。

何らかの事情でパッチの適用タイミングを制御したい勢はfalseにしてもいいですが、その場合[apply_local_patch]を適当なところに入れておかないと永遠にパッチを当てられなくなります。

わからん奴は下手にいじらんほうがええ!(ノブ)

画面センタリング

// 画面をセンタリングするか否か
// アプリ化などでゲーム画面が画面外に出てしまうような場合にfalseを指定すると改善する場合があります。
;ScreenCentering = true;

Android Studioなりを使ってスマホアプリガチ開発したい勢以外は関係ないです。

ガチ開発したい勢でも、最近のスマホならそのままでいいんじゃないかな~多分

カメラ機能

// カメラ機能を使えるようにするかを設定
// trueで有効 false で無効です。
;useCamera = true;

カメラ機能を使わない場合でもtrueのままで特に問題ないです。
falseにしたの忘れて「カメラ機能使えない!」とか言ってる奴はいねえよなぁ!?

3D機能

// 3D機能を利用できるようにする
// trueで有効 false で無効です。
// 有効にすると起動時間が長くなりますので、必要ない場合はfalseが推奨です。
;use3D = false;

書いてあるとおり、3D機能を使う場合のみ「true」にしましょう。

なぜなら「true」にすると3D機能用のjsファイルを大量に読み込むからです。

タグのパラメータの値に含まれる空白をどのレベルで保持するか

// ◆ タグのパラメータの値に含まれる空白をどのレベルで保持するか(1、2、3のいずれかで指定)
// 1 : 空白をまったく保持しません(すべての空白を削除します)
// 2 : 内部の空白だけ保持します(両端の空白を削除します)
// 3 : すべての空白を保持します
// たとえば [bg storage=" my room.jpg  "] というタグのstorageパラメータの値は、
// それぞれのレベルで次のように解釈されます。
// 1 : "myroom.jpg"
// 2 : "my room.jpg"
// 3 : " my room.jpg  "
// もし既存のゲームプロジェクトのティラノスクリプト本体(V514以前)をV515以降のバージョンで上書きしたときに
// それまで正常に動作していたゲームが動作しなくなった場合は、ここを 1 に変更してみてください。
;KeepSpaceInParameterValue = 2;

v520から追加された項目ですね。

画像とかのファイル名に空白を入れてる奴はそれぞれ自分の流儀にあった設定に変えておいてください。

個人的には、ファイル名に空白を使うなと思いますしパラメータ内に空白を混ぜるなと思います。(exp系パラメータ除く)

ウィンドウや動作の設定(70~313行目)

画面サイズ

// scWidth に画面の幅、scHeight に画面の高さをピクセル単位で指定します。

;scWidth = 1280;
;scHeight = 720;

書いてあるとおりです。

PCゲームを作りたい勢は気を使いましょう。レトロ調狙ってるんでもない限り16:9にしとくのが無難な気がします。

16:9でも1920x1080とかにすると、しょぼいPCだとけっこう負荷かかるっぽいです。
まあ1280x720が無難なんじゃないですかね

チャットノベル形式

// ◆ チャットノベル形式のメニュー
// チャットノベルで便利なセーブやロードなどを備えたメニューを表示するか否か。
;vchatMenuVisible = false;

ノベコレとか、というか主にノベコレで横長のゲーム画面を縦長のブラウザ画面でプレイするときとかに出てくるや~つ。

私はfalseにしてます。

文字表示スピード

// ◆ 文字表示スピード
// delay で指定した場合はその値が優先されます。resetdelayで元に戻ります
;chSpeed = 30;

書いてあるとおりです。

上の設定だと、1文字あたり30ミリ秒で表示…されるはずなんですが、ちょっと重い処理(Live2Dとか)が入ってくるとけっこう遅延が体感できます。

文字表示が速くて困るひとは(あんまり)いないので、ちょっと速めくらいに設定しといてもいいと思います。

文字表示スピード (ミリ秒/文字)(未実装)

// ◆ 文字表示スピード (ミリ秒/文字)(未実装)
;chSpeeds.fast = 10; // 「高速」文字表示スピード
;chSpeeds.normal = 30; // 「普通」文字表示スピード
;chSpeeds.slow = 50; // 「遅い」文字表示スピード

(未実装)と書いてますね。
未実装です。

文字表示の演出

// ◆ 文字表示の演出
// テキストの表示演出を指定できます。noneを指定すると演出が無効になります。
// 指定できる名前
// fadeIn/fadeInDown/fadeInLeft/fadeInRight/fadeInUp/rotateIn/zoomIn/slideIn/bounceIn/vanishIn/puffIn/rollIn/none
;defaultChEffect = none;

文字が表示されるときに、フェードしながら表示されたりとかのアニメーションです。

個人的には、fadeIn以外だと動きが気になってストーリーが入ってこないのでnoneかfadeInでいいと思います。

文字表示の演出スピード

// ◆ 文字表示の演出スピード
// defaultChAnimの演出が有効な場合、演出にかける時間を指定します。sは秒を表します。
;defaultChEffectSpeed = 0.2s;

↑で出た項目のアニメーション時間です。

文字がチンタラ表示されるとイライラするのでここの値は小さめでいいと思います。

スキップスピード

// ◆ スキップスピード (ミリ秒/文字)
//スキップ時にどれくらいの早さで進むかを設定できる
;skipSpeed = 30;

スキップ時の速度です。

ティラノのもっさり感はここのスピードのせいが5割くらいあるので、ここの値を小さめにするだけでシュッとしたゲームになります(?

スキップの時、演出もスキップするかを設定できる

// ◆ スキップの時、演出もスキップするかを設定できる
//trueで有効。背景変更・キャラクター表示・非表示の速度をが短くなります。
;skipEffectIgnore = true;

罠設定です。

確かに一部の設定はここをtrueにすることでウェイト時間がカットされるんですが、[wait]とか[mask]とか、trueにしてもスキップ時にスキップされない演出がまあまああります。

ティラノのもっさり感はこの仕様のせいというのが9割だったりします。

オートスピード

// ◆ オートスピード
//autoSpeedはオート時にどれくらいの早さで進むかをミリ秒設定できる
//autoClickStop は 画面クリックでオートが停止するかどうかを設定。trueを指定すると、クリックでオートが停止
;autoSpeed = 1300;
;autoClickStop = true;

書いてあるとおりです。

オートの待機時間は人によって適切な時間がバラッッッッバラなので、コンフィグで変えられるようにしておきたいですね。

「autoClickStop = false」にすると、オートボタンを押さないとオートが止まらなくなります。

オート時の1文字あたり待ち時間

//オート時の待ち時間を文字数に応じて調整できます。1文字あたり指定したミリ秒分がautoSpeedの時間に追加された時間待ちます
//例えば10文字のテキストだった場合、60*10 = 600ms + autoSpeedの値
;autoSpeedWithText = 60;

書いてあるとおりです。

できればこいつもコンフィグで設定できるようにしたいですね、デフォルトのコンフィグにはないけど

マウスカーソル

// ◆ マウスカーソル
// マウスカーソルを指定します。画像ファイルも指定することができます
// defaultを指定すると、通常の矢印になります。
// 独自の画像カーソルを使用したい場合はimageフォルダに配置した上で、ファイル名を指定してください
// [cursor]タグを使って、ゲーム中に変更することもできます。

;cursorDefault = default; // 通常のマウスカーソル

書いてあるとおりです。

個人的にはマウスカーソルが変わるのきらい、見慣れたやつがいい

デフォルトのサウンド・動画フォーマット

// ◆ デフォルトのサウンド・動画フォーマットを指定
// V5以降は未使用。特に変更する必要はありません。

;mediaFormatDefault = ogg;

書いてあるとおりです。
v5以降未使用です。

BGMの音量

// ◆ BGMの音量 0 〜 100 で指定します。
;defaultBgmVolume = 100;

書いてあるとおりです。

フルボイスのゲームだと、ここの値は小さめくらいがいいかな~と思います(声が聞こえないので)

SEの音量

// ◆ SEの音量 0 〜 100 で指定します。
;defaultSeVolume = 100;

書いてあるとおり…なんですが、SEの音量設定ってけっこう厄介なところがあるんですよね~とくにバッファごとに音量変えたい場合

ちなみにティラノのボイスはSEと同じ扱いなので、そのまま作るとここの値がボイスの音量になります。

動画の音量

// ◆ 動画の音量 0 〜 100 で指定します。
;defaultMovieVolume = 100;

書いてあるとおりです。
特に言うことなし

BGMで使用するスロット数

// ◆ BGMで使用するスロット数をあらかじめ定義します。
// こちらは、スマートフォンブラウザで適切に音を再生したい場合は必須です
;defaultBgmSlotNum = 1;

書いてあるとおりです。

ここはそのままでいいような、逆に2以上の場合にティラノ側が対応していないような…(複数スロットでの再生自体はできる)

サウンドで使用するスロット数

// ◆ サウンドで使用するスロット数をあらかじめ定義します。
// こちらは、スマートフォンブラウザで適切に音を再生したい場合は必須です
;defaultSoundSlotNum = 3;

書いてあるとおりです。

前述した通り、ティラノのボイスはSEのなので、キャラごとにボイス音量変えたいとかいうときはここを増やしてやる必要があります。

「スマートフォンブラウザで~」というのはv5以降だと気にしなくていいです。

コンフィグ(メニュー)機能表示

// ◆ コンフィグ(メニュー)機能表示
// セーブ・ロードやタイトルに戻るといった一連の機能を表示するかを指定します
;configVisible = true;  //コンフィグアイコンを表示
;configLeft    = -1     //コンフィグアイコンの左位置を指定できます。-1の場合は画面右下
;configTop     = -1     //コンフィグアイコンの上位置を指定できます。-1の場合は画面右下
これです

このボタンいらねっていう人はfalseにしときましょう。

なおfalseにしといてもノベコレの「タップしてスタート」の画面では出る模様
「タップしてスタート」でも出したくない人は自力で「タップしてスタート」画面実装しましょう。

セーブの方式を指定

// ◆ セーブの方式を指定
//注意:途中でセーブ方式を変更することはできません。
//webstorage :WebStorage領域に保存します。あらゆる環境で利用できますが、セーブデータが大きくなりすぎた場合に保存できなくなります
//webstorage_compress :圧縮を施したうえで、WebStorage領域に保存します。セーブ・ロードに時間がかかりますが、保存できるデータ量は大きく増加します
//file : セーブデータを sav ファイルとして書き出します。この場合PCゲームにしか利用できません。セーブデータを移動したり、容量制限の心配が不要です。

;configSave     = webstorage

書いてあるとおりです。

これは特に意識する必要ないと思います。
PCゲームの場合でも、ティラノスタジオでPC向けにエクスポートすれば自動的にfile設定でエクスポートされます。

セーブデータのサムネイル表示

// セーブ・ロード時にサムネを表示したくない場合はこちらをfalseに設定してください
// 一部古い機種でセーブ機能が動作しない場合などにサムネを表示しないことで解決しないことがあります。
;configThumbnail    = true;

セーブ画面にサムネイルなんていらねえ!という漢はfalseにしてください。

サムネイル画質

// サムネイル画像を使用する場合の画質を指定できます。
// ブラウザやスマホ対応で、WebStorage領域を使用する場合は low か middle がおすすめです。
// low:最低画質(jpeg) middle:中画質(jpeg)  high:最高画質(png)
;configThumbnailQuality = low ;

書いてあるとおりです。

ブラウザゲームなら「low」にしてセーブスロットの数を稼ぐのもありですね、どれだけ増えるかわからんけど

サムネイル画像サイズ

// サムネイル画像を使用する場合の画像サイズを指定できます。
// WebStorage領域を使用する場合は 数字を小さくしてセーブデータの容量を少なくするのがおすすめです。
// 0.01 ~ 1.0 (画面サイズそのまま)
;configThumbnailScale = 0.3;

書いてあるとおりです。

注意したいのは、ここで指定しているサイズ=セーブ画面で表示されるサイズではないということです。

サムネ画像自体はここで指定しているサイズで保存されますが、セーブ画面で表示される画像は、セーブ画面で設定したサイズに拡縮されたものになります。

セーブスロットの数

// セーブスロットの数を指定できます。
// ただし、configSaveの形式がwebstorageの場合、5個程度に抑えておかないと容量不足でセーブできなくなる可能性があります。
// スロット数はゲーム開始後は変更できません。その場合、セーブデータをすべて消した上で再度開始する必要があります。
;configSaveSlotNum = 50;

書いてあるとおりです。

v520からセーブデータの容量が削減されたので、ブラウザゲームでも50くらいにしちゃっていい気がします。

セーブデータの日時表示フォーマット

// セーブデータに表示される日時のフォーマットを指定できます。
// (設定例)                  (結果例)
// yyyy/M/d h:mm:ss     →   2022/1/1 0:00:00
// yyyy/MM/dd hh:mm:ss  →   2022/01/01 00:00:00
// yyyy年M月d日 h時mm分    →   2022年1月1日 0時00分
;configSaveDateFormat = yyyy/MM/dd hh:mm:ss;

書いてあるとおりです。

日時表示がゼロ埋めされてないと死ぬ人はそのままでいいと思います。

セーブデータ移動の可否

// ◆ セーブデータ移動の可否を設定します。(PCゲーム限定)
// 他人のセーブデータ取得し配置することで、ゲームを改造するチート行為は危険です。
// ティラノスクリプトではセーブデータの改変を検知するとゲームの起動を停止する機能が備わっています。
// ただし、頻繁にアップデートを行うケース等において、この機能が誤検知してしまうケースがまれに発生します。
// その場合、ゲーム本体のインストール場所(フォルダ名)を変更することで回避できます。
// trueを指定すると、セーブデータの移動と上書きが可能になりますが、信頼できない場所からセーブデータを取得し配置しないような注意喚起も合わせてお願い致します。
;configSaveOverwrite = false

書いてあるとおりです。
PCゲーム勢以外は関係ないです。

どう設定するかは自分で考えて決めてください。

バックログ機能

// ◆ バックログ機能
// バックログ機能用にテキストの最大保持数を保存できます。
// 保存されたデータは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 = true;

書いてあるとおりです。

ティラノ製ゲームのスキップがクソと言われる原因の100割はここの設定のせいなので各人100回は熟読してください。

デフォルトだとここの設定は「false」になっています。
これがどういうことか理解した者のみ次の項目に進んでください。

既読管理

// ◆ 既読管理
// 既読管理に関連する設定です
// 以下を有効にするには autoRecordLabel に trueを指定する必要があります
// 未読スキップを有効にするかどうかを指定します。 true を指定すると有効です
;unReadTextSkip = false

書いてあるとおりです。

既読テキスト色

//既読のテキストの色(0x000000形式)を変更できます。default を指定すると既読テキストでも色は変わりません。
;alreadyReadTextColor = 0x87cefa

書いてあるとおりです。

たまに「なんか勝手に文字の色変わるんだけど…」と言ってる人がいますが、10割10分ここの設定のせいです。

前景レイヤの数

// ◆ 初期状態の前景レイヤの数
// 必要なければ 0 を指定してかまいません。
// 数が多いと速度が低下したりメモリを消費しますので、必要以上に大きな数を指
// 定しない方が良いでしょう。
// laycount タグでシナリオ内でも変更できます。
;numCharacterLayers = 3;

書いてあるとおりじゃないです。

[laycount]タグはティラノスクリプトには存在しません。

なので、前景レイヤ数はここで指定するしかありません。
個人的には変更する必要ないと思いますが…

前景レイヤの左右中心位置指定

// ◆ 前景レイヤの左右中心位置指定
// +---------+
// |         |
// | |  |  | |
// | |  |  | |
// +---------+
// 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;

書いてあるとおりです。

が、[image]タグでしか使えないのであんまり利点ないかな…(感想)
キャラクター系タグでも使えればだいぶありがたいんですけどね~

メッセージレイヤの数

// ◆ 初期状態のメッセージレイヤの数
// 前景レイヤと違って、0 を指定することはできません。これも必要な数だけ確保
// するようにすべきです。laycount タグでシナリオ内でも変更できます。
;numMessageLayers = 2;

書いてあるとおりじゃないですその2

[laycount]タグはありません。

初期状態でメッセージレイヤを表示するか

// ◆ 初期状態でメッセージレイヤを表示するかどうか
// true を指定するとメッセージレイヤ0が初期状態で表示状態になりますが、
// false を指定すると初期状態ではすべてのメッセージレイヤは初期状態で非表示
// になります。
;initialMessageLayerVisible = tru

書いてあるとおりです。

基本falseでいいんじゃないですかね、初期設定だとtrueだけど

左右上下マージン

// ◆ 左右上下マージン
// マージン (余白) を pixel 単位で指定します。メッセージ枠用の画像を指定し
// た場合は、メッセージ枠の表示範囲内に設定する必要があります。
// これらは、position タグの marginl, maringt, marginr, marginb 属性に対応
// します。
;marginL = 8; // 左余白
;marginT = 8; // 上余白
;marginR = 8; // 右余白
;marginB = 8; // 下余白

書いてあるとおりです。

なおメッセージ枠にはこれ以外に謎の10pxマージンが存在するとか、しないとか

メッセージ枠初期位置

// ◆ 初期位置
// これらは、position タグのそれぞれ left top width height の属性に対応しま
// す。
;ml = 16;  // 左端位置
;mt = 16;  // 上端位置
;mw = 960-32;   // 幅
;mh = 640-32;   // 高さ

書いてあるとおりです。

デバッグ

// ◆ 「デバッグ」
// ここをtrueにしておくことでブラウザのコンソールログに各種値が出力されるようになります
// ゲームリリース時は必ずfalseにしておきましょう

;debugMenu.visible = true;

書いてあるとおりです。

これもティラノスタジオでエクスポートすると自動的にfalseになるので特に意識する必要ないと思います。

メッセージレイヤの設定(314~424行目)

メッセージレイヤの色と不透明度

// ◆ メッセージレイヤの色と不透明度
// frameColor には 0xRRGGBB 形式で ( RR GG BB はそれぞれ 2 桁の 16 進数)
// メッセージレイヤの色を指定します。frameOpacity には 0 ~ 255 の数値で、
// 不透明度を指定します。メッセージ枠用の画像が指定されている場合は無効で
// す。
;frameColor = 0x000000; // position タグの color 属性に相当
;frameOpacity = 128;  // position タグの opacity 属性に相当

書いてあるとおりです。

frameColorは、メッセージ枠に画像を使う民は関係ないです。

frameOpacityは、画像指定の場合無効って書いてあるけど有効だった気がするけどあんまりおぼえてないです。

自動改行/改ページ

// ◆ 自動改行/改ページ
// true を設定すると、行末での自動改行、ページ末での自動改ページが行われま
// す。false を設定するとこれらが行われない他、禁則処理等もされなくなりま
// す。
;defaultAutoReturn = true;

書いてあるとおりです。

基本そのままでいいと思います。

右文字マージン (未実装)

// ◆ 右文字マージン (未実装)
// 禁則処理用にあけておく右端の文字数を指定します。
// (縦書きモードでは下端の文字数であると解釈されます)
;marginRCh = 2;

書いてあるとおりです。
未実装です。

文字の大きさ

// ◆ 文字の大きさ
// デフォルトの文字の大きさ ( 高さ ) を pixel 単位で指定します。
;defaultFontSize = 28;  // 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, Arial;

書いてあるとおりです。が、

「この設定はシステム変数に記録されて、次回起動時に引き継がれるので、userFace の設定を変更し、適用したい場合はシステム変数ファイル」

ここたぶん消し忘れですね

フォント設定関連についてはねこの神のnoteを読みましょう

文字の色

// ◆ 文字の色
// デフォルトの文字の色を 0xRRGGBB 形式で指定します。
;defaultChColor = 0xffffff;  // deffont タグの color 属性に相当

書いてあるとおりです。

「0xRRBBGG形式」と書いてありますが、v520ではCSSで設定できる形式ならなんでも指定できます(「#ffffff」とか「white」とか)

文字をボールドにするか

// ◆ 文字をボールドにするか
// する場合は true, しない場合は false を指定します。
;defaultBold = false; // deffont タグの bold 属性に相当

書いてあるとおりです。

ルビサイズ(未実装)

// ◆ ルビサイズ (未実装)
// ルビサイズを pixel 単位で指定します。
;defaultRubySize = 10; // deffont タグの rubysize に相当

書いてあるとおりです。
未実装です。

ルビに凝りたい民はねこの神のプラグインを使おう

ルビの表示オフセット(未実装)

// ◆ ルビ の表示オフセット(未実装)
// 負の数を指定するとその pixel 数分、本文に近い位置に表示されます。
;defaultRubyOffset = -2; // deffont タグの rubyoffset に相当

書いてあるとおりです。
未実装です。

この設定も↑のプラグインで設定できるのでそっち使いましょう。

文字のアンチエイリアス効果

// ◆ 文字のアンチエイリアス効果をするか(なめらかな文字表現)
// これはゲーム全体の文字に適応されます
// 0:無効 1:弱めのアンチエイリアス効果 2:強めのアンチエイリアス効果
;defaultAntialiased = 1;

書いてあるとおり…なんですが、Mac限定です。

Windowsではこの設定効きません。Windowsの仕様なのでマイクロソフトに文句言いましょう。

影を描画するか

// ◆ 影を描画するか
// する場合は 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;

書いてあるとおりです。

キーボードによるボタン選択の設定(425~489行目)

キーボードで各種ボタンを選択できるようにするか

// ◆ キーボードで各種ボタンを選択できるようにするかどうか
// キーボードでボタンを選択できるようにするなら true、選択できるようにしたくないなら false を指定します。
// ※キーコンフィグの設定(system/KeyConfig.js)も参照してください。
//  ボタンをキーボードで選択できるようにするためには、各種キーに focus_left などのアクションが設定されている必要があります。
//  (設定例)
//     "37": "focus_left",  // ←
//     "38": "focus_up",    // ↑
//     "39": "focus_right", // →
//     "40": "focus_down",  // ↓
;useKeyFocus = true;

v520で追加されたキーボード関連設定です。

まあtrueでいい気がしますが、マウス操作しか認めないぜという人はfalseにしてください。

キーボードの方向キーなどでボタンを選択したときに最初にどのボタンをフォーカスするか

// ◆ キーボードの方向キーなどでボタンを選択したときに最初にどのボタンをフォーカスするか
// たとえば選択肢が縦に3つ並んでいる状況で下キーを押したとき、一番下のボタンがフォーカスされるようにするか、
// それとも下キーを押した場合でも固定で一番上のボタンがフォーカスされるようにするか、を設定できます。
// first : どの方向キーを押した場合でも、固定で一番上のボタンがフォーカスされるようにします。
// dir   : 上キーを押したときには一番上のボタンが、
//         下キーを押した場合には一番下のボタンがフォーカスされるようにします。
// dir-2 : ボタンが2個しかない場合は方向キーどおりにフォーカス(dir)、
//         選択肢が3個以上ある場合は固定で先頭のボタンがフォーカス(first)されるようにします。
;firstKeyFocusType = first;

書いてあるとおりです。

特に理由がなければそのままでいいと思います。

キーボードでボタンを選択したときに仮のマウスカーソル画像を表示するかどうか

// ◆ キーボードでボタンを選択したときに仮のマウスカーソル画像を表示するかどうか
// true  : 仮のマウスカーソルを表示する
// false : 仮のマウスカーソルを表示しない
;keyFocusWithMouseCursor = true;

書いてあるとおりです。

お好きにどうぞ。

キーボードでボタンを選択したときに「ボタンにマウスカーソルを乗せたときのボタンのデザイン変化」を適用するかどうか。

// ◆ キーボードでボタンを選択したときに「ボタンにマウスカーソルを乗せたときのボタンのデザイン変化」を適用するかどうか。
// たとえば [glink] の上に実際のマウスカーソルを乗せると「ボタンが明るくなる」などのデザイン変化が起こりますが、
// このデザインの変化を「キーボードでボタンを選択したとき」にも適用するかどうかの設定です。
// true  : デザイン変化を適用する
// false : デザイン変化を適用しない
;keyFocusWithHoverStyle = true;

書いてあるとおりです。

これはあった方が親切な気がしますね。

キーボードでボタンを選択したときのアウトラインの太さ

// ◆ キーボードでボタンを選択したときのアウトラインの太さ
// これに 0 を指定すると、キーボードでボタンを選択したときに表示されるアウトライン(外枠の線)がなくなります。
// ユーザービリティに鑑みると、アウトラインがあったほうがわかりやすいでしょう。
;keyFocusOutlineWidth = 0;

書いてあるとおりです。

キーボードでボタンを選択したときのアウトラインのスタイル

// ◆ キーボードでボタンを選択したときのアウトラインのスタイル
// solid  : 1本線
// double : 2本線
// dashed : 角が四角い点線
// dotted : 角が丸い点線
;keyFocusOutlineStyle = solid;

書いてあるとおりです。

キーボードでボタンを選択したときのアウトラインの色

// ◆ キーボードでボタンを選択したときのアウトラインの色
// 下記のような指定にも対応します。下記は半透明の白色を指定した例です。
// rgba(255, 255, 255, 0.5)
;keyFocusOutlineColor = 0x000000;

書いてあるとおりです。

キーボードでボタンを選択したときのアウトラインのアニメーション

// ◆ キーボードでボタンを選択したときのアウトラインのアニメーション
// none             : アニメーションなし
// flash            : 滑らかな点滅
// flash_moimentary : 瞬間的な点滅
;keyFocusOutlineAnim = flash_momentary;

書いてあるとおりです。

アニメーションはあった方がわかりやすいとは思いますが、やり過ぎは禁物なのでやるならテストしておきたいですね

キーボードでボタンを選択したときのアウトラインのアニメーション時間(ミリ秒)

// ◆ キーボードでボタンを選択したときのアウトラインのアニメーション時間(ミリ秒)
;keyFocusOutlineAnimDuration = 2000;

書いてあるとおりです。

ゲームパッド操作の設定(490~497行目)

ゲームパッドによる操作を有効にするかどうか

// ◆ ゲームパッドによる操作を有効にするかどうか
// 有効にするなら true を、無効にするなら false を指定します。
;useGamepad = true;

ゲームパッド(コントローラー)での操作関連設定です。

ここをtrueにするなら、ちゃんと現物使ってテストしておきたいですね。

その他の設定(498~504行目)

ゲーム未保存時にプレイヤーがゲームを閉じようとしたときに警告を出す機能を有効化するかどうか

// ◆ ゲーム未保存時にプレイヤーがゲームを閉じようとしたときに警告を出す機能を有効化するかどうか
// 有効にするなら true を、無効にするなら false を指定します。
// ここを有効にしたうえで [closeconfirm_on] タグをシナリオに配置してください。
;useCloseConfirm = true;

書いてあるとおり…なんですが、なんかこの機能不安定な印象がある…(ティラノの実装がというよりElectronというかChromiumのAPIが的な意味で)


おわり

以上、config.tjsの全項目でした。

config.tjsで設定した値は「TG.config.~」から読み書きできるので、ものによってはコンフィグ画面とかから設定変更できるようにしてもいいですね。

さあ、君もconfig.tjsをいじってティラノカスタムの第一歩を踏み出そう!


サポートをしていただけると私がたいへんよろこびます。 ちなみに欲しい物リストはこちら→https://www.amazon.jp/hz/wishlist/ls/2DBRPE55L3SQC?ref_=wl_share