# 渲染控制器

# 作者:境界

渲染控制器帮助开发者控制生物如何渲染在游戏世界中的表现。它与动画控制器可以被视为自定义生物最难的两个部分。原版生物中,不是所有生物都只有单一表现。例如村民战争更新后,村民根据群系拥有不同皮肤,热带鱼拥有数千种组合,狼在生气时会红眼等,这些都是由渲染控制器所控制,同时又以JSON结构存放在游戏本地文件当中。除了阅读教程之外,原版文件同样是天然而又深度的教材,希望开发者能在学习过程中对于原版文件进行额外的知识补充。

{
    "format_version":"1.8.0",
    "render_controllers":{
        "controller.render.default":{
            "geometry":"Geometry.default",
            "materials":[
                {
                    "*":"Material.default"
                }
            ],
            "textures":[
                "Texture.default"
            ],
            "overlay_color":{
                "r":0,
                "g":0,
                "b":0,
                "a":0
            },
            "on_fire_color":{
                "r":0,
                "g":0,
                "b":0,
                "a":0
            },
            "is_hurt_color":{
                "r":0,
                "g":0,
                "b":0,
                "a":0
            }
        }
    }
}

# format_version

format_version是指代定义渲染控制器文件的版本号,目前只有1.8.0这一格式版本号。

# controller.render.

每个控制器都必须以controller.render.为固定前缀。后面的名称可以以生物名称作区隔。

# material

material意为材质。同样,值写为"Material.材质键",其中材质键为英文字符,会对应生物定义文件中,material对象下的键,它的值则会引向材质资源。

# texture

texture意为贴图纹理。同样,值写为"texture.贴图键",其中贴图键盘为英文字符,会对应生物定义文件中,贴图对象下的键,它的值则会引向贴图纹理资源。

# overlay_color

overlay_color意为叠加颜色。类似于图像处理软件的颜色叠加模式,其中r代表红色,g代表绿色,b代表蓝色,a代表透明程度。RGB是色彩中的三原色。在控制器中,值是由颜色分量除以255得出的。例如,RGB(255,0,0)表示红色,则在上述颜色值内填上"r": 1.0,"g": 0.0,"b": 0.0,"a": 1.0。

# on_fire_color

on_fire_color意为生物实体着火时的颜色。在MC中默认为红色,若不自定义此项则会继承原版生物着火的颜色,自定义形式同overlay_color。

# is_hurt_color

is_hurt_color意为生物实体受伤时的颜色。在MC中默认为红色,若不自定义此项则会继承原版生物受伤的颜色,自定义形式同overlay_color。