Cat_Anchor 发表于 2023-1-9 21:36:05

附加包教程:5.迷雾

本帖最后由 Cat_Anchor 于 2024-7-22 18:53 编辑




前言


上期,我们成功向附加包中添加了功能域。这一期,我们将学习迷雾相关内容,因为上期提到了迷雾。我对迷雾的了解还不如对功能域的了解,所以可能会有错误。



https://klpbbs.com/static/image/hrline/line5.png


准备


在资源包根目录下创建并打开fogs文件夹,新建一个文件。



https://klpbbs.com/static/image/hrline/line2.png


第一个迷雾


现在就可以开始了。在你新建的文件里写以下数据。
{
"format_version": "1.16.100", //不像其他内容,迷雾的格式版本只能是1.16.100,不能变。
"minecraft:fog_settings": {
    "description": {
      "identifier": "前面写一个附加包名称,加上英文冒号,后面写具体的这个文档的英文名(例如test_pack:test_fog),这个要牢记"
    },
    "distance": { //这里就是迷雾的各种属性
      "water": {
      "fog_start": 10.0, //玩家和迷雾开始时的距离,此时迷雾是半透明的。
      "fog_end": 40.0, //迷雾变得完全不透明时离玩家的距离。必须大于或等于“fog_start”。
      "fog_color": "#0677ce", //迷雾的颜色,使用十六进制
      "render_distance_type": "fixed" //决定迷雾渲染距离的方法。 fixed的意思是以方块为单位,render的意思是把距离当成因数,乘以当前的渲染距离。
      }, //水下的远处
      "air": {
      "fog_start": 20.0, //这些值的意思和上面说的一样。
      "fog_end": 100.0,
      "fog_color": "#eedde1",
      "render_distance_type": "fixed"
      }, //空气中远处
      "weather": {
      "fog_start": 20.0,
      "fog_end": 80.0,
      "fog_color": "#eedde1",
      "render_distance_type": "fixed"
      }, //下雨或下雪时远处
      "lava": {
      "fog_start": 20.0,
      "fog_end": 80.0,
      "fog_color": "#eedde1",
      "render_distance_type": "fixed"
      }, //在熔岩里时远处
      "lava_resistance": {
      "fog_start": 40.0,
      "fog_end": 80.0,
      "fog_color": "#eedde1",
      "render_distance_type": "fixed"
      }, //拥有抗火效果时熔岩里远处
      "powder_snow": {
      "fog_start": 20.0,
      "fog_end": 80.0,
      "fog_color": "#eedde1",
      "render_distance_type": "fixed"
      } //细雪里远处
    }
}
}
好了,一般来说制作附加包只需要上面那些数据。下面是高级内容,不怎么常用,如果要测试一下,那么新开一个迷雾文件,写上以下代码。
{
"format_version": "1.16.100",
"minecraft:fog_settings": {
    "description": {
      "identifier": "前面写一个附加包名称,加上英文冒号,后面写具体的这个文档的英文名(例如test_pack:advanced_fog),这个要牢记"
    },
    "distance": { //这里与上面的意思相同。
      "water": {
      "fog_start": 10.0,
      "fog_end": 40.0,
      "fog_color": "#0677ce",
      "render_distance_type": "fixed",
      "transition_fog": { //当玩家的摄像机在水中时,水中的渐变迷雾。
          "init_fog": { //初始时的迷雾
            "fog_start": 0.0,
            "fog_end": 0.01,
            "fog_color": "#157cab",
            "render_distance_type": "fixed" //这四项与上面那四项的作用相同。
          },
          "min_percent": 0.25, //渐变的最小百分比(范围是0.0-1.0),迷雾从这个百分比开始渐变
          "mid_seconds": 5, //迷雾达到下面百分比所需的时间(秒)
          "mid_percent": 0.6, //迷雾经过上面mid_seconds秒数的渐变后,到达的百分比
          "max_seconds": 30 //迷雾渐变完成所需要的时间(秒,范围是0.0-1.0),以上四项共同定义了迷雾渐变的速度轨迹等。
      }
      },
      "air": {
      "fog_start": 20.0,
      "fog_end": 100.0,
      "fog_color": "#eedde1",
      "render_distance_type": "fixed"
      },
      "weather": {
      "fog_start": 20.0,
      "fog_end": 80.0,
      "fog_color": "#eedde1",
      "render_distance_type": "fixed"
      },
      "lava": {
      "fog_start": 20.0,
      "fog_end": 80.0,
      "fog_color": "#eedde1",
      "render_distance_type": "fixed"
      },
      "lava_resistance": {
      "fog_start": 20.0,
      "fog_end": 80.0,
      "fog_color": "#eedde1",
      "render_distance_type": "fixed"
      },
      "powder_snow": {
      "fog_start": 20.0,
      "fog_end": 80.0,
      "fog_color": "#eedde1",
      "render_distance_type": "fixed"
      }
    },
    "volumetric": { //这里是高级内容,一般不会用到。这个是迷雾的体积设置。
      "density": { //迷雾的密度。下面的air,water等等的对象,意义是光穿过air(空气)/water(水)等等,的迷雾密度值。
      "air": {
          "max_density": 0.95, //迷雾的(最大)不透明度(密度),介于0和1之间,可以是小数。
          "zero_density_height": 320, //迷雾完全透明并开始出现(渐渐变浓)的高度,以方块为单位。需要至少比“max_density_height”大1,介于0-320之间。
          "max_density_height": 128, //迷雾将达到其最大密度(最浓)的高度,单位是方块,介于0-320之间。
          "uniform": false //如果设置为true,密度在所有高度上都是一致的,因此不能也不需要使用max_density_height和zero_density_height。如果设置为false,则密度不一致,使用max_density_height和zero_density_height决定密度。
      },
      "water": {
          "max_density": 0, //这些结构都是重复的,意义和上面的相同。
          "uniform": true
      },
      "lava": {
          "max_density": 0,
          "uniform": true
      },
      "lava_resistance": {
          "max_density": 0,
          "uniform": true
      }
      },
      "media_coefficients": { //不同方块中迷雾体积的系数设置。
      "air": { //光线穿过空气时的迷雾系数。
          "scattering": "#000000", //每个方块被散射的光的比例。也可以填写含三个范围是0-255的整数的数组。
          "absorption": "#000000" //每个方块被吸收的光的比例。
      },
      "water": { //光线穿过水时的迷雾系数。
          "scattering": "#000000", //这些结构都是重复的,意义和上面的相同。
          "absorption": "#000000"
      },
      "cloud": { //光线穿过云时的迷雾系数。
          "scattering": "#000000",
          "absorption": "#000000"
      }
      }
    }
}
}
现在你应该可以使用/fog命令新建一个你自己创建的迷雾了。
命令如下:https://pic.imgdb.cn/item/63ba76dabe43e0d30ec72943.jpg

迷雾效果对比:https://pic.imgdb.cn/item/63ba76e7be43e0d30ec73b9e.png

本期模板下载:




https://klpbbs.com/static/image/hrline/line1.png


总结


这一期和上一期都讲了比较冷门的知识,主要是我想先把细碎的东西讲完。下期我们就要开始讲物品了。方块、实体、物品都是互相有联系的,我认为还是从物品入手最简单。





第四期 第五期 第六期

巅疯狂魔 发表于 2023-1-10 08:39:08

感谢分享

CraftBuildLife 发表于 2023-1-9 21:51:31

不要沉了,让更多人看到吧,也许以后有些人会成为开发者

CraftBuildLife 发表于 2023-1-9 21:50:57

帖子很好,很有用,可是这个论坛里大部分人不是开发者,另外,感谢分享
页: [1]
查看完整版本: 附加包教程:5.迷雾