DistantHorizons Standalone(DH)について
・遠いくなるほどチャンクの描画を簡略化するLevel of Detail(LoD)で軽量な長距離描画を実現する、DistantHorizonsの1.7.10版。
・本来Angelicaに統合される予定だったが、結局独立したので「Standalone」になっている。
・使用しているDistantHorizonsは最新のオリジナル版。互換レイヤー等で動いているらしい。
・しかし、Shader互換性はAngelicaのShader対応の関係で低く、最新のComplementary(EuphoriaPatches)とBSLぐらいしかまともに使えない。github.com
経緯
DistantHorizons Standaloneは前からあったが、Shader非対応だった。最近Shaderに対応したが、今度はKaizPatchが最新のAngelicaに非対応という問題が発生。双方の開発者が連絡を取り、一応クラッシュするのは治ったが、今は描画バグの解決中。
注意
・DistantHorizons+ShaderはPCに結構な負荷がかかる。この記事では高スぺPC向けに解説していく。
・まだ更新中で不安定なため、今回の構成を常用するのは非推奨。普段の構成のコピーを作って試すのが良い。
・ワールドの保存が遅くなるが、仕様。
環境の準備
Angelica、KaizPatchX双方の対応で、状況はかなり改善したが、まだバグが残っているかもしれない。
バグを見つけたら、日本語が使えるKaizPatchXの方にissueを出すのがやりやすいと思う。
ー必要なものー
今回は公式ランチャー(Windows11)向けに説明する。
ーmodの変更ー
一部のmodは、Angelicaに対応したGTNH版に変更しないと、クラッシュ等が発生する可能性がある。既にGTNH版にしている場合は、最新版を使っているか確認する。
ProjectRedの前提modをGTNH版に置き換える - 渡海工場事務所
ー構成(クライアント)ー
・天候が変わるのを止めたいならEt Futurum Requiemを導入する。
https://madoha-4862.hatenablog.jp/entry/2024/12/12/181500#%E3%83%BCEt-Futurum-Requiem%E3%83%BC
- Angelica(2.1.12以降)
- CrossTie
- DistantHorizons Standalone
- GTNHLib
- HodgePodge
- KaizPatchX(1.10.0-beta1以降)
- Lwjgl3ify
- UniMixins
ー構成(サーバー)ー
・鯖側のクラッシュは修正、リリース済み。
・DHを鯖に入れるとLoDチャンク生成を鯖側でやるようになる。
・Lwjgl3ifyの鯖への導入方法⇩
- DistantHorizons Standalone
- GTNHLib
- HodgePodge
- src1.7.10_20200822+KaizPatchX-SNAPSHOT.jar(GitHubアカウント必須)
- Lwjgl3ify
- UniMixins
ーShaderー
ーConfig変更ー
CrossTie.cfgで、fixAngelicaRailCulling=true
⇒レールが消えるバグの修正。
hodgepodge.cfgで、addSimulationDistance_WIP=true
⇒Fastcraft無しでも重いワールドで運転できるようにする。架線が消える不具合が発生する場合はこちらの方法を用いる。再現ができなかったので無し。
(1.7.10)ローカルで鯖を建てて疑似シングルプレイ - 渡海工場事務所
RTM.cfgで、"ModelPack load speed"=2(デフォルト)
⇒クラッシュの防止。
ー競合するmodー
・OptiFine、Fastcraft、BetterFPSはAngelicaが起動時に無効化する。
・SmoothFont:Angelicaに同じ機能がある。
・Liteloader:LiteloaderLoaderを入れてみる。それでも無理なら諦める。
⇒VoxelMapの代替:JourneyMap
Xaero's Mapもクラッシュが修正されて使えるようになった。
Xaero's Minimap - Minecraft Mod
Xaero's World Map - Minecraft Mod
起動する
・起動構成では今まで通りJava8を指定する。
・起動すると設定ウィンドウが出て来る。
・「Add」でインストールしたJava25の「javaw.exe」を指定する。
・C:\Program Files\Eclipse Adoptium\(Java25のフォルダ)\bin\javaw.exe
・「Garbage collector」を、DHが推奨する「GenerationalZGC」にする。
・「Custom options」に-XX:+UseCompactObjectHeadersを追加すると良いとされている。
・「Max memory」でメモリを割り当てる。ZGCを使うので、多めに割り当てた方が良い。
・「Run」で起動する。

・起動するとログのコンソールが出て来る。クラッシュログのことを考えると、ゲーム終了まで閉じない方が良いかも。

・今回の方法だと、ログ周りが複雑になる。
・ここまでで上手くいかない場合は、PrismLauncherでの方法もやってみる。
ー起動時の不具合ー
・Lwjgl3ifyの不具合の一つとして、
java.lang.NullPointerException: Cannot invoke "java.lang.Comparable.compareTo(Object)" because "c1" is null
がある。要するに確率的なクラッシュなので、無視して再チャレンジ。
Angelica(Embeddium)の設定
・SodiumとIrisを使ったことがあるなら大体分かると思う。ただし翻訳がまともにされてないので、そこは頑張って。
・Alt+F3でクライアントと内部鯖の負荷の程度が見れる。鯖側の表示はシングルプレイのみ。

Angelica(Iris)とShaderについて
・「キー設定」で「Shaderpack Selection Screen」を割り当てると便利。

・設定変更したら、「Apply」を押して反映。
・Shaderの重さの目安:Complementary > SEUSRenewed ≧ BSL。
・Complementaryを使う場合は、EuphoriaPatchs有りの方だと、設定が翻訳されているのでおすすめ。
・「EuphoriaPatches設定」⇒「人気の設定」⇒「季節:冬」にすると、全体に程よく雪が積もって綺麗。
・「その他」⇒「雪景色:ON」だと、ブロックのみ完全に雪に覆われる。

・IrisにはOptiFineにあった描画解像度の変更機能が無いが、最近のShaderは元から解像度が高いのであまり必要ないと言える。
・Shader側でUltra設定にすれとさらに綺麗になっている気がする。ただし激重。
DHの設定
・視野の隣のボタンから。


「Enable Rendering」:LoDチャンク描画をON/OFF
「LOD Chunk Render Radius」:DHの描画距離(デフォルト:256、ビデオ設定の描画距離とは独立している)
「Quality Preset」:LoDチャンクの品質(Minimum~Extreme)
「CPU Load」:DHに使うCPUのスレッド数(Minimal Impact~I Paid For The Whole CPU)
「Enable Distant Generation」:LoDチャンク生成のON/OFF
「Enable Server Generation」:LoDチャンクをDHが入っている鯖からダウンロードするかのON/OFF
「Show Generation Progress」:LoDチャンク生成の進捗をゲーム画面に表示(これをONにしなくてもF3画面には表示される)
「Enable Cloud Rendering」:DHの雲の描画のON/OFF
ー通常の描画距離との相性、RTMオブジェクトについてー
・RTMのオブジェクトの大半はエンティティか、タイルエンティティで、これがDHの簡略化と相性が悪い。
・つまり、ビデオ設定の描画距離=RTMのオブジェクトが正常に描画される距離。
・撮影の際、ビデオ設定の描画距離はなるべく長い方が良い。
・特に前面展望では、ビデオ設定の描画距離が長くないと見た目が残念になる。
・画像ではビデオ設定の描画距離が8、DHの描画距離が32。

描画バグ等の不具合について
・ShaderがOFFの時に車体が透ける。原因不明。台車はなぜか大丈夫。
・ShaderがONだとなぜか治る。浮動小数点の精度の問題。Angelica側の修正で治った。
・車体の影が無いのはKaizPatchX側で修正済み。

・黒レールバグが復活。原因不明。ShaderがONだと多少ごまかせるかも。

・Shaderによっては半透明がおかしい。

・Angelica 2.1.14からSEUSRenewedが再び動くようになった。
