Files
netease-modsdk-wiki/docs/mcdocs/1-ModAPI/接口/方块/方块几何体模型.md
2025-03-18 14:46:12 +08:00

359 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
sidebarDepth: 1
---
# 方块几何体模型
## CombineBlockBetweenPosToGeometry
<span style="display:inline;color:#7575f9">客户端</span>
method in mod.client.component.blockGeometryCompClient.BlockGeometryCompClient
- 描述
根据输入的两个位置,搜索这两个位置之间的所有方块,并将这些方块合并和转换为能用于实体的几何体模型。
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| startPos | tuple(int,int,int) | 起始位置 |
| endPos | tuple(int,int,int) | 终点位置 |
| geometryName | str | 几何体模型的名称用于标识每个几何体模型相当于是该模型的id |
| unsupportedMode | int | 不支持方块处理方式枚举可选参数可输入的值为0、1。默认的值为0。如果方块调色板中有不支持转变为几何体的方块的话将按以下方式处理0跳过不支持的方块继续生成。1停止生成 |
| useStructureVoid | bool | 是否使用结构空位代替空气方块可选参数默认值为False。True表示使用结构空位False表示不使用结构空位。 |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| BlockPaletteComponent | 返回合并过程中生成的方块调色板实例如创建失败则返回None |
- 备注
- 如果之前已经拥有一个相同名称几何体模型合并出来的新模型会覆盖之前的模型。因此需要注意每次合并不同外观的模型时geometryName都应该互不相同。
- 如果每次合并的模型都是外观相同的模型则我们建议使用相同的geometryName,以节省存储模型的内存。当然,最优的情况下是尽量复用之前已经创建的方块几何体模型,而不是重复合并新的模型。
- 目前尚不支持的方块类型有 (后续版本将陆续支持)
1. 自定义方块实体外观(见开发指南-玩法开发-自定义游戏内容-自定义方块-自定义方块实体外观)
2. 微缩方块(见开发指南-玩法开发-自定义游戏内容-微缩方块)
3. 火方块,水方块
4. 花盆
5.
6. 末地传送门,末地折跃门
7. 屏障
8. 潮涌核心
9. 旗帜
- 示例
```python
import mod.client.extraClientApi as clientApi
blockGeometryComp = clientApi.GetEngineCompFactory().CreateBlockGeometry(levelId)
palette = blockGeometryComp.CombineBlockBetweenPosToGeometry((200,64,200),(201,65,202),"my_block_geometry")
```
## CombineBlockFromPosListToGeometry
<span style="display:inline;color:#7575f9">客户端</span>
method in mod.client.component.blockGeometryCompClient.BlockGeometryCompClient
- 描述
根据输入的方块位置列表,搜索这些位置的所有方块,并将这些方块合并和转换为能用于实体的几何体模型。
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| posList | list(tuple(int,int,int)) | 方块位置列表 |
| geometryName | str | 几何体模型的名称用于标识每个几何体模型相当于是该模型的id |
| unsupportedMode | int | 不支持方块处理方式枚举可选参数可输入的值为0、1。默认的值为0。如果方块调色板中有不支持转变为几何体的方块的话将按以下方式处理0跳过不支持的方块继续生成。1停止生成 |
| useStructureVoid | bool | 是否使用结构空位代替空气方块可选参数默认值为False。True表示使用结构空位False表示不使用结构空位。 |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| BlockPaletteComponent | 返回合并过程中生成的方块调色板实例如创建失败则返回None |
- 备注
- 如果之前已经拥有一个相同名称几何体模型合并出来的新模型会覆盖之前的模型。因此需要注意每次合并不同外观的模型时geometryName都应该互不相同。
- 如果每次合并的模型都是外观相同的模型则我们建议使用相同的geometryName,以节省存储模型的内存。当然,最优的情况下是尽量复用之前已经创建的方块几何体模型,而不是重复合并新的模型。
- 目前尚不支持的方块类型有 (后续版本将陆续支持)
1. 自定义方块实体外观(见开发指南-玩法开发-自定义游戏内容-自定义方块-自定义方块实体外观)
2. 微缩方块(见开发指南-玩法开发-自定义游戏内容-微缩方块)
3. 火方块,水方块
4. 花盆
5.
6. 末地传送门,末地折跃门
7. 屏障
8. 潮涌核心
9. 旗帜
- 示例
```python
import mod.client.extraClientApi as clientApi
blockGeometryComp = clientApi.GetEngineCompFactory().CreateBlockGeometry(levelId)
palette = blockGeometryComp.CombineBlockFromPosListToGeometry([(200,64,200),(201,65,202)],"my_block_geometry")
```
## CombineBlockPaletteToGeometry
<span style="display:inline;color:#7575f9">客户端</span>
method in mod.client.component.blockGeometryCompClient.BlockGeometryCompClient
- 描述
将BlockPalette中的所有方块合并并转换为能用于实体的几何体模型。
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| blockPalette | BlockPaletteComponent | 方块调色板由GetBlockPaletteBetweenPos以及GetBlockPaletteFromPosList接口获取 |
| geometryName | str | 几何体模型的名称用于标识每个几何体模型相当于是该模型的id。 |
| unsupportedMode | int | 不支持方块处理方式枚举可选参数可输入的值为0、1。默认的值为0。如果方块调色板中有不支持转变为几何体的方块的话将按以下方式处理0跳过不支持的方块继续生成。1停止生成 |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| str | 生成成功后返回几何体模型的名称生成失败返回None。几何体模型名称与输入的参数geometryName一致。 |
- 备注
- 如果之前已经拥有一个相同名称几何体模型合并出来的新模型会覆盖之前的模型。因此需要注意每次合并不同外观的模型时geometryName都应该互不相同。
- 如果每次合并的模型都是外观相同的模型则我们建议使用相同的geometryName,以节省存储模型的内存。当然,最优的情况下是尽量复用之前已经创建的方块几何体模型,而不是重复合并新的模型。
- 目前尚不支持的方块类型有 (后续版本将陆续支持)
1. 自定义方块实体外观(见开发指南-玩法开发-自定义游戏内容-自定义方块-自定义方块实体外观)
2. 微缩方块(见开发指南-玩法开发-自定义游戏内容-微缩方块)
3. 火方块,水方块
4. 花盆
5.
6. 末地传送门,末地折跃门
7. 屏障
8. 潮涌核心
9. 旗帜
- 示例
```python
import mod.client.extraClientApi as clientApi
blockComp = clientApi.GetEngineCompFactory().CreateBlock(levelId)
palette = blockComp.GetBlockPaletteBetweenPos((200,64,200),(201,65,202))
blockGeometryComp = clientApi.GetEngineCompFactory().CreateBlockGeometry(levelId)
geometryName = blockGeometryComp.CombineBlockPaletteToGeometry(palette,"my_block_geometry")
print geometryName
```
## EnableActorBlockGeometryTransparent
<span style="display:inline;color:#7575f9">客户端</span>
method in mod.client.component.actorRenderCompClient.ActorRenderCompClient
- 描述
设置是否允许实体的方块几何体模型产生透明度,允许开启后通过调节方块几何体的透明度将会使得方块几何体模型变得透明。
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| geometryName | str | 几何体模型的名称用于标识每个几何体模型相当于是该模型的id。 |
| enable | bool | 是否允许实体的方块几何体模型产生透明度True表示允许False表示不允许。 |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| bool | 设置是否成功成功返回True失败返回False。 |
- 示例
```python
import mod.client.extraClientApi as clientApi
actorRenderComp = clientApi.GetEngineCompFactory().CreateActorRender("-4294967295")
# 允许方块几何体模型产生透明度
print actorRenderComp.EnableActorBlockGeometryTransparent("my_block_geometry", True)
# 调节方块几何体模型的透明度为0.5
print actorRenderComp.SetActorBlockGeometryTransparency("my_block_geometry", 0.5)
```
## GetActorBlockGeometryScale
<span style="display:inline;color:#7575f9">客户端</span>
method in mod.client.component.actorRenderCompClient.ActorRenderCompClient
- 描述
获取实体的方块几何体模型的缩放倍率。
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| geometryName | str | 几何体模型的名称用于标识每个几何体模型相当于是该模型的id |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| tuple(float,float,float) | 获取成功返回缩放方块几何模型在x,y,z各个轴上的缩放值失败返回None。 |
- 示例
```python
import mod.client.extraClientApi as clientApi
actorRenderComp = clientApi.GetEngineCompFactory().CreateActorRender("-4294967295")
print actorRenderComp.GetActorBlockGeometryScale("my_block_geometry")
```
## SetActorBlockGeometryOffset
<span style="display:inline;color:#7575f9">客户端</span>
method in mod.client.component.actorRenderCompClient.ActorRenderCompClient
- 描述
设置实体的方块几何体模型的位置偏移。
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| geometryName | str | 几何体模型的名称用于标识每个几何体模型相当于是该模型的id |
| offset | tuple(float,float,float) | 方块几何体模型相对实体的位置偏移值,默认为(0, 0, 0)。 |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| bool | 设置是否成功成功返回True失败返回False。 |
- 示例
```python
import mod.client.extraClientApi as clientApi
actorRenderComp = clientApi.GetEngineCompFactory().CreateActorRender("-4294967295")
print actorRenderComp.SetActorBlockGeometryOffset("my_block_geometry", (1,1,1))
```
## SetActorBlockGeometryRotation
<span style="display:inline;color:#7575f9">客户端</span>
method in mod.client.component.actorRenderCompClient.ActorRenderCompClient
- 描述
设置实体的方块几何体模型的旋转角度。
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| geometryName | str | 几何体模型的名称用于标识每个几何体模型相当于是该模型的id |
| rotation | tuple(float,float,float) | 方块几何体模型相对实体的旋转角度,默认为(0, 0, 0)分别表示绕x,y,z轴的旋转角度旋转顺序按z,x,y顺序旋转。 |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| bool | 设置是否成功成功返回True失败返回False。 |
- 示例
```python
import mod.client.extraClientApi as clientApi
actorRenderComp = clientApi.GetEngineCompFactory().CreateActorRender("-4294967295")
print actorRenderComp.SetActorBlockGeometryRotation("my_block_geometry", (90,0,0))
```
## SetActorBlockGeometryScale
<span style="display:inline;color:#7575f9">客户端</span>
method in mod.client.component.actorRenderCompClient.ActorRenderCompClient
- 描述
设置实体的方块几何体模型的缩放倍率。
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| geometryName | str | 几何体模型的名称用于标识每个几何体模型相当于是该模型的id |
| scale | tuple(float,float,float) | 方块几何模型在x,y,z各个轴上的缩放值。 |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| bool | 设置是否成功成功返回True失败返回False。 |
- 示例
```python
import mod.client.extraClientApi as clientApi
actorRenderComp = clientApi.GetEngineCompFactory().CreateActorRender("-4294967295")
print actorRenderComp.SetActorBlockGeometryScale("my_block_geometry", (0.5, 0.5, 0.5))
```
## SetActorBlockGeometryTransparency
<span style="display:inline;color:#7575f9">客户端</span>
method in mod.client.component.actorRenderCompClient.ActorRenderCompClient
- 描述
设置实体的方块几何体模型的透明度。注意只有调用接口EnableActorBlockGeometryTransparent开启了方块几何体模型的透明度后该接口才会生效。
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| geometryName | str | 几何体模型的名称用于标识每个几何体模型相当于是该模型的id。 |
| transparent | float | 方块几何体模型的透明度,范围值为[0,1]超过这个范围的值将会被截取为0或1。 |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| bool | 设置是否成功成功返回True失败返回False。 |
- 示例
```python
import mod.client.extraClientApi as clientApi
actorRenderComp = clientApi.GetEngineCompFactory().CreateActorRender("-4294967295")
# 允许方块几何体模型产生透明度
print actorRenderComp.EnableActorBlockGeometryTransparent("my_block_geometry", True)
# 调节方块几何体模型的透明度为0.5
print actorRenderComp.SetActorBlockGeometryTransparency("my_block_geometry", 0.5)
```