97 lines
4.3 KiB
Markdown
97 lines
4.3 KiB
Markdown
---
|
||
front:
|
||
hard: 入门
|
||
time: 20分钟
|
||
---
|
||
|
||
# 材质相关接口介绍
|
||
|
||
## 前言
|
||
本文将简单介绍《我的世界》开放的材质相关python接口,便于开发者加深对材质系统的了解,同时避免开发者因找不到相关接口而缺乏头绪的情况。
|
||
网易版《我的世界》向开发者开放python接口,其中包括了材质相关的接口,允许开发者对材质进行一定程度的增删改查。通过调用python接口,开发者不仅可以减少配置json的麻烦,还可以实现在游戏内动态替换材质、动态调整材质特性的功能,关于接口的更具体描述,可以前往<a href="./../../../mcdocs/1-ModAPI/接口/Api索引表.html">API文档</a>页面进行查阅。
|
||
|
||
## 网易骨骼模型材质
|
||
### 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,该操作不会影响文件。
|