ティラノスクリプト 実績(トロフィー)システム プラグイン|解除通知・実績一覧画面・隠し実績・セーブ連動・サンプルシナリオ付き
- Digital500 JPY









ティラノスクリプトのノベルゲームに「実績(トロフィー)」を追加するプラグインです。 実績の定義、解除、解除通知、実績一覧画面、隠し実績、進捗カウント、リセットまでを一式で備えています。 解除状態はシステム変数(sf)に保存されるので、セーブデータを変えても、最初からやり直しても残ります。周回プレイやエンディング回収の動機づけに使えます。 ■ できること ・解除通知:画面の隅にアイコン・実績名・説明を表示し、解除音を鳴らします。位置(右上・左上・右下・左下・上中央)、表示時間、解除音、音量を [plugin] の引数で指定できます。同じ実績は何度通っても通知は1回だけ。2つ同時に解除したときは重ならず順番に出ます。 ・実績一覧画面:解除数/総数、達成率(%)とバー、各実績のアイコン・名前・説明・解除日を表示。「閉じる」を押すまでシナリオは待機し、一覧の上のクリックはメッセージ送りに伝わりません。 ・隠し実績:解除するまで名前と説明を「???」で隠します。 ・進捗カウント:「鍵を3本集める」のような実績は、目標回数に届いた時点で自動で解除。一覧に進捗バーと「2 / 3」を表示します。 ・判定:[achievement_check] で解除済みかを変数に入れたり、cond="TyranoAchievement.isUnlocked('id')" で分岐できます。 ・リセット:1件だけ、またはすべての実績を消せます。 ■ 使い方(3ステップ) 1. 同梱の data/others/plugin/achievement/ フォルダを、ゲームの同じ場所にコピー 2. 実績の定義JSON(id・名前・説明・アイコン・隠し・目標回数)を data/others/ に置く 3. first.ks に [plugin name="achievement" file="achievements.json"] を1行追加 あとはシナリオで [achievement_unlock id="route_end"] と書くだけです。 タグは7種類:achievement_define / achievement_unlock / achievement_progress / achievement_check / achievement_show_list / achievement_reset / achievement_config。 ■ 同梱物(zip 1つ) ・プラグイン本体:init.ks、achievement.js、achievement.css(通知と一覧の見た目はこのCSSで自由に変更できます)、既定アイコン2点、解除音1点(WAV・約1.1秒) ・サンプルゲーム:新規プロジェクトに上書きして動かす短いシナリオ(first.ks と achievement_sample.ks)、実績定義JSON(6件:開始・選択肢2種・進捗3回・エンディング・隠し実績)、背景画像3枚(1280×720)、実績アイコン6点(128×128)。画像もすべて同梱しているので、そのまま動かせます。 ・README_JA.md(導入手順・定義JSONの書き方・引数一覧)、docs/タグリファレンス.md(全タグの属性・関数・イベント)、docs/検証ログ.md、LICENSE.txt ■ 動作確認について 公式サイトの「プラグインを自作する」の配置方式(data/others/plugin/<名前>/init.ks を [plugin] で呼ぶ)と、公式GitHubで公開されているソース(2026年10月に閲覧)のタグ登録・シナリオ進行・システム変数の仕組みに合わせて作っています。 自動テストは、これらのエンジンAPIを同じ形で模した検証環境をヘッドレスChromiumで動かして38項目を実行し、全項目合格しました(解除の通知が1回だけ出ること、再読み込み後も解除と進捗が残ること、リセットで消えること、一覧の「閉じる」を実際にクリックして進行が戻ることなど)。商品画像の画面は、この検証環境で同梱プラグインが実際に描画したものを撮影しています。 検証環境はティラノスクリプト本体ではありません。お使いのバージョンで不具合があれば、バージョン番号と症状をお知らせください。ティラノビルダー用のプラグイン形式には対応していません。 ■ 利用条件 購入者が制作するゲームに組み込んで、商用・非商用を問わず配布・販売できます。改変も自由、クレジット表記は不要です。素材やプラグインとしての単体での再配布・再販売はできません。 ■ 制作方法 プラグインのプログラム(JavaScript・ティラノスクリプト・CSS)と自動テストのコードは、大部分をAIコーディングエージェントが作成しました。サンプルの背景とアイコンはPython(Pillow)のプログラムで描画、解除音はPython(numpy)で合成しています。手描き・手作業の素材ではありません。








