关于模型(网络)

[最近更新时间:2019/11/07]

 

 

关于编辑模型信息

模型信息基本上是由 Modeler 创建的。
.moc3文件中记录了顶点等关于参数的移动。
附加到图形网格的其他物理操作和用户数据作为单独的文件输出。
.model3.json 文件跟踪模型的所有文件引用。

从 Modeler 输出 .moc3文件时,可以同时输出。“导出嵌入数据”
您还可以使用 Cubism Viewer (for OW)追加运动、面部表情文件和姿势文件的内置设定。

 

使用框架从 .model3.json 文件中读取

使用 Framework 加载时,从 .model3.json 文件中提取模型所需的信息,然后
假设将维护和使用继承 CubismUserModel 类的实例。

ICubismModelSetting 类中提取的每个元素都可以由 CubismUserModel.load ~~ 系统函数加载。

.model3.json 文件的整体负载流来自示例中的 LAppModel.loadAssets 函数
按照 LAppModel.setupModel 函数、CubismUserModel.createRenderer 函数和 LAppModel.setupTextures 函数的流程很容易理解。

 

创建实例(读取 .moc3文件)

首先,将 .moc3文件加载到内存中。
将读取缓冲区和大小传递给 CubismMoc.create 函数,并首先创建一个 CubismMoc 实例。
然后调用 CubismMoc.createModel 函数来创建一个 CubismModel 实例。
从这个 CubismModel 实例中,您可以操作参数并获取绘图信息。

 

 

图形环境协会

框架使用从 CubismRenderer 类派生的类,以便模型的纹理信息不依赖于图形 API。
所有与模型相关的图形相关信息都由派生自 CubismRenderer 类的类管理。
为图形 API 生成从 CubismRenderer 类派生的类,并
通过使用 CubismRenderer_WebGL.initialize 函数注册 CubismModel 实例,CubismRenderer 实例和 CubismModel 实例被链接。

 

 

纹理关联

Framework 中模型的纹理由 CubismRenderer 类的派生类管理。
但是,该方法没有在 CubismRenderer 类中注册,因为它的功能避免了对图形 API 的依赖。
请注意,方法规范会根据目标图形 API 的不同而有所不同。
在 WebGL 处理中,它是使用 CubismRenderer_WebGL 类中的 CubismRenderer_WebGL.bindTexture 函数注册的,该类是 CubismRenderer 类的派生类。
第一个参数可以通过Editor上的模型纹理号和纹理集号来确认。
第二个参数是纹理的 WebGL 控制编号。

下面的示例是在 WebGL 中加载纹理。

 

 

指定显示位置和大小

您可以使用到目前为止的设定绘制模型,
在很多情况下,显示位置和比例尺相差太大而无法在屏幕上显示。
有关 csmGetDrawableVertexPositions 函数返回的顶点范围,请参阅“DrawableVertexPositions 范围”
使用 CubismModelMatrix 类、CubismModel.getCanvasWidth 和 getCanvasHeight 函数来调整大小。

这个矩阵在绘制前乘以Projection矩阵,作为MVP矩阵传递给渲染器。

 

 

 

顶点更新

执行 CubismModel.update 函数,将 CubismModel 实例的参数操作反映在图形网格的顶点上。

 

 

绘画

绘图不是从 CubismModel 实例执行的,而是被指示给关联的渲染器。

 

 

在 CubismModel 类中使用模型中不存在的参数 ID

在CubismModel类的参数和部件不透明度的操作中,有一个函数可以处理.moc3文件中不存在的ID。
该函数被 CubismMotion 类、CubismPose 类等使用。
使用它创建新机制时,请注意您使用的 ID,以免与现有功能冲突。
另外,请记住,当您阅读框架时,您可能会使用创建的参数来处理其他功能。
* 访问不存在的最大值、最小值和初始值时会出错。

 

© 2010 - 2022 Live2D Inc.