開発メモ

ゲームの着想

いくつかのレトロゲームの手触りに、原神らしい要素として「元素反応」を足した。

ただし本作はソロ向けの設計のため、本編のようにキャラクターを切り替えて反応を起こす前提が使えません。 そこで、ひとりのキャラクターで「複数回の攻撃」を組み立てられるようにし、さらに元素オーブを拾って主元素/副元素を入れ替えることで、 状況に応じた反応コンボ(副付着→主一撃)を狙える形にしています。

Genshin-TSの罠

Genshin-TS は TypeScript で書いたロジックを NodeGraph に変換して扱うためのツールチェーンで、 完成物がそのまま「JSゲーム」として単体で動く、という種類のものではありません。

前提やワークフロー(生成物・注入・制約)は 制作前提 にまとめています。

そのため実装時は、「エディタ上ではどんなノード(どんな挙動・制約)が必要か」を頭に置きつつ、Genshin-TS 側の API・記法に落とし込みます。 たとえばノードグラフの「ローカル変数」に相当する挙動は、Genshin-TS では let として扱われます。

逆に言うと、ローカル変数の挙動が必須でない場面では let を使わず const を基本にした方が、意図しない差分を避けられて安全です。

Genshin-TSだけで完結できない

Genshin-TS は「ロジックをコードで書いて NodeGraph に変換する」部分を強力にしてくれますが、 最終的に動く場所は「星々の幻境」のプロジェクト/マップ側なので、エディタ上でのセットアップと実機確認は避けられません。

  • マップ/ステージの土台作り:地形、スポーン地点、当たり判定、移動制限など
  • ノードグラフの受け皿:どのグラフIDに注入するか、既存グラフとの競合回避(安全チェック)
  • リソース参照:Prefab / UI コントロール / トリガー等の ID を「エディタ上の実体」と揃える
  • 見た目と体験:UI レイアウト、演出、音、カメラなど
  • 反復検証:注入→マップ再読み込み→挙動確認、のループ(バックアップや差分確認も重要)

ビルド/注入/デバッグの手順は 運用メモ 側に寄せています。