# 材质相关接口介绍

# 前言

本文将简单介绍《我的世界》开放的材质相关python接口,便于开发者加深对材质系统的了解,同时避免开发者因找不到相关接口而缺乏头绪的情况。 网易版《我的世界》向开发者开放python接口,其中包括了材质相关的接口,允许开发者对材质进行一定程度的增删改查。通过调用python接口,开发者不仅可以减少配置json的麻烦,还可以实现在游戏内动态替换材质、动态调整材质特性的功能,关于接口的更具体描述,可以前往API文档页面进行查阅。

# 网易骨骼模型材质

# SetModelMaterial

设置骨骼模型所使用的材质,允许设置常规材质和低配机材质,并且可以精确到具体的骨骼使用何种材质。

# SetModelMultiPassMaterial

设置骨骼模型所使用的材质数组,用法大致与SetModelMaterial接口相同。

# GetModelMaterial

获取骨骼模型所使用的材质,可以精确到骨骼。

# GetExtraUniformValue

获取骨骼模型材质参数,对应shader中的uniform值。

# SetExtraUniformValue

设置骨骼模型材质参数,对应shader中的uniform值。

# 原版实体与玩家实体材质

# AddActorRenderMaterial

增加或替换实体的材质,需要配合RebuildActorRender接口使用。

# AddPlayerRenderMaterial

增加或替换玩家的材质,需要配合RebuildPlayerRender接口使用。

# AddActorRenderController

增加或修改实体的渲染控制器。渲染控制器可以在游戏内根据实体的情况,实时决定实体使用何种材质、纹理以及几何体。

# AddPlayerRenderController

增加或修改玩家的渲染控制器。渲染控制器可以在游戏内根据实体的情况,实时决定实体使用何种材质、纹理以及几何体。

# RemoveActorRenderController

删除实体渲染控制器

# RemovePlayerRenderController

删除玩家渲染控制器

# AddActorRenderControllerArray

添加实体渲染控制器数组中字典arrays元素

# CopyActorRenderMaterialFromPlayer

将玩家的材质引用拷贝到某一类实体上,精确到材质键,例如可以将玩家的default对应的材质拷贝到羊的default对应的材质。

# SetEntityExtraUniforms

设置实体shader的自定义变量值,包括生物实体以及玩家实体。目前自定义变量值包含四个四维向量,因此开发者可以利用16个float的信息实现对材质表现的控制。

# GetEntityExtraUniforms

获取实体shader的自定义变量值,包括生物实体以及玩家实体。

# RebuildActorRender

重建或刷新实体渲染,一般需要在实体渲染相关的修改操作结束后调用。

# RebuildPlayerRender

重建或刷新玩家实体渲染,一般需要在玩家实体渲染相关的修改操作结束后调用。

# 方块实体材质

# SetBlockEntityExtraUniforms

设置实体方块的shader参数值,与SetEntityExtraUniforms接口或SetExtraUniformValue接口类似。

# GetBlockEntityExtraUniforms

获取实体方块的shader参数值,与GetEntityExtraUniforms接口或GetExtraUniformValue接口类似。

# 后处理材质

# SetEnableByName

根据指定的后处理名称,开关对应的自定义后处理效果。

# CheckEnabledByName

根据指定的后处理名称,获取对应的自定义后处理效果是否开启。

# SetParameter

可以根据后处理效果名称与自定义参数名称,设置自定义后处理的自定义参数,与GetEntityExtraUniforms接口或GetExtraUniformValue接口类似。

# GetParameter

可以根据后处理效果名称与自定义参数名称,获取自定义后处理的自定义参数值,与GetEntityExtraUniforms接口或GetExtraUniformValue接口类似。

# InsertPassToPostprocess

允许在自定义后处理pass数组中插入一个自定义pass。

# PushBackPassToPostprocess

允许在自定义后处理pass数组末尾加入一个自定义pass。

# RemovePassInPostprocess

指定后处理名称与下标,可以移除后处理pass数组中的某个pass,该操作不会影响文件。

# PopBackPassInPostprocess

指定后处理名称,可以移除后处理pass数组中的最后一个pass,该操作不会影响文件。

入门

20分钟

前言

网易骨骼模型材质

SetModelMaterial

SetModelMultiPassMaterial

GetModelMaterial

GetExtraUniformValue

SetExtraUniformValue

原版实体与玩家实体材质

AddActorRenderMaterial

AddPlayerRenderMaterial

AddActorRenderController

AddPlayerRenderController

RemoveActorRenderController

RemovePlayerRenderController

AddActorRenderControllerArray

CopyActorRenderMaterialFromPlayer

SetEntityExtraUniforms

GetEntityExtraUniforms

RebuildActorRender

RebuildPlayerRender

方块实体材质

SetBlockEntityExtraUniforms

GetBlockEntityExtraUniforms

后处理材质

SetEnableByName

CheckEnabledByName

SetParameter

GetParameter

InsertPassToPostprocess

PushBackPassToPostprocess

RemovePassInPostprocess

PopBackPassInPostprocess