Optifineが無くてもMod「CIT Resewn」でCustom Item Textures (CIT)のリソースパックを使う

「CIT Resewn」でOptifineのCITを代替できる

元来MCPatcherというModの機能だったらしいCustom Item Textures (以下CIT)は、今はOptifineに統合されてOptifineが入っていれば使える便利な機能になっている。

一方、現在のOptifineは「軽量化ModではなくただのShader Mod」との声もありそれ信じてOptifineと決別して軽量化Mod「Sodium」ShaderMod「IrisShaders」に移行しようとしたところ、Sodiumの環境ではCITが使えずCIT前提のもふくらふとのリソースパックが使えない問題が出てきた。

Optifine不要で、かつFabric環境で動作する代替Modがないか調べてみるとやはり世界には同じこと考えている天才がいてCIT Resewnという1.17以降で使えるFabric Modが公開されているらしい。ModなのでModsフォルダーに入れるだけで後は勝手に動いてくれる、はずなのだが・・・

Optifineよりも適用がシビアだった

以下はもふくらふとのサーバーリソースパックをMod「CIT Resewn」に対応させた備忘録になる。Optifineでは読み込んでくれるCITテクスチャがCIT Resewnで読み込んでくれない時には参考になるかもしれない。

試しに、今までOptifineのCIT前提で使ってきたもふくらふとサーバーリソースパックを読み込ませると一部のテクスチャしか読み込んでくれない。

こういう時のためCIT ResewnにはMinecraftのプロファイルディレクトリのlogテキストファイルにどのテクスチャが何が原因でロードに失敗しているか書き出してくれる機能がある。log.txtを見てみた結果、

  • フォルダ・ファイル名に括弧()を使っているのが原因で失敗
  • フォルダ・ファイル名に大文字アルファベットを使っているのが原因で失敗
  • 3DモデルのテクスチャがMissing(これは元からおかしかったのかも)

というのが分かった。CIT Resewnのご指摘通りに直していくと正常に動作してくれた。

読み込みに失敗しているわけではないが、他にも

  • Skipped CIT: Unknown item minecraft: in パック名 ~ テクスチャ名.properties」→テクスチャを適用するアイテムのIDが指定されていないテクスチャ
  • Skipped CIT: Cannot resolve path for model/texture in パック名 ~ テクスチャ名.propeties」→テクスチャの場所が正しくないか、テクスチャが存在しない
  • CIT Warning: Using deprecated sub item id "crossbow_standby" instead of "crossbow" in パック名 ~ テクスチャ名.properties」→謎
  • テクスチャ画像の解像度が2の倍数になっていない指摘

みたいなログも確認できた。

これでも大半の銃テクスチャが読み込まれていないので違いを探っていると、テクスチャの適用条件が「特定のアイテム説明文の文章(nbt.display.lore)がn行目問わずにある」の時、.propertiesの書き方が

nbt.display.Lore.*=条件にする文字列

の場合は正しく読み込んで、

nbt.display.Lore=条件にする文字列

の場合は読み込まないことが分かった。nbt.display.Loreの後に「行数問わず」の.*があるかないかの違いだった。(もふくらふとでは2020年8月にCrackShotのバグで銃のうちアイテム名にカラーか装飾コードが使われていると銃が壊れるのを回避した影響でテクスチャの適用条件を今までのコードを含んだアイテム名から説明文に書き換えた時に「.*」無しにしてしまったため大半の銃テクスチャだけが読み込めなかった)

よって人力で数百個の.propetiesに.*を打ち込んでいく作業をして解決。これでもふくらふとのサーバーリソースパックがCIT Resewnでも動くようになった。

こんな感じで今までOptifineで動いていたのにCIT Resewnで使おうとするとエラー起こして使えない、ということがあるのでCIT活用のリソースパックを作る時にはCIT Resewnをベースに作った方が良いかもしれない。ログにも出してくれるしね。

コメント

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