
2021SC@SDUSC
文章平均质量分 53
kunnerrionce
这个作者很懒,什么都没留下…
展开
-
Flag Engine(动画系统)学习笔记(十三)——其他
2021SC@SDUSCPACK_BEGIN()template<typename T>struct StepCurveKeyframe由一组关键帧表示的动画样条,每个关键帧表示曲线的一个端点。将关键帧插入到自动生成的动画曲线中去,使动画更加流畅。struct StepCurveKeyframe{public: /// <summary> /// The time of the keyframe. /// </summary&g原创 2021-12-28 14:42:54 · 197 阅读 · 0 评论 -
Flag Engine(动画系统)学习笔记(十二)——其他
2021SC@SDUSCsing System;using System.Runtime.CompilerServices;using System.Runtime.InteropServices;namespace FlaxEngine{ partial class AnimationGraph { /// <summary> /// The custom attribute that allows to specify the原创 2021-12-28 14:25:51 · 210 阅读 · 0 评论 -
Flag Engine(动画系统)学习笔记(十一)——其他
2021SC@SDUSC// Copyright (c) 2012-2021 Wojciech Figat. All rights reserved.#pragma once#include "Engine/Scripting/ScriptingType.h"#include "Engine/Core/Delegate.h"class TaskGraphSystem;class AnimatedModel;class Asset;/// <summary>/// T原创 2021-12-28 14:03:54 · 347 阅读 · 0 评论 -
Flag Engine(动画系统)学习笔记(十)——动画系统架构
2021SC@SDUSC动画管道animation pipeline片断解压及姿式提取 姿式混合 全局姿式生成 后期处理 从新计算全局姿式 矩阵调色板生成游戏中每一个个别角色或物体有其每实体数据结构,但相同类型的角色或物体会共享一组资源数据。骨骼 蒙皮网络 动画片断尚未统一个方法表示每实例数据,可是几乎全部动画引擎都有下面记录:片断状态 局部时钟 播放速率 混合规格:描述哪些动画片断正在播放,以及这些片断如何混合在一块儿。 分部骨骼关节权重 局部姿.原创 2021-12-28 13:42:41 · 1341 阅读 · 0 评论 -
Flag Engine(动画系统)学习笔记(九)——压缩技术
2021SC@SDUSC压缩技术通道省略:动画数据一般包括10个浮点数据:平移translate(float x, float y, float z);旋转rotate(float qx, float qy, float qz, float qw);缩放scale(float x, float y, float z);如果每秒30个样本,那么每个关节需要4字节 * 10通道 * 30 = 1200字节的数据,若游戏含1000s的动画数据,那么需要110M+数据,多数游戏显然是不会有如此原创 2021-12-28 13:33:16 · 1556 阅读 · 0 评论 -
Flag Engine(动画系统)学习笔记(八)——动画混合
动画混合(animation blending)指能令一个以上的动画片段对角色最终姿势起作用的技术。混合是把两个或更多的输入姿势结合,产生骨骼的输出姿势。比如,通过混合负伤及无负伤的步行动画,我们可以生成二者之间不同负伤程度的步行动画。动画混合可用于对面部表情、身体站姿、运动模式等的极端姿势之间插值。动画混合也可以用于求出不同时间点的两个已知姿势之间的姿势。通过在短时间段内把来源动画逐渐混合至目标动画,就能把某动画圆滑地过渡至另一动画。线性混合插值将两个骨骼姿势,通过线性插值找到它们原创 2021-12-28 09:57:51 · 2228 阅读 · 0 评论 -
Flag Engine(动画系统)学习笔记(六)——动画片段
动画片段游戏角色的移动必须拆分成大量小粒度的动作。这些动作为动画片段。一般一个角色动作会拆成上千个片段,但是当角色进入游戏的非互动部分是例外。这部分称为非交互连续镜头(NIS)或全动视频(FMV)。局部时间线每个动画片段各自有一条局部时间线,使用自变量t表示时间线。t的每个值为时间索引。片段中一些时间点上有一些重要的姿势,这些姿势称为关键姿势或关键帧,然后计算机会采用线性或基于曲线的插值计算中间的姿势。动画片段的时间是连续的,在计算机中时间变量是实数(浮点数)而非整数。这样可以有足够的分辨率原创 2021-12-28 09:47:42 · 165 阅读 · 0 评论 -
Flag Engine(动画系统)学习笔记(七)——蒙皮及生成矩阵调色板
2021SC@SDUSC把三维网格顶点联系至骨骼的过称称为蒙皮。蒙皮用的网格是通过其顶点联系上骨骼的。每个顶点可绑定到一个或多个关节。若绑定至多个顶点,该顶点的位置为把它绑定到单一关节后的位置,再求其加权平均。每个顶点需要信息:该顶点绑定的(一个或多个)关节的索引; 对于绑定的每个关节,提供一个权重因子。游戏引擎会限制每个顶点能绑定的关节数目,典型的限制为每顶点4个关节。原因如下:首先,4个8位关节索引能方便地包裹为一个32位字,此外,每顶点使用2个、3个及4个关节所产生的质量很容易区分,原创 2021-12-28 09:40:10 · 355 阅读 · 0 评论 -
Flag Engine(动画系统)学习笔记(六)——动画片段
2021SC@SDUSC动画片段游戏角色的移动必须拆分成大量小粒度的动作。这些动作为动画片段。一般一个角色动作会拆成上千个片段,但是当角色进入游戏的非互动部分是例外。这部分称为非交互连续镜头(NIS)或全动视频(FMV)。局部时间线每个动画片段各自有一条局部时间线,使用自变量t表示时间线。t的每个值为时间索引。片段中一些时间点上有一些重要的姿势,这些姿势称为关键姿势或关键帧,然后计算机会采用线性或基于曲线的插值计算中间的姿势。动画片段的时间是连续的,在计算机中时间变量是实数(浮点数)而非原创 2021-12-28 09:32:26 · 1634 阅读 · 0 评论 -
Flag Engine(动画系统)学习笔记(五)——骨骼姿势
2021SC@SDUSC姿势绑定姿势这是三维网格绑定至骨骼之前的姿势,即把网格当做正常、未蒙皮、完全不涉及骨骼的三角形网格渲染的姿势。又称为参考姿势、放松姿势、T姿势。局部姿势关节姿势最常见的是相对于父关节来指定。相对父关节的姿势能令关节自然的移动。有时用局部姿势描述相对父的姿势。局部姿势几乎都是存为SQT格式。数学上,关节姿势就是一个仿射变换。 第j个关节姿势Pj可由平移矩阵Tj、放缩矩阵Sj、旋转矩阵Rj构成;整个骨骼姿势Pskel写成所有姿势Pj的集合。关节缩放.原创 2021-12-28 09:18:47 · 258 阅读 · 0 评论 -
Flag Engine(动画系统)学习笔记(四)——“骨骼姿势”前篇之四元数
2021SC@SDUSC在上一节中学习了关于骨骼的数据结构,接下来我们会继续学习在动画系统中,骨骼是如何相对某参考系进行收收放,平移和旋转的。而这也被称为骨骼(关节)的姿势。关节的姿势是通过SQT数据结构,一个4*3或4*4的矩阵表示(缩放,scale;四元数旋转,quaternion;矢量平移(方向,距离(坐标)),translation)。其中旋转是最复杂的一部分。矩阵旋转优点:旋转轴可以是任意向量;缺点:旋转其实只需要知道一个向量+一个角度,一共4个值的信息,但矩阵法却使用了1..原创 2021-12-28 08:56:38 · 775 阅读 · 0 评论 -
Flax Engine(动画系统)学习笔记(三)——骨骼
2021SC@SDUSC骨骼(skeleton)由刚性的关节(joint)层阶结构构成。(技术上来说,关节就是动画师直接控制的刚性物体,而骨头只是关节之间的空位。但通常来说,游戏引擎并不关注骨头,只关注关节,所以游戏业界内关节和骨头两个词,通常是相互替代的,当提到骨头时,一般也指代关节。)·骨骼阶层结构而骨骼的关节构成层阶结构(如学习笔记二的刚性层阶式动画),也即树结构。选择一个关节作为根,其他关节则是根关节的子孙。以下是人形角色的可能的例子:Pelvis(骨盆) LowerSpin原创 2021-12-12 18:05:46 · 583 阅读 · 0 评论 -
Flax Engine(动画系统)学习笔记(二)——动画类型
在开始分析学习有关Flax Engine的动画系统相关的源码之前,我们首先要对动画,特别是游戏当中的动画系统展开一定程度的了解,比如它是什么?在游戏制作中有着什么样的功能等等。原创 2021-12-12 16:35:33 · 1733 阅读 · 0 评论 -
Flax Engine学习笔记(一)——综述
2021SC@SDUSCFlax Engine是一款开源的轻量级游戏引擎,跨平台支持(Windows、Linux、Android、PS4.Switch、Xbox One、Xbox Series X/S、UWP...),是由游戏开发者为游戏开发者制作的一整套游戏开发工具。 官方网站:Flax - Flax Engine Flax Engine前身是由波兰的Wojtek Figat作为首席开发人员开发的Celelej,目前已更新到Flax1.2版本。Flax1....原创 2021-10-01 10:45:42 · 3194 阅读 · 0 评论