使用API修改玩家表现 
下面结合示例CustomEntityMod说明如何通过接口动态修改玩家模型与动作。
修改材质 
接口 
示例 
python
actorRenderComp = self.CreateComponent(entityId, "Minecraft", "actorRender")
actorRenderComp.AddPlayerRenderMaterial("default", "custom_entity")
actorRenderComp.RebuildPlayerRender()
def reset():
    actorRenderComp.AddPlayerRenderMaterial("default", "entity_alphatest")
    actorRenderComp.RebuildPlayerRender()
    self.ShowMsg("恢复默认玩家渲染材质")
comp = clientApi.CreateComponent(clientApi.GetLevelId(), "Minecraft", "game")
comp.AddTimer(3.0, reset)
self.mIsTranform = True
self.ShowMsg("切换玩家渲染材质中")说明 
玩家的默认渲染材质为entity_alphatest,首先先修改为自定义材质custom_entity,然后定时3s恢复默认值。
效果 

左边:custom_entity
右边:entity_alphatest
修改几何体与贴图 
接口 
示例 
python
actorRenderComp = self.CreateComponent(entityId, "Minecraft", "actorRender")
actorRenderComp.AddPlayerGeometry("default", "geometry.zombie.v1.8")
actorRenderComp.AddPlayerTexture("default", "textures/entity/zombie/zombie")
actorRenderComp.RebuildPlayerRender()
def reset():
    actorRenderComp.AddPlayerGeometry("default", "geometry.humanoid.custom")
    actorRenderComp.AddPlayerTexture("default", "textures/entity/steve")
    actorRenderComp.RebuildPlayerRender()
    self.ShowMsg("恢复默认玩家渲染几何体")
comp = clientApi.CreateComponent(clientApi.GetLevelId(), "Minecraft", "game")
comp.AddTimer(3.0, reset)说明 
玩家的默认渲染几何体为geometry.humanoid.custom
玩家的默认渲染贴图为textures/entity/steve
首先把玩家默认渲染几何体改为geometry.zombie.v1.8,默认渲染贴图改为textures/entity/zombie/zombie,然后定时3s恢复默认值。
效果 

左边:默认
右边:修改后的僵尸几何体以及贴图
备注:修改几何体还会涉及到贴图以及动画,如果只是修改几何体,会出现动画无法正常播放等问题
修改动画 
接口 
示例-修改动作 
新增动作定义
json
"animation.player.custom.move.arms" : {
    "loop" : true,
    "bones" : {
        "leftarm" : {
            "rotation" : [ "variable.tcos0 + 30", 0.0, 0.0 ]
        },
        "rightarm" : {
            "rotation" : [ "-variable.tcos0 + 30", 0.0, 0.0 ]
        }
    }
}接口增加动画
python
actorRenderComp = self.CreateComponent(entityId, "Minecraft", "actorRender")
actorRenderComp.AddPlayerAnimation("move.arms", "animation.player.custom.move.arms")说明:对原版move.arms动作进行调整,leftarm和rightarm的rotation各增加30,然后使用接口覆盖原版的定义。
示例-控制动画 
move.arms和move.legs分别为玩家手部和腿部摆动的动画。在原版中,此两种动画没有任何条件限制,只要走动就会计算出两者的旋转角度。
在此,我们通过简单queryVariable组件定义的变量来控制这两个动画。
json
{
    "move.arms": "query.mod.rn_anim_index > 0"
},
{
    "move.legs": "query.mod.rn_anim_index > 1"
}脚本控制如下:
python
comp = self.CreateComponent(entityId, "Minecraft", "queryVariable")
comp.Register("query.mod.rn_anim_index", 0)
comp.Set("query.mod.rn_anim_index", 1)修改动画控制器 
接口 
可以通过自定义动画控制器后,使用该接口添加到玩家。