MC自定义皮肤联机也显示

最近带小朋友玩MC,小朋友总是很在意皮肤。甚至为了有不同的皮肤不断的换名称来达到更换的效果。虽然我劝道,反正皮肤是给别人看的,不必太在意。然而还是没有太大作用。小朋友也在意外表吧。

因为我不是很在意皮肤所以一直没有研究这个事情。那就开搞吧。这里以离线用户为例,启动器是HMCL

为什么在hmcl中设置的皮肤没有效果?

你是否有这样的困惑,在hmcl中设置的皮肤,进游戏并不会生效。
在这里插入图片描述
有时刚进入游戏是你设置的皮肤,比如:Alex 但是过一会儿会刷新掉。我是带着这个疑惑写这篇文章的。

结论:由于我安装的CustomSkinLoader覆盖了原来的皮肤导致的。

CustomSkinLoader

建议使用 CustomSkinLoader 作为皮肤加载 Mod,同时也支持其他所有支持 CustomSkinAPI 和传统皮肤加载方式的皮肤 Mod。

你可以在下方下载到适用于 Minecraft 1.6.4 及以上版本的 CustomSkinLoader,下载完成后将其放入 .minecraft/mods 文件夹内即可。

加载本地皮肤

首先说明一下如何加载本地皮肤。安装完CustomSkinLoader 以后先运行一下游戏,然后会发现在以下目录会生成一个
/hmcl/.minecraft/versions/XPlus OptiReady based on Minecraft 1.20.1 (Forge)_2024/CustomSkinLoader 目录,目录下有CustomSkinLoader.json文件就是我们要修改的配置文件。
“loadlist”: []中有很多内容,找到以下内容,并把它剪切到最前面即可。根据我的测试,越在前面越会优先加载。

 {
      "name": "LocalSkin",
      "type": "Legacy",
      "checkPNG": false,
      "skin": "LocalSkin/skins/{USERNAME}.png",
      "model": "auto",
      "cape": "LocalSkin/capes/{USERNAME}.png",
      "elytra": "LocalSkin/elytras/{USERNAME}.png"
    },

为了方便看,我减化了一些内容,只保留最需要的部分:

{
  "enable": true,
  "loadlist": [
    {
      "name": "LocalSkin",
      "type": "Legacy",
      "checkPNG": false,
      "skin": "LocalSkin/skins/{USERNAME}.png",
      "model": "auto",
      "cape": "LocalSkin/capes/{USERNAME}.png",
      "elytra": "LocalSkin/elytras/{USERNAME}.png"
    }
  ]
}

我们只需要把皮肤文件命名成你的id.png就行了。比如:我的名称是itkey,文件名itkey.png就可以了。
此目录/hmcl/.minecraft/versions/XPlus OptiReady based on Minecraft 1.20.1 (Forge)_2024/CustomSkinLoader 下面

LocalSkin/skins/
LocalSkin/capes/
LocalSkin/elytras/

这里你可能会问,那么皮肤文件到哪里获取呢?别人怎么获取我不知道,我是从https://littleskin.cn/免费下载的。

对于单人生存到这里也就够用了。但是联机和朋友一起玩就会发现皮肤只能自己看到,别人是看不到的。作为程序员我的,来分析一下原因:

  1. 皮肤文件存放在你的电脑本地,别人无法访问就导致别人看不到了。
  2. 猜测:如果想让别人也能看到你的皮肤,可以把自己的LocalSkin/复制到对方的电脑上。理论上别人就也可以看到了。
    当然这只是我的推测,我并没有实际这样测试,因为我觉得往别人电脑里复制太麻烦了。

那么如何让联机时其他小伙伴也能看到皮肤呢?

littleskin

https://littleskin.cn/这个网站我是从hmcl启动器中看到的。

  1. 直接点进去注册个账号
  2. 创建个与自己的名称一样的角色,给角色设置好皮肤就搞定了。

前提你没有对CustomSkinLoader.json文件做任何修改,默认的配置就已经可以了。如果你看了上一节,加载本地皮肤修改过了配置文件则还需要把配置修改回去。现在也别急修改回去,后面会讲到如何修改。

踩坑

如果你比较顺利的话,现在已经成功了。但是我运气不好遇到点坑。
通过在littleskin创建角色,我们联机确实可以看到对方的皮肤了,但是遇到了一种情况。我的itkey账号怎么设置都不生效。为了这个搞的我非常的难受。研究了好久终于找到了原因了。

原因分析

默认自动生成的CustomSkinLoader.json,形如下面的内容:

{
  "version": "15.0",
  "buildNumber": 10,
  "loadlist": [
    {
      "name": "Mojang",
      "type": "MojangAPI",
      "apiRoot": "https://api.mojang.com/",
      "sessionRoot": "https://sessionserver.mojang.com/"
    },
    {
      "name": "LittleSkin",
      "type": "CustomSkinAPI",
      "root": "https://littleskin.cn/csl/"
    },
    {
      "name": "BlessingSkin",
      "type": "CustomSkinAPI",
      "root": "https://skin.prinzeugen.net/"
    },
    //....下面省略...

可以看出loadlist中Mojang的优先级是最高的,其次才是LittleSkin。这样就可以理解了。也就是说如果Mojang平台恰巧有一个人用的名称和你的一样,就会导致优先用Mojang设置的皮肤。你在LittleSkin怎么折腾也没有用。

解决办法

只要把"name": "LittleSkin"放到最前面就行了。

{
  "version": "15.0",
  "buildNumber": 10,
  "loadlist": [
    {
      "name": "LittleSkin",
      "type": "CustomSkinAPI",
      "root": "https://littleskin.cn/csl/"
    },
    {
      "name": "Mojang",
      "type": "MojangAPI",
      "apiRoot": "https://api.mojang.com/",
      "sessionRoot": "https://sessionserver.mojang.com/"
    },    
    {
      "name": "BlessingSkin",
      "type": "CustomSkinAPI",
      "root": "https://skin.prinzeugen.net/"
    },
    //....下面省略...

此时我仿佛听到有人问博主,你最终的配置是什么样能不能分享一下,我精简了一下只保留LittleSkin的配置,我最终的配置如下:

{
  "enable": true,
  "loadlist": [
    {
      "name": "LittleSkin",
      "type": "CustomSkinAPI",
      "root": "https://littleskin.cn/csl/"
    }
  ]
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值