Thermal Expansion の Arboreal Extractor で期待した量の抽出ができない

Create: Arcane Engineering を触ってるが、Thermal Expansion の Arboreal Extractor で JEI に記載されているような量の抽出ができない。

原因を調べたところ Arboreal Extractor の実装上の問題で、追加レシピ次第では JEI に記載されている情報とズレが出ることがわかった。

現象

Arboreal Extractor の JEI で表示されるレシピをみると次のようになっている:

Spruce の Arboreal Extractor のレシピ

Spruce Log, Spruce Leaves でオペレーションごとに 50mB の Resin が抽出されると記載されているが、実際には 25mB しか抽出されない。

原因

Arboreal Extractor の実装の影響で Create: Arcane Engineering が追加している別の Spruce レシピを引いてしまっている。 Arboreal Extractor の実装が悪いのか Create: Arcane Engineering の設定が悪いのかは判断が難しいところ。

幹で抽出物・量が決まるというのは割と違和感は無いので Arboreal Extractor の実装はこれでいいかもしれない。

Arboreal Extractor の実装

ここを見れば分かる通り、幹(trunk)だけを見て Fluid の導出をしている。葉(leaves)は少し上で稼働条件を満たしているかという確認にしか使っていない。

この実装により、幹に対する抽出物・量はあとから追加されるレシピによって上書きされてしまう。

Arboreal Extractor のレシピ

Arboreal Extractor でバンドルされている Spruce Tree に対するレシピは次のようになっている:

https://github.com/CoFH/ThermalCore/blob/b55443b053c0991a36fd36d3e192d8e825703f10/src/main/resources/data/thermal/recipes/devices/tree_extractor/tree_extractor_spruce.json#L7

{
  "type": "thermal:tree_extractor",
  "trunk": "minecraft:spruce_log",
  "leaves": "minecraft:spruce_leaves",
  "result": {
    "fluid": "thermal:resin",
    "amount": 50
  }
}

一方 Create: Arcane Engineering では BYG で追加される葉の色違い Spruce Tree に対するレシピを追加している。

https://github.com/CoolerGangster/Create-Arcane-Engineering/blob/27b9ac6feba82aa584e6cc8821089aebf09c978c/overrides/kubejs/server_scripts/treeExtractor.js#L314-L319

{
  trunk: 'minecraft:spruce_log',
  leaf: 'byg:yellow_spruce_leaves',
  sap: 'thermal:resin',
  rate: { living: 25, dead: 4 }
},

JEI のレシピはこれ:

BYG の色違い Spruce に対する Arboreal Extractor のレシピ

kubejs で追加されるのでこちらがあとに読み込まれ Spruce Log に対する抽出量 25mB が上書きされてしまう。

これはあくまで Thermal Expansion が内部で持っている対応付の上書きなので、JEI には反映されない。

回避策

オペレーションあたり 50 mB ほしいなら Fir 使う。ただしこちらにも罠があって、Fir にも Biomes O' Plenty で追加される Fir と Biome You Go で追加される Fir がある。

愚痴

BOP や BYG といった大量にブロックが追加される MOD を採用して一貫性のあるクラフト体験というのはもう無理なのではないかと思う。 自分で Modpack 作るときは Modpack としての一定の完成度を求めるなら手を付けないのが良さそう。

追記: 既存のレシピの倣う形で PR を送った。https://github.com/CoolerGangster/Create-Arcane-Engineering/pull/80 バランスのためにひょっとしたら既存レシピの 50mB を 25mB に変更したいって言われる可能性はあるが。

トライアングルストラテジーメモ

結構テキストあるので楽しく読んでる。エスフロストへ外遊し現在第5章までやったところ。キャラ強化の進捗から判断するに序盤佳境ってところかな?という判断で一度情報まとめる。

爆発

劇中テキストで爆発とういう単語が普通に使われている。黒色火薬(爆裂丸)出たてという文化レベルで爆発って現象は一般的ではないはず。

火魔法あたりにそれに準じる魔法があるのかもしれない。だとしたら爆裂丸の新規性は何?

それともそんな魔法は存在せず、採掘などで発生しやすい粉塵爆発あたりから割りと爆発は身近?

新鉱山で見つかった物

引っ張ってるけどどうせ岩塩。

公国は新鉱山を占領すればいいだけとも思うが・・・後述するそもそも一夜王国包囲をどうやったんだ問題が謎すぎるけど、たしかにそれができるくらい戦力仕込んでおけるなら妥当かも?

海はないけど3国より以前の歴史は?

この舞台での人類史はどうなってるんだろう。海の向こうから人類がきたような設定ではない?

「塩がもっとあれば保存食を用意できそうなれば教国の砂漠の更に先や大瀑布の先の開拓ができる」といった旨の話が出ているので話の展開次第では海にたどり着く?

とはいえ海からの塩の調達は気候に恵まれるか大量の燃料が必要だとは聞く。

塩鉄大戦におけるウォルホード家の立ち位置

公国と王国が手を結んで教国と対峙してるさなかに王国臣下筆頭が敵である教国と手を結ぶってどういう判断?裏切り者扱いされてもおかしくなさそう。とはいえ劇開始時みても相変わらず王国臣下筆頭扱いなのはなぜ?

当時はウォルホード領が王国配下でなく独立した国くらいでないと説明が想像できない。でもそこから劇開始時のような臣下筆頭として扱われるのはかなり厳しそうなので、この仮定はかなり薄い線だと思ってる。

エスフロストによる一夜で王都包囲どうやったの?

  • 包囲できるほどの伏兵を仕込んでた?
    • 無茶すぎるけどリアリティライン下げたならそれっぽい説明になる?
  • 川下りによる急襲?
    • 相当の船数になりそうだしそれなら先に水門戦では?一晩とはいかなそう
  • 陸地からの進行はもっと無理そう

ローゼル

ローゼル族が迫害される理由がある?象徴的な身体的特徴を持つ少数民族が迫害されやすいとはいえなにかきっかけは?

塩湖に住んでいたと書かれているだけで教国より先住民ってわけではない?教国との歴史は?

製塩技術は教国で秘匿されてるって話だしローゼル族はそれは知らなそう?知ってたら公国王国で厚遇されそう。

今マイクラMODのマネタイズで起きている問題

MinecraftのModをホスティングしているサービスCurseForgeがまた炎上しているけどちょっと複雑そうだし面白そうなのでメモ。

背景

CurseForgeはModのホスティングだけではなくMod/Modpackの管理ソフトウェアも配布している。このソフトウェア上の広告で収入を得ている。とは言え、管理ソフトとして機能が足りなかったり、余計なソフトウェア(OverWolf)が付いてくるので、サードパーティ管理ソフトも人気がある。

またCurseForgeはMod製作者へModダウンロード数に応じてこの先述の収益の一部を還元している。今回はこのあたりが話の発端となっている。

問題のきっかけ

CurseForgeは新しいAPIを公開と同時にModの配布設定としてサードパーティー管理ソフトからのダウンロードを拒否できる設定ができるようになった。

https://github.com/PolyMC/PolyMC/issues/593#issuecomment-1130564447

Allow the distribution of this project outside the CurseForge-Overwolf ecosystem.

Note: download outside the CurseForge-Overwolf ecosystem do not count toward the reward program.

「公式クライアント以外からのダウンロードを許可する?そのダウンロードは報奨金の対象にならんけど」というチェックボックスができた。これをチェックしない限りサードパーティー管理ソフトからのダウンロードができないようになった。

この管理画面を見たことがないが、デフォルトオンのオプトアウト方式らしくMod製作者が明示的に操作しない限りはサードパーティー管理ソフトからのダウンロードはできるはずである。が、数十数百のModで構成されるModpackは高確率でサードパーティークライアントを拒否するModを含んでいるため、サードパーティー管理ソフトではModpackで遊べなくなってしまっている。

サードパーティークライアントの反応

APIへの対応に合わせてこのダウンロード制限により、サードパーティー管理ソフトの対応は様々だった。

MultiMC

https://github.com/MultiMC/Launcher/commit/0a827ba70e6ef20187f8507a536d54a8441020dc

This has been requested by Slowpoke, on behalf of both FTB and OverWolf.

Import from locally installed packs from the official clients will be the replacement, but for now, you will have to do that manually.

It was nice while it lasted.

CurseForgeの新API対応にいち早く対応したがサードパーティー制限の問題をうけてかCurseForge対応自体を消してしまった。

ここに出てくるSlowpokeとは多分FTB創始者?のSlowpoke101氏かな?

https://twitter.com/Slowpoke101

PolyMC

APIに対応したあとサードパーティー制限問題への対応は2つ

参考: https://github.com/PolyMC/PolyMC/issues/593

GDLauncher

APIに対応したあとこのサードパーティー制限に関しては特に対応してなさそう?

https://github.com/gorilla-devs/GDLauncher/issues/1342

ちょっとエラーがわかりにくい。

面白いなと思った点

twitterの公式クライアントは広告収入などのためにサードパーティークライアントへの制限を強いてる印象があるけれどこれはやはりサービスホストへの批判がたくさん起きている。

CurseForgeの件では意図してるかわからないが、「Mod製作者」と「プレイヤー」という同じサービスユーザーの分断をし、槍玉に上がりがちなホスティングサービスへの批判をいくらか逸らす役目をしている。

実際、現状でサードパーティー管理ソフトを使って困っているプレイヤーが取れる行動としては、1) 諦めてCurseForge公式管理ソフトをつかう 2) Mod製作者にサードパーティーダウンロードを許可するようお願いして回る、くらいかな?

Mod製作者の中にはこれらの動きを受けてCurseForge以外のプラットフォームにも配布を始めているケースがある。

https://www.reddit.com/r/feedthebeast/comments/utnrlu/cofh_mods_are_available_on_modrinth/

しかしCurseForgeと収益モデルを変えていかない限りは、今回の問題再生産をしているだけなようにも思える。

Forbidden and Arcanus に Hephaestus Forge が来たけどガイドがない

tl;dr Forbidden and Arcanus 16.2.0 で Hephaestus Forge が来た。ソースコード読んで試してみたけど動かなかった。

マルチブロックで動作するみたいだけどまだガイドは用意してないみたい:

https://www.curseforge.com/minecraft/mc-mods/forbidden-arcanus/files/3528782

(instructions comming shortly).

仕方ないのでソースコード読んで再現してみた。

Hephaestus Forge 作成

まずマルチブロックを想定通りに配置する。使うのは台座に:

  • Arcane Chiseled Polished Darkstone x9
  • Chiseled Arcane Polished Darkstone x4
  • Polished Darkstone x48

台座中央に Smithing Table x1

ソースコードに書かれたとおりに配置をして最後に Mundabitur Dust を手に持って Smithing Table に向かって Shift + Right Click で色違い雷が落ちて Smithing Table が Hephaestus Forge に変わる。

スクリーンショット撮った

f:id:daftbeats:20211127180615p:plain
Hephaestus Forge 台座
f:id:daftbeats:20211127180713p:plain
Hephaestus Forge マルチブロック条件が揃った状態
f:id:daftbeats:20211127180719p:plain
Hephaestus Forge のために Mundabitur Dust 使った直後

儀式の準備

Hephaestus Forge のマルチブロックを揃えて作成したただけでは Hephaestus Forge を使ったレシピが実行できない。ここから台座(Darkstone Pedestal)が必要になる。

f:id:daftbeats:20211127190431p:plain
Darkstone Pedestal を Arcane Chiseled Polished Darkstone に載せる

JEI の通り Essence を集めて素材を台座に置いて右クリックしてみたが儀式は始まらなかった。

f:id:daftbeats:20211127190708p:plain
Mending 本の素材を置いたがダメだった

ということでダメでした。現状最高レベルのエンチャント本が作れるレシピしかないので大体魔法系の Modpack なら Eidolon の Soul Enchanter のほうが便利で頑張る動機づけあんまりないのでここまで。

Astral Sorcery の Rock Crystal/Celestial Crystal のプロパティについてメモ

Rock Crystal と Celestial Crystal についているプロパティがよくわからんのでソースコード読んだ。ロアフレンドリーに拘るMODと相性悪いなって気持ちになってきてる。ロアフレンドリーというよりそのMODが敷いてるロアに準じているMODというのかな?

ソースコードは割と練られて作られていて、各プロパティは property ディレクトリを見ればわかるようになっている。

tl;dr 用途別にみるべきプロパティ

  • Collector Crystal の素材に使うなら
    • Purity >> Focus: 星座 > Shape > Size == Collection Rate の順でスターライト収集性能に影響力がある
  • Ritual Pedestal に置くなら
    • 効果は Purity > Focus: 星座 > Ritual Effect > Shape
    • 範囲は Purity > Focus: 星座 >> Ritual Range
  • Crystal Lens の素材に使うなら
    • Purity がスターライト伝送性能に強く影響する
    • 1度のクラフトで 1 + (Size * 2) 個作られるので Liquid Starlight に付けて Size III にしてからクラフトするとよい
  • ツールの素材に使うなら
    • Tool Durability > Size の順に耐久性能に影響がある。
    • ツールとしての性能はそのまま Tool Efficiency だけ見ればよい

「Focus: 星座」は同名の星座に Attune しないと無意味なプロパティになる。なので2つ Focus がついてしまっていたら Cutting Tool で割った方がよさそう。

Collection Rate

これは名前そのままで、Collector Crystal として使った時のスターライト収集性能になる。ただし Purity のほうが Collector Crystal としての性能の影響が強い・・・

最大値は III

該当ソースコード: https://github.com/HellFirePvP/AstralSorcery/blob/1.16-indev/src/main/java/hellfirepvp/astralsorcery/common/crystal/property/PropertyCollectionRate.java

Focus: 星座名

Focus で指定された星座に Attune して、それを:

  • Collector Crystal の素材に使うと、スターライト収集性能になる。
  • Ritual Pedestal に置くと、各種儀式の性能にかかわってくる。多分 Ritual Effect/Range 両方?

最大値は II

該当ソースコード: https://github.com/HellFirePvP/AstralSorcery/blob/1.16-indev/src/main/java/hellfirepvp/astralsorcery/common/crystal/property/PropertyConstellation.java

Purity

いろいろある。

  • Crystal Lens に使った時のスターライト伝送性能
  • Collector Crystal に使った時のスターライト収集性能
  • Ritual Pedestal に置いたときの Ritual Effect/Range

いずれも同名の専用プロパティよりも影響力が高いので、とても強力なプロパティであることがわかる。ただ、Crystal Lens の伝送性能を向上させるには Purity しかないのでメインの用途はこっちかな?とはいえ Collector Crystal は近いとお互い干渉してしまうので数を並べればよいってわけでもないので難しい。

ツールの素材に使っても関係ないみたい。

最大値は II.

該当ソースコード: https://github.com/HellFirePvP/AstralSorcery/blob/1.16-indev/src/main/java/hellfirepvp/astralsorcery/common/crystal/property/PropertyPurity.java

Ritual Effect

名前そのまま。最大値は III.

該当ソースコード: https://github.com/HellFirePvP/AstralSorcery/blob/1.16-indev/src/main/java/hellfirepvp/astralsorcery/common/crystal/property/PropertyRitualEffect.java

Ritual Range

名前そのまま。最大値は II.

該当ソースコード: https://github.com/HellFirePvP/AstralSorcery/blob/1.16-indev/src/main/java/hellfirepvp/astralsorcery/common/crystal/property/PropertyRitualRange.java

Shape

いろいろある。

  • ツールの素材に使った時の Effectiveness
  • Collector Crystal に使った時のスターライト収集性能
  • Ritual Pedestal に置いた時の Ritual Effect (Range は関係ないっぽい?)
  • 各色 Lens に使った時の性能

最大値は III.

該当ソースコード: https://github.com/HellFirePvP/AstralSorcery/blob/1.16-indev/src/main/java/hellfirepvp/astralsorcery/common/crystal/property/PropertyShape.java

Size

影響項目は多くない。

  • Collector Crystal に使った時のスターライト収集性能
  • ツールの素材に使った時の Durability

最大値は III.

ただ、Size は簡単に増やせるので、Cutting Tool で割って大事なプロパティ消失する可能性を下げるためにもサイズを大きくしてから割るというのはありかもしれない。

該当ソースコード: https://github.com/HellFirePvP/AstralSorcery/blob/1.16-indev/src/main/java/hellfirepvp/astralsorcery/common/crystal/property/PropertySize.java

追記: Property で表現されている以外に Crystal Lens の1度のクラフトで 1 + (Size * 2) 個作られるようなので、Purity が高いなど貴重なクリスタルを使うなら Size を大きくしてからクラフトするとお得っぽい。

Tool Durability

名前そのまま。

最大値は III.

該当ソースコード: https://github.com/HellFirePvP/AstralSorcery/blob/1.16-indev/src/main/java/hellfirepvp/astralsorcery/common/crystal/property/PropertyToolDurability.java

Tool Efficiency

名前そのまま。

最大値は III.

該当ソースコード: https://github.com/HellFirePvP/AstralSorcery/blob/1.16-indev/src/main/java/hellfirepvp/astralsorcery/common/crystal/property/PropertyToolEfficiency.java

おわり

ついでに Ritual の自動化についてもソースコード読んで紐解いたけどやっぱり自動化できないように意図的に作られてるっぽい。拘り感じる・・・

All of Fabric 3 (2.6.1)で追加されてるエンチャント

All of Fabric 3 のバージョン 2.6.1 で司書ガチャしてたらよくわからないエンチャントが出てきたのでできる限り追ってみた。エンチャントの詳細についてはリンク先に譲る。Forge だとエンチャントの記述とかどの MOD から追加されたものなのかとか分かるような方法あったが Fabric にはないのだろうか。結局 GitHub"net.minecraft.enchantment" AND "エンチャント名" で検索して調査した。ほかに良い方法あるんだろうか。

Gate of Babylon

Go Fish

Charm

どの MOD で追加されたかわからないエンチャント

  • Telekinesis: Charm の Acquisition のモブドロップ版といったところっぽいなんでレベルがIIまであるのかわからない。

Minecraft Tetra MOD

最近 Minecolonies Official Modpack で遊んでるんだけど、これに導入されてる Tetra という MOD が公式ページにも碌な説明がなく、プレイヤーの情報源も古い英語の動画しかなくてどうやら今と状況が違っていてあんまり参考にならない。

アチーブメント見ろとのことでロアフレンドリーに拘ってるのだろうけど、正直無理があると思う。

ソースコード読んだり断片的な公式ページのコメントから分かったことを書いていく。

今回書いているバージョンはマイクラ 1.16.4, Tetra 3.5.3

Tetra の概要

つるはし、斧、シャベルなどの道具類や剣や弓の武器をパーツごとに換装したりできる。既存のツールだけでなく、構成次第ではつるはし+斧+シャベルといった機能が1つのツールにまとまった「Mattock」というツールも作れる。高位の素材でエンチャント盛らないと遅くて使いずらいが。防具は対応していない。

換装する素材は Tier 分けされている。換装するためのツールであるハンマーのより高位の tier のハンマーを作ることで装備のパーツをより高位の素材で換装できる。

一定以上の Tier にいくには探索が必要になる。。。がネザライト素材を扱うのでもブラックストーンハンマーで良いのでほぼバニラだと探索はあまり用事がない。

いずれもエンドゲームではOP気味な印象があった。特に弓。

ボウガンはWIPらしい。

ウォークスルー

各 tier 解放するには:

  1. Wood Hammer 作る
  2. 作業台を wood hammer で右クリック
  3. Iron Hammer を作る
    • ハンマーを強化するのにハンマーが必要なので基本的に同 tier のハンマーを2つ作る必要がある
    • おすすめはダブルハンマーヘッド1つと、ハンマー+Clawのダブルヘッドツール1つ。後者は Ancient Ruin で役にたつ
  4. Black Stone Hammer を作る
  5. Ancient Ruin で Forge Hammer を見つけセットアップする
  6. Obsidian Hammer を作る
  7. Forge Hammer に2つ目の Combustion Chamber を付ける
  8. Netherite Hammer を作る

Integrity

パーツを盛るときに消費するパラメータ。統合性?

頑丈な柄や Binding で強化できるがその分重くなって Speed が落ちる。

ただし下記の Horning で追加効果を付与していっても Integrity は消費するので、エンドゲームを意識するなら Speed 遅くなってでも高 Integrity にした方が最終的な Speed は上になる。よくできてる。

エンチャントの仕組み

換装した装備は既存の金床を使ったエンチャントはできなくなる。代わりに換装パーツごとにエンチャントができる。

パーツには Stability というパラメータがありエンチャントするたびに Stability が減少する。Stability が負値になってもエンチャントできるが、ランダムで Destabilized 状態の(要するに弱体化した)エンチャントに切り替わってしまったりデバフエンチャントがつく。

Cleanse を選ぶと経験値を使ってこれらの Destabilized エンチャントやデバフエンチャントを剥がせる。Stability の負値が大きいとたくさんのマイナスエンチャントがつくので Cleanse のコストが増加する。

Horning

Horning に該当する日本語の概念がわからないけど要するに装備を使用するごとにたまる経験値みたいなもの。一定値に達するとエンチャントみたいな効果アップを選べるようになる。

Ancient Ruins/Forge Hammer

ブラックストーンハンマーより上の Tier である黒曜石ハンマー以降を作るには、Forge Hammer を見つけてセットアップをして Forge Hammer の下でハンマーを作る必要がある。

Forge Hammer は snow や cold といった属性のバイオームの Y 7 から 22 に生成される Ancient Ruin に設置されている可能性がある。ソース

Forge Hammer には水平方向四面にアタッチメントスロットが2つ、燃料スロット2つありこれらのセットアップが必要になる。

  • Forge Hammer 下に Workbench を置く
    • 最初から設置されている可能性がある。この場合自作のものと違い金床に近い見た目のものが設置されている。
  • アタッチメントスロットにハンマー tier を増加させる Combustion Chamber を付ける
    • 1つ当たり +1 なのでネザライトハンマーを作るには2つ必要そう(要確認)
  • 燃料スロットに充填済みの Thermal Cell を2つ付ける
    • 最初から付いてるケースもある

Combustion Chamber は同様に Ancient Ruins に置かれる Forged Container から取れる。

Thermal Cell も同様に Forged Container から取れるしそのままつけてもいいが、Ancient Ruin に生成される可能性のある Transfer Unit でエネルギーを充填しておくと実績解除もできるし長く使えるので良さそう。ただし Transfer Unit の動力源である Seeping Bedrock が死んでるケースもあり、この Transfer Unit ではエネルギー充填ができない。

Transfer Unit には3段階のスイッチがついていてそれぞれ意味がある(実装)けど Cell の充電は真ん中。ほかは普通に使う分には用事なさそう。

Ancient Ruin には Forged Vent や Forged Crate, Forged Container などハンマーやクローでアンロックしたり壊したりできるブロックが生成されるがいずれも幸運エンチャントがついていると拾得物が増えたりスクラップになる確率が減るので付けた方がよさそう。

また Forged Crate は6面各面に3つのインタラクションできるポイントがあり、クロスヘアを合わせると ハンマー3 が2か所、クロー1 が1か所表示される。ハンマーとクローで手に入るルートテーブルが違うので必要に応じてたたくポイントを選ぶ。

Ancient Ruin の大部分のブロックは、シルクタッチを付けたネザライトハンマーで破壊すれば持ち帰れる。Forge Hammer も Transfer Unit も持ち帰れる。ただエネルギー源の Seeping Bedrock は持ち帰れないので Transfer Unit は現状あんまり用事ないかも。レッドストーン信号によるエネルギーの送受信機能を見るとなにかエコシステム的な構想があるのかもしれない。