AIコードエディタ「Cursor」を使ったEU5解析

スポンサーリンク

生成AIを使ってEU5を解析するシリーズ、最後はAIコードエディタ「Cursor」を使ったEU5解析です。

下記内容は、多くが生成AIの回答結果をもとに構成されており、誤りを含む場合があります。またEU5は2026年1月時点の1.0.11を対象としています。特に生成AIやMCPは発展中の技術であり、時間経過により示している画面構成やスクリーンショット、解析内容などに大きな変化が出る可能性が高いため充分ご注意ください。内容の検証は今後進める予定です。

 

スポンサーリンク

概要

クラウドLLMでの解析、ローカルLLMでの解析と来て最後はAIコードエディタ「Cursor」を使ったEU5解析です(懲りない

いずれの環境でも、やはり人間には叶わないか、あるいはすぐに制限が来るためろくに解析できないという不満が残りました。そのため最後はAI支援統合開発環境を使った生成AIによるEU5解析に取り組みます。

※別に生成AIが悪いのではなく、現在のトークンサイズなどの制限に対して大量のファイルを読み込む必要があるEU5の解析が不向きなだけです。

「Cursor」とはVisual Studio Codeのフォークプロジェクトで、AI機能が追加搭載されています。これにより、AIによりソースコードの検証(添削)をしてもらったり、あるいはAIにソースコード予測(途中まで書いているコードの続きを予測する)を行わせたり、ソースコードを書かせたり、普通にチャットで相談したりといった事ができます。いわばソースコード編集に特化した生成AI環境だと言えます。

「Cursor」は無料プランでも利用可能で(ただし上限が結構低い)、あるいはProプラン(月額20ドル、2026年1月時点)なども用意されていますが、結局生成AIを使うに当たってはかなり低い上限が付き物で縦横無尽に使えるわけではありません。そこで、基本的にはブラウザ版のGeminiやクラウドLLMに接続しながら、Cursor環境での生成AIを最小限使うという使い方を模索していきます。

※基本はVisual Studio Codeのフォークと書いた通り、生成AIを使わないことも可能です。ソース閲覧・バージョン管理などは当然基本機能として持っていますし、テキストファイルなら当然ビューワーとして大変有能です。

またCursorは MCP (Model Context Protocol)にも対応しており、 ということはクラウドLLMを利用することも可能で、CursorビルトインのローカルLLMで解決できない高度な解析もクラウドLLMに投げることも可能となっています。

EU5とCursor環境

EU5(Europa Universalis V)は、Paradox Interactive社のMod解放の方針としてJominiエンジンのソースコードとして生のテキストでエンドユーザーに提供されており、それはある程度慣れた人ならそのまま解読できるような内容となっています。しかしシリーズ(や同社別タイトル)で歴史を重ねてきた本作ではそのボリュームが凄いことになっており(パッチ1.0.10時点でも生テキストだけで2,800前後ある)、同社開発者でもない限り全貌を捉えるのがなかなか難しくなっています。

一方生成AIは比較的オープンな仕様のJominiエンジンのソースコードを理解することができるため、ある程度のヒントを出すとスラスラ読み込んで解析をすることが可能となっています。Mod制作者ならずとも、大量の情報が詰まっているソースコードを読むことはゲーム攻略の助けともなるでしょうし、こんなことが隠されてたんだと知ることは楽しみの一つでもあります。

さらに「Cursor」では、生成AIの理解の助けとして「.cursorrules」や「.mdcファイル」(Markdown for Cursor。いずれもMarkdownファイル)を設置することで、生成AIにソースコード全体の意味づけやルールを教えることも可能となっています。またCursorではこれらのファイルすら生成AIに作成させることも可能です。

※更には、ブラウザ版Geminiなどを使うことで自動生成させることも可能です。Geminiの場合にはEU4やEU5のJominiエンジンを知っており、どういうファイル構成かも学習済です。もっと言えば、どんなModがあってMod制作者がどういう傾向でModを作るのか?やModの構造解析まで行ってみせます。例えばEU5のcommonフォルダ以下を「tree /F」して見せるだけで、(変な話ですが)生成AIが興奮して解読を始めたりします。

 

 

セットアップ

Cursorのセットアップ

  1. 「Cursor」の公式サイト(https://cursor.com/ja)に行き、Windows版(CursorUserSetup-x64-2.3.41.exe)をダウンロードしてきます。 ※143MB
  2. そのままインストールを行います
  3. ブラウザが開いてサインインしろというので、グーグルアカウントなどでサインインするか、あるいはアカウントを作成してログインします
  4. Continueすると課金画面に遷移しますが、無視して戻ると確認画面が出るので「Yes, Log in」を選ぶとCursorが起動します

 

環境設定と日本語化など

文字フォントサイズが小さい場合には「Ctrl+(Num)+」すれば全体的に拡大できるし、大きすぎる場合には「Ctrl+(Num)-」すれば縮小する。

ライトテーマ化

  1. 左上のメニューをクリックして「Preference」→「Theme」→「Color Theme」を選ぶと、画面中央あたりに選択肢が出るので、「Light (Visual Studio)」 や「Quiet Light」 など、名前に「Light」と付いているものを選ぶ

日本語化

そのままでも生成AIとは日本語で会話できるが、メニューなどは英語のままなので多少不便なので拡張を入れてメニューなども日本語化しておく。

  1. Ctrl+Shift+Xで右側ペインにExtensionsが開く
  2. 上の検索窓(絞り込み)に「japan」などと入れると1つ「Japanese Language Pack for Visual Studio Code」が出るので、それをInstallする
  3. 反映するか?というメッセージにOKをクリックすれば、自動的に再起動してメニューなどの日本語化完了

データフォルダをシンボリックリンクしておく

例によってデータフォルダをユーザーフォルダ(%appdata%Roaming\Cursor)に作っていきますのでシステムドライブを圧迫していくことが容易に想像できます。

そのため、ユーザーフォルダを丸ごと別ドライブに移動(コピーではなくムーブ)し、シンボリックリンクしておくと良いかも知れません。

 

クラウドLLM登録も済ませておく

そのままでもビルトインの生成AIが使えますが、例によって回数制限がきついため念の為にクラウドLLMも登録しておく。

なおCursorの回数制限が先に来てしまった場合には、クラウドLLMに投げることすら許してくれないのでその時点から24時間待ちとなる。ただしその場合でも「生成AIを使わない作業」なら継続可能なのが(ソースコードビューワーとして優れている)「Cursor」利用の利点となる。生成AIが使えなくとも、ソースコードビューワーとしては当たり前に使える上、ブラウザ版の生成AIに個別ファイルをドロップしての解析作業などにはいうほど不都合はない。

  1. 設定から「Cursor Settings」と開き、「Models」タブを開く
  2. 上段がModelsのオンオフ、下段はそれぞれの生成AI向けのAPIキーの設定場所となっている
  3. クラウドGeminiの場合、上記のように設定して設定画面を閉じる
  4. Ctrl+Shift+Lキーでチャット欄を開くと次のようになっている
  5. このチャット欄左下の「Auto」をクリックして、(「Auto」をオフにすると)エンジン選択ができる
  6. ついでに「Agent」もクリックして「Ask」へと変えておく

 

 

EU5関係の設定

EU5のソースコードを読ませる

Cursorでは、ソースコードがあるフォルダをOpenすることでプロジェクトが開かれる。またバージョン管理などもCursorに任せるほうが楽なため、下記のような方針を取ることとする。

  1. EU5のインストールフォルダから生テキストのみをフォルダ構造そのままにCursor解析用のフォルダにコピーする
  2. パッチが出た際にはそのまま差分コピーを行い差分抽出もCursorに任せる
  3. 対象フォルダは下記とする ※恐らく現状ではこのあたりだと思われる
    • game\in_game
      • game\in_game\common
      • game\in_game\events
      • game\in_game\setup
    • game\main_menu
      • game\main_menu\common
      • game\main_menu\localization\japanese ※日本語化
      • game\main_menu\setup
    • ※以上でパッチ1.0.10時点では80MBしかありません。
  4. 私の場合は、(保管ドライブ)に「EU5」-「ProjectCaesar」というフォルダを掘り、その配下に上記gameフォルダ以下をコピーした。
  5. こうしておいてCursor起動画面から「ファイル」-「フォルダーを開く」でコピー先フォルダのトップフォルダを指定して読み込ませると、一瞬で読み込みが終わり、右ペインのエクスプローラー(Ctrl+Shift+E)にフォルダ構成が表示される。

 

「.cursorrules」や「.mdcファイル」の設置

Cursorでは、生成AIの理解の助けとして「.cursorrules」や「.mdcファイル」(Markdown for Cursor。いずれもMarkdownファイル)を設置できる。

この設置作業も生成AIの助けを借りて行っていく。正解は無いため、下記はあくまでその作業のヒント。ここではブラウザ版Geminiを使うこととする。

※CahtGPTでも同じことはできるだろうが、回数制限や添付ファイル制限があるため私は使っていない。グーグルアレルギーもない。

  1. エクスプローラで、(誤操作の恐れもあるためEU5インストールフォルダではなく)EU5のテキストファイルコピー先フォルダを開く
  2. エクスプローラのアドレス欄(フォルダパス欄)に「cmd /k」と入力してEnterを押すと、そのフォルダでコマンドプロンプトが開く
  3. そこで「tree /F >eu5tree.txt」などとしてフォルダ構成をファイルに落とす
    ※ファイルに落とさなくとも直接コマンドプロンプト画面からコピーしても良い。
  4. ブラウザ版Geminiの画面に下記のような内容を話す
    1. 「以下はParadox社のゲームEU5のフォルダ構成だが、これを参考にCursor用の「.cursorrules」や「.mdcファイル」を作成したい。とりあえずプロジェクト全体の「.cursorrules」と「unit.mdc」を作成して欲しい」
  5. Cursorの画面の右のエクスプローラーパネルで、「ProjectCaesar」をクリックして開く
  6. パネル上部右側の「ファイルに+」アイコンをクリックしてファイルを作成する
  7. ファイル名に「.cursorrules」と入力し、開いたエディター画面にブラウザ版Geminiに”.cursorrules”として示された内容を記入し、Ctrl+Sを押して保存する
  8. パネル上部右側の「フォルダに+」アイコンをクリックして「.cursor」フォルダを作成する
  9. 作成した「.cursor」フォルダをクリックしてからパネル上部右側の「フォルダに+」アイコンをクリックして「rules」フォルダを作成する
  10. 作成した「.cursor」フォルダをクリックして「.cursor/rules」に入る
  11. パネル上部右側の「ファイルに+」アイコンをクリックして(.cursor/rules/以下に)ファイルを作成し「unit.mdc」とする
  12. 同様に開いたエディター画面にブラウザ版Geminiに”unit.mdc”として示された内容を記入し、Ctrl+Sを押して保存する

以下は生成AIに相談しながら、解析したい情報があるフォルダに対して「.mdcファイル」をどんどん作成していきましょう。

参考までに私がGeminiに相談して設置したファイル内容を置いておきます。

「.cursorrules」の内容を折りたたみます

※下記内容は、多くが生成AIの回答結果をもとに構成されており、誤りを含む場合があります。

# Project Caesar (EU5) Analysis Rules

## Core Principles
- 過去のパラドゲー(EU4, CK3, Vic3等)の知識を一切排除すること。
- 回答の根拠は、常にプロジェクト内のスクリプトファイルのみに求めること。
- ファイル間の連動性(Trigger -> Value -> Modifier)を重視して解析すること。

## Economic Analysis Guidelines
- 'Tax' や 'Income' を解析する際は、必ず 'Control' と 'Market Access' による補正を考慮すること。
- 人口(Population)は静的な数値ではなく、常に 'Social Classes' や 'Estates' との関連性を探ること。

## Formatting
- 重要な数式や変数名は `code_block` で明記すること。
- 参照したファイルパスを必ず記載すること。
「unit.mdc」の内容を折りたたみます

※下記内容は、多くが生成AIの回答結果をもとに構成されており、誤りを含む場合があります。

---
description: ユニットの維持コスト、人口消費、時代の変遷に関する軍事解析ルール
globs: [
  "game/in_game/common/unit_types/**",
  "game/in_game/common/unit_categories/**",
  "game/in_game/common/unit_abilities/**",
  "game/in_game/common/advances/**",
  "game/in_game/common/goods_demand/**",
  "game/in_game/common/prices/**"
]
alwaysApply: false
---
# Unit & Population Consumption Rule (Project Caesar)

このフォルダを解析する際は、以下の点に集中せよ:

## 1. 出力フォーマットの厳格化(資料作成モード)
- 解析結果をテーブル形式で出す際、内部数値(crew_size等の係数)の列は作成せず、UI上の実数(100倍した値)のみを記載すること。
- 列タイトルに「UI表示」や「100倍」といった説明を含めず、単に「人数」「コスト」とすること。
- そのままスクショやメモに貼れるよう、事実(データ)のみを構造化してクリーンに出力すること。

## 2. 時代の正確な特定と紐付け
- `Age 1`, `Age 2` といった内部フラグ表記は避け、必ず `common/technology/eras` を参照して実際の技術時代名(例: 伝統時代/Age of Traditions)を特定して記載すること。

## 3. ユニットの維持コストと供給
- ユニットタイプ(`unit_types/*.txt`)の維持コスト(`maintenance_cost`)を特定し、金(Gold)だけでなく、食料(Food)や物資(Goods)の消費量を明確にすること。
- 維持費が国家の税収や階級(Estates)の満足度に与える影響を追跡すること。

## 4. 人口(Pop)直結型の雇用・徴兵システム
- ユニットが消費する人口層(Pop Types)と、その雇用システム(`employment_systems/*.txt`)の関連性を探ること。
- 徴兵方法(`recruitment_method/*.txt`)が、どの階級(Estates)から人口を直接引き出すかを特定すること。
- **100倍原則の適用**: スクリプト上の「人数」に関する係数は、回答時に自動的に100倍して「実人数」として出力すること。

## 5. 時代の変遷と継承
- 技術時代(Tech Era)によってユニットがどう置換されるかを確認すること。
- ユニットの経験値や軍事伝統が、次世代のユニットにどう継承されるかのロジックを探ること。

## 6. 陸海軍の統合解析
- 陸軍だけでなく海軍(naval_units)も対象とし、海軍ユニットの維持が「市場アクセス(Market Access)」や造船資材(Goods)にどう依存しているかを注視すること。さ

※参照フォルダなども書かれていることがわかります。

 

 

 

 

 

 

コメント

タイトルとURLをコピーしました