Top 8
Outer WildsストーリーMODを色々やってみた
June 18, 2023, 10:04 a.m.表面符号と戯れる【量子コンピューター Advent Calendar 2023 23 日目】
Dec. 23, 2023, 3:28 a.m.位数発見アルゴリズム ~Quantum Zooやっていく【特別編】~
Jan. 27, 2023, 2:50 p.m.ストーリー追加 Mod: The Outsider やっていく日記【Outer Wilds】
Feb. 19, 2023, 6:33 a.m.意識が量子効果で生じることを示す実験結果についてちょっと調べただけのメモ
April 21, 2022, 3:09 p.m.ストーリー追加 MOD: Astral Codec やっていく日記【Outer Wilds】
Feb. 25, 2024, 8:47 a.m.Outer Wilds の量子は計算能力が(ある程度)すごいのではという話
Jan. 15, 2022, 8:35 a.m.MacでAge of Empires 2 DE (AoE2DE)をCrossOverで動かす
May 31, 2021, 11:52 a.m.オリジナルのランダムマップを作る【AoE2DE】
Oct. 14, 2022, 3:10 p.m. edited Oct. 28, 2022, 12:56 p.m.AoE2DE のアラビアのようなプレイするたびに変化するランダムマップは自分で作ることができる。
最強の情報源は Definitive Random Map Scripting Guide に貼ってある Google Docs の Definitive Random Map Scripting Guide。英語だけれど至れり尽くせりの内容。これを読みつつ作ればほとんど問題ない。特に、この中の項目である Syntax Skeleton のとおりにランダムマップは作られている。
ここで、いきなり自分で一からオリジナルのマップを作るのは難しいと思うので、まずはアラビアなど既存のマップをコピーして改造するのが良いだろう。まず、アラビアなどのファイルは C:\Program Files (x86)\Steam\steamapps\common\AoE2DE\resources\_common\drs\gamedata_x2\Arabia.rms
に存在する。これを C:\Program Files (x86)\Steam\steamapps\common\AoE2DE\resources\_common\random-map-scripts\
内にコピーする。すると、スカーミッシュやマルチでホストした際に出てくるマップを選択する画面にて、カスタムにすることで選べるようになる。
大事なことなのでもう一度。 random-map-scripts
フォルダへコピーすること。 gamedata_x2
フォルダ内のファイルをそのまま書き換えないこと!
さて、かんたんな例から挙げていくと、例えば町の人の HP を 100 にするのは <PLAYER_SETUP>
の下あたりに
effect_amount SET_ATTRIBUTE VILLAGER_CLASS ATTR_HITPOINTS 100
とすれば良い。また、開始食料を 1000 加えるなら
effect_amount MOD_RESOURCE AMOUNT_STARTING_FOOD ATTR_ADD 1000
とすれば良いことになる。この辺の属性に使える定数は Attribute Constants の項目に載っている。また、攻撃・防御まわりは少し複雑で What are the armor classes? Needed to calculate ATTR_ATTACK and ATTR_ARMOR を見ると良さそう(下に補足)。
さて、最も需要があるであろうオブジェクトの配置まわりだが、基本的には create_object
を使えば良い。が、プレイヤーからどのくらいの距離感で配置するかはなかなか難しいので、 create_object
の項目を見つつパラメータをいじって試行錯誤すると良いだろう。指定できるパラメータは Syntax Skeleton の create_object
を見るとわかりやすい。
また、既存のマップを流用する際に注意すべき点として、例えば Arena.rms
(アリーナ) では #define GNR_ARENAWALL
のように定数を定義し、その後 #include_drs GeneratingObjects.inc
により C:\Program Files (x86)\Steam\steamapps\common\AoE2DE\resources\_common\drs\gamedata_x2\GeneratingObjects.inc
にて GNR_ARENAWALL
が定義されているなら壁を create_object
するというような処理となっている。ゆえに、そういう生成を除外したいならそのような行をコメントアウト(/* */
)したり削除したりする必要がある。
オブジェクト関連で重要なこととして、それぞれのオブジェクトをどう指定するかだが、いくつかのオブジェクトはクラスでまとめられている。たとえば壁というと柵や石壁など色々あるが、それらをまとめて WALL_CLASS
で扱える。これらは Class Constants の項目にまとめられている。ユニット個別の定数については C:\Program Files (x86)\Steam\steamapps\common\AoE2DE\resources\_common\drs\gamedata_x2\random_map.def
に載っている。そこに載っていないユニットについては、 C:\Program Files (x86)\Steam\steamapps\common\AoE2DE\Tools_Builds\AdvancedGenieEditor3.exe
を開いて、そこで Age of Empires II: Definitive Edition を選び Open することで見つけられる(使い方難しいけど)
攻撃・防御の補足
攻撃・防御はそれぞれたった 1 つの値ですべてのクラス(属性)について設定される。その方法は、対象のクラスを \(\mathit{class}\) 、設定したい値を \(\mathit{value}\) とすると、 effect_amount
にて設定する値は
$$256\times\mathit{class}+\mathit{value}$$
となる。それぞれのクラスに対応する値は次のようになる(Reddit の投稿から引用)。
\(\mathit{class}\) | 対応する値 |
---|---|
Unused | 0 |
Infantry | 1 |
Turtle Ships | 2 |
Base Pierce | 3 |
Base Melee | 4 |
War Elephants | 5 |
Unused | 6 |
Unused | 7 |
Cavalry | 8 |
Unused | 9 |
Unused | 10 |
All Buildings (except Port) | 11 |
Unused | 12 |
Stone Defense | 13 |
FE Predator Animals | 14 |
Archers | 15 |
Ships & Camels & Saboteurs | 16 |
Rams | 17 |
Trees | 18 |
Unique Units (except Turtle Ships) | 19 |
Siege Weapons | 20 |
Standard Buildings | 21 |
Walls & Gates | 22 |
FE Gunpowder Units | 23 |
Boars | 24 |
Monks | 25 |
Castle | 26 |
Spearman | 27 |
Cavalry Archers | 28 |
Eagle Warriors | 29 |
HD Camels | 30 |
したがって、例えば、町の人の近接攻撃を 30 にしたいなら
$$256\times 4+30=1054$$
より、
effect_amount SET_ATTRIBUTE VILLAGER_CLASS ATTR_ATTACK 1054
とすれば良い。
Top 8
Outer WildsストーリーMODを色々やってみた
June 18, 2023, 10:04 a.m.表面符号と戯れる【量子コンピューター Advent Calendar 2023 23 日目】
Dec. 23, 2023, 3:28 a.m.位数発見アルゴリズム ~Quantum Zooやっていく【特別編】~
Jan. 27, 2023, 2:50 p.m.ストーリー追加 Mod: The Outsider やっていく日記【Outer Wilds】
Feb. 19, 2023, 6:33 a.m.意識が量子効果で生じることを示す実験結果についてちょっと調べただけのメモ
April 21, 2022, 3:09 p.m.ストーリー追加 MOD: Astral Codec やっていく日記【Outer Wilds】
Feb. 25, 2024, 8:47 a.m.Outer Wilds の量子は計算能力が(ある程度)すごいのではという話
Jan. 15, 2022, 8:35 a.m.MacでAge of Empires 2 DE (AoE2DE)をCrossOverで動かす
May 31, 2021, 11:52 a.m.Tags
- #Python (26)
- #量子力学 (25)
- #量子情報 (23)
- #Unity (11)
- #Outer Wilds (11)
- #数学 (9)
- #Mac (9)
- #AoE2 (8)
- #Linux (7)
- #Quantum Zoo (6)
- #意識 (5)
- #シミュレーション (5)
- #NumPy (5)
- #Bash (5)
- #相対論 (4)
- #Docker (4)
- #Android (4)
- #Qiskit (4)
- #Rust (3)
- #PyO3 (3)
- #GitHub (3)
- #Django (2)
- #情報理論 (2)
- #LaTeX (2)
- #AR (2)
- #Git (2)
- #iOS (2)
- #C++ (2)
- #正規表現 (2)
- #論文 (2)
- #電磁気学 (1)
- #Google Drive (1)
- #Overleaf (1)
- #Let's Encrypt (1)
- #ポケモン (1)
- #AdMob (1)
- #Autoya (1)
- #docopt (1)
- #SymPy (1)
- #AWS (1)
- #Twitter (1)
- #URP (1)
- #iMovie (1)
- #PyTorch (1)
- #C# (1)
- #Vim (1)