sumisoクラフト

sumisoクラフトはてなブログ拠点

マイクラサバイバルにオススメmod【Java版Minecraft1.19.4対応】

すーみそー

sumiso_c0db8c だ

 

sumisoシリーズがJava版マイクラサバイバルで実際に使用している

便利系modを紹介します。

 

Java 1.19.4 対応

2023/10/19 1.20.2対応

アドレス変わってたiris shaderなど更新しました

まだ一部更新対応終わってない様子です

 

 

前提mod Fabric

Fabric | The home of the Fabric mod development toolchain.

 

modを入れるためのmodです。

今回紹介するmodはすべてfabricが必要になります。

 

インストーラーをダウンロードして起動すると

fabric用の起動構成を作成できます。

 

Fabric導入方法まとめました

sumiso-c0db8c.hatenablog.com

 

一度マイクラを起動すると、起動構成に対応するフォルダに

modsフォルダが生成されます。

これから紹介するmodは

modsフォルダに.jarファイルを入れることで使用できます。

 

前提mod Fabric API

modrinth.com

 

fabricを利用するmodを利用するためのmodです。

fabricと一緒に使用します。

 

描画最適化mod Sodium

 

modrinth.com

 

今最強の軽量化mod

描画系の処理を最適化してFPSをあげられる。

とりあえず入れるだけでOK

影mod Iris shader

irisshaders.dev

 

モダンな影mod

Sodiumと併用がオススメです。

デフォルトではI(アイ)キーで

影modの有効&無効が切り替えられるのが便利です。

 

modフォルダにIris shaderを入れて一度マイクラを起動すると

shaderpacksというフォルダが生成されるので

こちらにお好みのシェーダーを入れて使用します。

 

sumisoシリーズが使用しているシェーダーは

www.complementary.dev

 

光の影のバランスが非常に良いシェーダーです。

 

メニュー表示 Mod Menu

modrinth.com

 

modの数が増えてきましたが、まだまだ続きます。

mod menuは入れているすべてのmodを一覧表示するmodです。

また、それぞれのmod特有の設定画面にアクセスできます。

設定画面アクセス用に入れておきたいmodです。

 

描画設定追加 Sodium Extra

modrinth.com

 

Sodiumに対して細かな描画系の設定を追加するmodです。

ネザーの霧を非表示にしたりすることができます。

 

UX向上mod Reese's Sodium Options

modrinth.com

 

Sodiumの設定画面、使いづらくない?

という問題を解決するmodです。

ほんとうに、それだけ。

ささやかな工夫で、使いやすさが向上します。

 

ズームmod Logical Zoom

https://www.curseforge.com/minecraft/mc-mods/logical-zoom/files

 

デフォルトではCキーでズームできます。

望遠鏡と組み合わせるとさらにズームします。

ズーム機能使ってるのはyoutuberしかいないとか

見てほしい場所を観測者にアピールできます。

 

暗視mod Night Vision

modrinth.com

 

暗視modです。

サバイバルでの利用には賛否ありますが

画面が見えないと動画コンテンツとして成立しない

というyoutuberにはオススメです。

 

リプレイmod Replay Mod

www.replaymod.com

 

Java版マイクラ動画で非常によく使われている

イクラのリプレイが記録できるmodです。

スペクテイターモード視点で動画を出力できます。

 

ここで紹介するmodをすべて入れると

キー割り当てがReplay Modと被りまくります。

Replay Modを優先するか、他のmodを優先するか

好みで設定を調整してください。

sumiso環境ではReplay Modのキー設定がすべて解除されています。

UI操作で対応しています。

 

情報表示mod MiniHUD

https://www.curseforge.com/minecraft/mc-mods/minihud

 

様々な情報が見れるようになるmodです。

F3での表示内容の一部を選択して右上に表示したり

ブロックの明るさをオーバーレイで表示したり

ネザー要塞の範囲を表示したり

シュルカーボックスの中身を表示したり

多機能な便利系modです。

 

利用には下記MaLiLibの導入が必要です。

 

masaさんのmod MaLiLib

https://legacy.curseforge.com/minecraft/mc-mods/malilib

 

名前の由来はmasa's Litemod Library の略称。

masaさんのmodを利用する際に必要になります。

 

ホログラムmod Litematica

https://legacy.curseforge.com/minecraft/mc-mods/litematica

 

ホログラム表示modです。

クリエイティブで試作した建築や装置を記録

サバイバルでホログラム表示し

組み立てに利用できます。

sumisoシリーズの動画ではまだ一度も使用していない。

 

MaLiLibの導入が必要です。

 

まとめ

sumisoシリーズが実際に使用しているmod紹介でした。

実はあともう2つ利用したいmodがあります。

 

処理の最適化mod

modrinth.com

 

光源処理最適化mod

modrinth.com

 

実際にsumisoシリーズで利用して

改めて紹介したいですね。

 

なお今回紹介したmodは

全てJava版マイクラ専用です。

統合版では使用できません。

 

ランキング投票お願いします。

 

名前でテクスチャを変えるリソースパックの作り方【統合版マイクラ】

ストライダー君リソースパックの作り方

単車を乗りこなす

すーみそー

sumiso_c0db8cだ

 

名札で名前を付けたモブだけ

姿を変えるリソースパックの作り方を紹介する

 

統合版Minecraft対応

 

たとえばウサギ

Toast

ウサギには名札を使って

Toastという名前を付けると

見た目が変わる

 

ウサギを参考にリソースパックを作成した

 

 

目標

時々コラボでsumisoシリーズ一同お世話になっている

アンナビchさん

https://www.youtube.com/c/annavigame

アンナさんの助手のストライダー君

youtu.be

※初期モデルのアンナさん

 

ストライダー君は他のストライダーと表情が違う

 

今回は

通常[|_|]
ニッコリ[ˆᴗˆ≡]
プルプル/[>﹏<\\]
の3種類の表情を用意する

、、、通常の顔文字違う?

 

「Annavi」「Annavi smile」と

名前を付けることで

ストライダー君になる

リソースパックを作成する

環境

windows11

統合版マイクラ

 

  • ファイルの拡張子が見える
  • zipファイルの解凍・圧縮
  • 画像の編集
  • json形式のファイル編集

 

ができれば作れる、たぶん。

スマホでも頑張ればできるかもしれないが

PC推奨

 

準備

公式サイトより

イクラデフォルトの

リソースパックをダウンロードする

 

learn.microsoft.com

 

ページ下部

ツールとバニラパックの

バニラ リソースパック

ダウンロードする

 

ファイル編集用に

Visual Studio Code(VScode)もあると便利

お好みのテキストエディタで問題ない

 

ファイル構成

ダウンロードしたバニラのリソースパックを解凍

適当な場所に

今回のリソースパック作成に必要な

下記のファイルをコピーしてくる

 

ストライダー君リソースパック/ ←任意の名前
  ├ manifest.json
  ├ pack_icon.png ←無くても動作する
  ├ entity
  │  └ strider.entity.json
  ├ render_controllers
  │  └ strider.render_controllers.json
  └ textures/
    └ entity
      └ strider ← このフォルダにテクスチャの画像を用意する

 

フォルダ名が間違っていると動かないので注意

sのつけ忘れとか

 

バニラのファイルを元に

それぞれのファイルを編集していく

 

manifest.jsonとpack_icon.png

リソースパックの定義ファイル

 

2箇所あるuuidを適当な値に変更する

8f0c9411-97da-6746-255d-e75d9f94b6fe

みたいな英数字の組み合わせだ


uuid 生成 でググる
いくつかuuidを表示してくれるサイトがあるので
コピペする

 

headerの方のdiscriptionを
リソースパックの説明に変更する
このテキストがマイクラで表示される

リソースパックの表示

pack_icon.pngはここに表示される画像
正方形ならサイズ不問
設定されてなくても動作には影響しない

modulesの方のdiscriptionがマイクラで表示される場所はなさそうだが
適当に説明を書いておく

メタデータとして作者情報を載せることも可能
sumisoのチャンネルを宣伝しておく

 

作成したmanifest.json

{
    "format_version": 2,
    "header": {
        "description": "ストライダー君に名札で「Annavi」「Annavi smile」と名前を付けると表情が変わります",
        "name": "ストライダー君リソースパック",
        "uuid": "8f0c9411-97da-6746-255d-e75d9f94b6fe",
        "version": [0, 0, 1],
        "min_engine_version": [ 1, 19, 30 ]
    },
    "modules": [
        {
            "description": "アンナさんのストライダー君再現リソースパック",
            "type": "resources",
            "uuid": "269ce11d-93c2-2b1a-cabf-a578508ae3b3",
            "version": [0, 0, 1]
        }
    ],
    "metadata": {
        "authors": [
            "sumiso_c0db8c"
        ],
        "url": "https://www.youtube.com/c/sumisocraft"
    }
}

 

 

strider.entity.json 

リソースパックで使用するテクスチャ画像のパスを指定するファイル

 

ストライダーにはもともと

 

  • デフォルト
  • デフォルト鞍付き
  • ふるえてる
  • ふるえてる鞍付き

 

の4種類の画像が用意されている

 

ここに
通常[|_|]
ニッコリ[ˆᴗˆ≡]
の鞍あり・なし版と

ふるえている
プルプル/[>﹏<\\]
の鞍あり・なし版を
を追加する

通常状態、ニッコリ状態ともに
震え状態には
プルプル/[>﹏<\\]の画像を指定している

{
  "format_version": "1.10.0",
  "minecraft:client_entity": {
    "description": {
      "identifier": "minecraft:strider",
      "materials": { "default": "strider" },
      "textures": {
        "default": "textures/entity/strider/strider",
        "saddled": "textures/entity/strider/strider_saddled",
        "suffocated": "textures/entity/strider/strider_suffocated",
        "suffocated_saddled": "textures/entity/strider/strider_suffocated_saddled",
        "Annavi_default":"textures/entity/strider/Annavi/Annavi_default",
        "Annavi_saddled":"textures/entity/strider/Annavi/Annavi_saddled",
        "Annavi_smile_default":"textures/entity/strider/Annavi/Annavi_smile_default",
        "Annavi_smile_saddled":"textures/entity/strider/Annavi/Annavi_smile_saddled",
        "Annavi_suffocated":"textures/entity/strider/Annavi/Annavi_suffocated",
        "Annavi_suffocated_saddled":"textures/entity/strider/Annavi/Annavi_suffocated_saddled",
        "Annavi_smile_suffocated":"textures/entity/strider/Annavi/Annavi_suffocated",
        "Annavi_smile_suffocated_saddled":"textures/entity/strider/Annavi/Annavi_suffocated_saddled"
      },
      "geometry": {
        "default": "geometry.strider"
      },

      // 以下省略

 

strider.render_controllers.json

描画の設定ファイル

名前がついていたら、ストライダー君のテクスチャにする

という設定を行う

 

バニラのファイルを紹介する

コメント部分はあとから追記している

{
  "format_version": "1.8.0",
  "render_controllers": {
    "controller.render.strider": {
		"arrays": {
	        "textures": {
                // デフォルト
          	    "Array.base": [
          			"Texture.default",
          			"Texture.saddled"
          		],
                // ふるえ
          		"Array.suffocated": [
          			"Texture.suffocated",
          			"Texture.suffocated_saddled"
          		]
	        }
      	},
		"geometry": "Geometry.default",
		"materials": [
			{ "*": "Material.default" }
		],
		"textures": [
            // 状態に応じて画像を指定
			"query.is_shaking ? Array.suffocated[query.is_saddled] : Array.base[query.is_saddled]"
		]
    }
  }
}

 

arraysの部分でデフォルトとふるえ版の
鞍あり・なし版配列を作っている

 

texturesの部分がMolangによる条件文で画像を指定している

ちなみにMolang公式ドキュメントはまだ日本語対応してない

learn.microsoft.com

震えているかどうか判定をし
配列のインデックスに鞍を付けているかの判定が指定されている
鞍がない場合は0番目のテクスチャ
鞍がある場合は1番目のテクスチャが表示される

 

ここに
ストライダー君のテクスチャが表示されるように
追記していく

 

arraysの部分にストライダー君のテクスチャを追加する
"Texture.Annavi_default"などの文字列はstrider.entity.jsonで指定したものだ

// [|_|]
"Array.Annavi_base": [
	"Texture.Annavi_default",
	"Texture.Annavi_saddled"
],
// [ˆᴗˆ≡]
"Array.Annavi_smile": [
	"Texture.Annavi_smile_default",
	"Texture.Annavi_smile_saddled"
],
// /[>﹏<\\]
"Array.Annavi_suffocated": [
	"Texture.Annavi_suffocated",
	"Texture.Annavi_suffocated_saddled"
],
// /[>﹏<\\]
"Array.Annavi_smile_suffocated": [
	"Texture.Annavi_smile_suffocated",
	"Texture.Annavi_smile_suffocated_saddled"
]

 

texturesの画像の条件指定を考える

 

名前の比較は

query.get_name == 'Toast'

でできる

ストライダー君のテクスチャ判定



もうちょっとスマートな方法があるかもしれないが

この分岐を表現する

"textures": [
  "query.is_shaking ? (query.get_name == 'Annavi' ? Array.Annavi_suffocated[query.is_saddled] : (query.get_name == 'Annavi smile' ? Array.Annavi_smile_suffocated[query.is_saddled] : Array.suffocated[query.is_saddled])) : (query.get_name == 'Annavi' ? Array.Annavi_base[query.is_saddled] : (query.get_name == 'Annavi smile' ? Array.Annavi_smile[query.is_saddled] : Array.base[query.is_saddled]))"
]

なんかすごいことになった

 

最終的なstrider.render_controllers.jsonの全文

{
  "format_version": "1.8.0",
  "render_controllers": {
    "controller.render.strider": {
		"arrays": {
	        "textures": {
          		"Array.base": [
          			"Texture.default",
          			"Texture.saddled"
          		],
          	    "Array.suffocated": [
          			"Texture.suffocated",
          			"Texture.suffocated_saddled"
          		],
          		"Array.Annavi_base": [
          			"Texture.Annavi_default",
          			"Texture.Annavi_saddled"
          		],
          		"Array.Annavi_smile": [
          			"Texture.Annavi_smile_default",
          			"Texture.Annavi_smile_saddled"
          		],
          		"Array.Annavi_suffocated": [
          			"Texture.Annavi_suffocated",
          			"Texture.Annavi_suffocated_saddled"
          		],
          		"Array.Annavi_smile_suffocated": [
          			"Texture.Annavi_smile_suffocated",
          			"Texture.Annavi_smile_suffocated_saddled"
          		]
	        }
      	},
		"geometry": "Geometry.default",
		"materials": [
			{ "*": "Material.default" }
		],
		"textures": [
			"query.is_shaking ? (query.get_name == 'Annavi' ? Array.Annavi_suffocated[query.is_saddled] : (query.get_name == 'Annavi smile' ? Array.Annavi_smile_suffocated[query.is_saddled] : Array.suffocated[query.is_saddled])) : (query.get_name == 'Annavi' ? Array.Annavi_base[query.is_saddled] : (query.get_name == 'Annavi smile' ? Array.Annavi_smile[query.is_saddled] : Array.base[query.is_saddled]))"
		]
    }
  }
}
textures/entity/strider

ここにストライダー君のテクスチャ画像を入れる

バニラの画像を元に、ストライダー君っぽい顔にする
お好みの画像編集ソフトを使って作成してほしい

ストライダー君テクスチャ

ファイル名はstrider.entity.jsonで指定したものだ

フォルダの階層も指定したものに合わせる

 

リソースパック化

作ったファイルをまとめて、リソースパックにする

ファイル圧縮

ファイルをすべて選択して右クリック

ZIPファイルに圧縮を選択する

 

作成したZIPファイルの名前を
ストライダー君リソースパック.mcpack
に変更する
.zipの部分を.mcpackに変更する

拡張子変更の注意が表示されるがOK

名前の変更の注意が表示されるがはいをクリック
イクラのアイコンのファイルに変わる

 

ファイルをダブルクリックすると
イクラが起動して
リソースパックがインポートされる

 

うまくいかないときは

スペル間違えていないか確認してください
フォルダ名間違えているだけで動作しません
この記事がスペルミスしてたらコメントで教えてください()

 

イクラの設定で
リソースパックのエラーを表示する機能がある

コンテンツ ログ GUIの有効化

設定のクリエイター
コンテンツ ログ GUIの有効化をすると
リソースパックの適用したワールドを読み込んだときに
問題がある部分を表示できるようになる

 

まとめ

名札で名前を付けると見た目が変わるリソースパックを作成した
リソースパックなので、サバイバルで使用でき、実績解除に影響しない

名前を変えてないストライダーはそのままだ

応用すれば、自分だけのオリジナルなモブが作れる

 

ちなみに
羊にjeb_という名前を付けるとゲーミング羊になる
ヴィンディケーターにJohnnyという名前を付けると無双し始める
のはリソースパックでは定義されてない

今回紹介した方法では変更できない

ReplayModの映像をGPUエンコードする【マイクラ】

Minecraftでカッコいい映像の撮影に使われるReplay Mod (リプレイモッド)

 

イクラのプレイ映像を録画しておき

あとからスペクテイターモードの視点で

再生、動画出力が可能だ(なおJava版限定)

 

ReplayModはFFmpegというソフトを使用して

動画を出力する機能がある

 

初期設定ではCPUエンコードになっているが

設定を変更することでGPUエンコードができる

 

 

GPUの種類を確認する方法

前提としてNVIDIAGPU搭載PCでないとできないので注意

GPUの種類はタスクマネージャーのパフォーマンスのタブから確認できる

maclinux は知らないです

 

タスクマネージャーは 

Ctrl + Shift + Esc

の同時押しで開ける

 

GPUのタブにIntel(R)  とある場合は

今回紹介する方法はできないので注意

 

ReplayModの映像をGPUエンコードする方法

動画出力の設定のコマンドライン設定を変更すると

GPUを指定できる

コマンドライン引数

デフォルトでは

-y -f rawvideo -pix_fmt bgra -s %WIDTH%x%HEIGHT% -r %FPS% -i - %FILTERS%-an -c:v libx264 -b:v %BITRATE% -pix_fmt yuv420p "%FILENAME%"

となっている

ここを

-y -f rawvideo -pix_fmt bgra -s %WIDTH%x%HEIGHT% -r %FPS% -i - %FILTERS%-an -c:v h264_nvenc -b:v %BITRATE% -pix_fmt yuv420p "%FILENAME%"

に変更すると

NVIDIAGPUを使用してエンコードできる

 

なお使用しているFFmpegによっては対応してない場合がある

ReplayModのサイトで紹介されているリンクからダウンロードした

FFmpegなら問題ない

https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-essentials.zip

 

CPUエンコードGPUエンコードの比較

検証環境

7dが撮影していた襲撃トラップの録画データを用いて検証した

mod構成、PCスペックは上の画像の通り

 

襲撃の開始から終了まで

5分23秒の映像を出力して比較した

 

CPUエンコード

CPUエンコード所要時間

所要時間 5:10

 

GPUパフォーマンス

Video Encode 6 %

 

GPUエンコード

GPUエンコード

所要時間 5:11

 

GPUパフォーマンス

Video Encode 20%

CPUエンコードの時より使用量が増えている

 

画質の比較

出力映像のスクリーンショット比較

パーティクルの位置が違うだけで

画質は変わらないように見える

 

まとめ

構想時のタイトルは

ReplayModをGPUで爆速エンコードする

だったが、実際に比較してみるとほとんど変わらなかった

 

CPUとGPUの組み合わせや

軽量化modの構成で結果は変わるかもしれない