SRC#でシナリオ・データを作る
SRC# でシナリオやデータを作るときの道具と、作り始めてから公開するまでの流れです。データとイベントの書き方そのものは「データを作成する前に」「シナリオを作成する前に」からの各章を見てください。
道具
おすすめは VS Code 拡張です。書く・見る・マップを描く・試す・検査するが 1 つの画面でつながります。下の道具はどれも VS Code を使わずに単独でも使えます(ブラウザの SRC#Studio、コマンドラインの srcsharp)。
| 道具 | できること |
|---|---|
| VS Code 拡張「SRC# Authoring」 | イベント・データの書き間違いをその場で知らせる、コマンドとラベルの補完、ラベルへ移動、画面付きでイベントを動かす・止めて調べる(デバッガ)、直しながら遊ぶ(ホットリロード)、マップ作成ツール |
| SRC#Studio(マップ作成ツール) | マップ(.map)を描く。ブラウザで https://7474.github.io/SRC/studio/ を開くか、VS Code で .map のファイルを開く。詳しくは「マップデータ」 |
srcsharp(コマンドライン) | ひな形を作る(new)、データとイベントを検査する(lint)、画面なしで最後まで自動で遊ぶ(play)、能力値の一覧(balance)、このヘルプを引く(help) |
| SRC#Avalonia・SRC#Web | 作ったシナリオを遊ぶ(「SRC#のインストール」) |
| データビューア | 公開されているデータ(SRC-Data の GSC データパックなど)を、画像付きで見る・ユニットとパイロットを比べる(https://7474.github.io/SRC/)。データを作るときの参考に |
VS Code 拡張と srcsharp は、.NET 10 SDK を入れてから入れます。
dotnet tool install -g SRCSharpTools
VS Code 拡張は、拡張機能の画面で「SRC# Authoring」を探して入れます。srcsharp が無ければ、拡張が入れるかを尋ねます。
汎用データ
シナリオを動かすには、地形データなどの汎用データ(SRC のフォルダの Data\System など)が要ります。
- 元の SRC のフルパッケージの汎用データ(「SRCのインストール」)
- SRC# の最小の汎用データ(SRC.Sharp/Content/basic-data。地形・スペシャルパワー・ユニットの画像・効果音・BGM の最小限。CC0)
VS Code 拡張では、設定の srcsharp.appPath にそのフォルダを書きます(拡張の「SRC#」のパネルから選べます)。
流れ
1. ひな形を作る
VS Code のコマンド「SRC#: 新しいシナリオを作る」か、コマンドラインで作ります。
srcsharp new 私のシナリオ --title "私のシナリオ"
次のファイルができます。最小の汎用データでそのまま遊べる 1 話です。
| ファイル | 内容 |
|---|---|
第1話.eve | イベント。プロローグ・スタート(マップを出してユニットを置く)・勝ち負けのイベント |
第1話.map | マップ |
Data/robot.txt・Data/pilot.txt | ユニット・パイロットのデータ |
第1話.play | 最後まで自動で遊ぶ手順 |
.vscode/launch.json | VS Code で F5 を押すと、開いているイベントを画面付きで動かす |
.github/workflows/src-check.yml | GitHub に置くと、データの検査と、最後まで自動で遊べるかの確かめを毎回行う |
2. 書く
イベントとデータは VS Code で書きます。保存しなくても、書き間違い(コマンドの引数・If と EndIf の対応・飛び先のラベルが無い・データの読み込みの誤りなど)に波線が付きます。コマンドとラベルは補完でき、ラベルは F12 で定義へ移動できます。データは「データ形式」から各データの章を見てください。
2.5. データを見る・試す
- データのファイル(
robot.txt・pilot.txtなど)を開いて「SRC#: データのプレビュー」を選ぶと、カーソルのあるユニット・パイロットを、ゲームの数値(能力値・特殊能力・武器・スペシャルパワー)で横に出します。保存しなくても、打つたびに変わります。ブラウザの SRC#Studio の「データのプレビュー」でも見られます - 「SRC#: 試し戦闘」を選ぶと、ユニット・パイロットと敵を選んで、小さなマップで戦わせられます。戦いながらデータを直して保存すると、その場で読み直します。コマンドラインでは
srcsharp trial <シナリオのフォルダ> --unit ユニットで試し戦闘のイベントを作れます
3. マップを描く
第1話.map を VS Code で開くとマップ作成ツールが開きます。左クリックで描き、右クリックで地形を拾います。マップの大きさは「大きさ」で変えます。ブラウザの SRC#Studio でも同じことができます。
4. 試す
- イベントを開いて F5(「開いているイベントを遊ぶ(画面付き)」)。VS Code の中のタブで遊べます。行の左をクリックするとブレークポイントを置け、止まったところで変数を見られます
- 遊んでいる最中にイベント・データ・画像を直して保存すると、遊んでいる状態のまま読み直します(ホットリロード)
- 「第1話 を自動で最後まで」で、
第1話.playの手順のとおり自動で遊びます。勝つまでの流れが壊れていないかを確かめられます
5. 検査する
srcsharp lint . --app-path <汎用データのフォルダ>
読み込めないデータ・イベントの誤りを出します。--rules で書き方の決まり(GSC データパックの基準など)も調べられます(srcsharp lint --list-rules)。ひな形の .github/workflows/src-check.yml は、GitHub に push するたびにこの検査と自動プレイを動かし、結果をプルリクエストに出します。
6. 公開する
- SRC#Web で遊べるように置く: 「SRC#Webの使い方」
- 元の SRC と同じく、フォルダを zip にして配る
困ったとき
- コマンド・関数・データの書き方は
srcsharp help 項目(例:srcsharp help Talk)でも引けます - 動きがおかしいときは、デバッガで止めて変数を見るか、「ログ」を見てください