游戏引擎架构----动画

Flag Engine(动画系统)学习笔记(八)——动画混合 动画混合(animation blending) 指能令一个以上的动画片段对角色最终姿势起作用的技术。混合是把两个或更多的输入姿势结合,产生骨骼的输出姿势。比如,通过混合负伤及无负伤的步行动画,我们可以生成二者之间不同负伤程度的步行动画。动画混合可用于对面部表情、身体站姿、运动模式等的极端姿势之间插值。 动画混合也可以用于求出不同时间点的两个已知姿势之间的姿势。通过在短时间段内把来源动画逐渐混合至目标动画,就能把某动画圆滑地过渡至另一动画。 线性混合插值 将两个骨骼姿势 ,通过线性插值找到它们 阅读详情
1.角色动画类型
  赛璐璐动画(cel animation):基于帧的,电子版本为精灵动画(sprite animation),可以设计成循环动画(looping animation) 
  刚性层阶式动画(rigid hierarchical animation):可能在关节处产生裂缝
  每顶点动画(per-vertex animation):网格添加动画,数据密集
  变形目标动画(morph target animation):极端的网格姿势+混合
  蒙皮动画(skinned animation):骨骼+皮肤

2.骨骼:
刚性关节(joint)的树形层级结构构成。骨骼只是关节间的空位,关节是动画师控制的
内存中存储:关节名字,父关节索引,关节绑定姿势的逆变换矩阵(蒙皮绑定时关节的姿势)

3. 姿势:
关节相对模型参考系的位置、定向和缩放。用矩阵或者SQT数据结构表示(缩放scale、四元数旋转quaternion、平移translation)
绑定姿势:参考姿势、放松姿势、T姿势
局部姿势:相对父关节的姿势,SQT表示。每个关节定义了一个坐标空间。把关节姿势变换Pj施于关节j坐标系表示的点时,得到的是父关节空间表示该点。即从子关节空间变换到父关节空间。Pj=P(j->parent(j))
全局姿势:在模型空间的姿势。从关节到根关节,乘以局部姿势得到。P2->m = P2->1*P1->0*P0->m

4. 动画片段(animation clip)
互动:动画
非互动:游戏内置电影(in-game cinematics IGC)、非交互连续镜头(non interactive sequence NIS)、全动视频(full motion video FMV)
半互动:快速反应事件(quick time event QTE)
动画片段的采样定义了连续函数。动画片段是 SQT组成的通道函数(channel funciton),通道函数是连续的。游戏引擎使用分段线性逼近的方法插值。
4.1 局部时间线:
时间:0-T
关键姿势(key pose)、关键帧+插值。t是实数,不一定是整数
时间比例(time scale):负值则动画倒转
帧:有时指一段时间,有时指一个时间点
采样(sample):代表时间点,那相应的时间可以指帧了。非循环动画:N帧有N+1个采样、循环动画:N帧有N个采样
相位(phase):归一化的时间,0表示开始,1表示结束
4.2 全局时间线:
播放动画:局部时间映射到全局时间。循环就使用模除。起始时间、播放速率/时间比例、循环次数、持续时间
同步动画时,由于通信系统的时间延迟,造成动画不同步。使用全局时钟可以同步动画,将动画的全局开始时间匹配即可。
4.3 动画重订目标(retarget):
动画通常只兼容特定骨骼,此技术可以让动画适用于不同骨骼
4.4 元通道(metachannel):
非关节通道,如事件触发器通道,定位器通道。
定位器用于记录游戏中物体的位置和方向,也是一个仿射变换。可以设置摄像机的位置和角度

5. 蒙皮
网格每个顶点可以绑定至一个或者多个关节,再加权平均
蒙皮矩阵(skinning matrix):把网格顶点从绑定姿势的位置变换至骨骼的当前姿势的位置。蒙皮顶点的位置在模型空间定义的,所以变换前后的位置都在模型空间。
     顶点在绑定至关节的位置时,在关节空间是不变的:顶点在模型空间的位置->顶点在关节空间的位置->关节变换->顶点回到模型空间
     假设只有一个关节:则绑定姿势的网格位置VmB, 关节在模型空间中的绑定姿势B,关节在模型空间中的当前姿势C可得到:VmB * B^-1 * C = VmC      ==>  蒙皮矩阵:B^-1 * C:绑定姿势的逆矩阵*目标姿势的变换矩阵 
矩阵调色板(matrix palette): 一系列矩阵,每个矩阵对应了关节j的蒙皮矩阵。将网格顶点关联的蒙皮矩阵取出,加权求和后,将顶点从绑定姿势位置变成目标姿势位置,由于C是每帧变化的,B^-1会缓存起来
将模型空间变化到世界空间:乘以矩阵Mm->w,可以预处理将B^-1*Mm->w缓存
动画实例(animation instancing):多个角色同时播放单个动画。此时不应该将B^-1*Mm->w缓存

6.动画混合(animation blending)
将多个动画片段混合,对角色最终姿势起作用
6.0 无需混合
核心姿势:站立、蹲下
确保每个动画片段都以某个核心姿势开始核心姿势结束,就无需混合
6.1 线性插值混合
linear interpolation(LERP),混合百分比、混合因子=[0,1]
姿势混合通常在局部进行
应用:
     时间混合
     动作连续性(淡入淡出):混合因子随时间按三次函数变化:缓出曲线(ease out curve)、缓入曲线(ease in curve)
          圆滑过渡:两个片段的混合因子都同时变换,同时播放
          冻结过渡:一个片段冻结,另一个片段一遍播放一遍增加混合因子
     方向性运动:
          轴转移动(pivotal movement):按轴旋转
          靶向移动(targeted movement):面朝着一个方向,身体朝不同地方移动。制作三个基本动画:朝前、朝左、朝右做一个半圆,按照移动方向和靶向的角度选择混合因子
复杂的线性插值混合:
     一维线性插值混合:多个片段的一维混合
     二维线性插值混合:三个一维混合可得:x轴方向两个,求出中间姿势,y轴方向使用前面的两个中间结果得到。
     三角形的二维线性插值混合:a,b, 1-a-b的加权混合
     泛化的二维插值混合:利用Delaunay三角剖分求出一组三角形,再找到对应的姿势所在的三角形,最后用三角形的二维线插值混合得到结果
6.2 骨骼分部混合:
达到一只手做A一只手做B的效果
通过允许不同关节有不同的混合百分比实现。
混合因子为0,1时可以实现 混合遮罩(blend mask)
6.3 加法混合(additive blending):
区别片段(difference clip)
来源片段(source clip) + 区别片段 = 参考片段
目标片段 : 任何动画,+ 区别片段 = 其他片段,也是加法混合的意义
来源于矩阵的乘法,除法
加法混合的应用
     移动噪声
     瞄准及注释:对最左最上最右制作区别动画,混合至向前动画就可以得到其他的瞄准动画。(可以利用时间轴lerp)

7. 后期处理
布娃娃
逆运动学(inverse kinematics IK): 输入是全局姿势,称为末端受动器,根据误差最小化求出局部姿势
正向运动学(forward kinematics FK):输入是一组局部姿势,输出是一个全局姿势以及每个关节的蒙皮矩阵。

8. 压缩技术
通道省略:移除平移通道,减少存储姿势
量化:减少存储为数。浮点数转化为n整数表示
采样频率减少
选择性载入

9. 动画系统
9.1 动画系统架构
动画管道(animation pipeline):动画片段和混合因子作为输入局部骨骼姿势作为输出
动作状态机(action state machine ASM)
动画控制器(animation controller):每个控制器通常父子一个类型的角色行为,如掩护、跑步。能提供高层次的动画管理接口
9.2 动画管道
片段解压以及姿势提取->姿势混合->全局姿势生成->后期处理->重新计算全局姿势->矩阵调色板生成
数据结构:
     共享资源数据(shared resource data):骨骼、蒙皮网格、动画片段。骨骼是中心,蒙皮绑定至骨骼,动画应用于骨骼
     每实体状态信息(per-instance data structure):动画片段的状态(局部时钟、播放速率)、混合方法、混合权重、局部姿势、全局姿势、矩阵调色板
混合方法:
     加权平均法
     混合树:将6变成树的结构,就是加法混和必须为一个叶子节点,而其他的混合可以而且是叶子节点和内节点。
淡入淡出:
     加权平均法:调整片段权重、将片段逻辑分组,调节组权重
     混合树:加入一个二叉混合节点,混合原来的树和新的树
9.3 动作状态机
每个状态对应一个任意复杂的动画片段集合,在混合树架构中状态对应一棵树、加权平均法中状态对应一系列权重何一组片段
过渡:定义状态间的过渡矩阵
过渡方法:跳转、淡入淡出(引入过渡状态节点 transitional state)
状态层:
     预备动作(anticipation):由一个部位引领其他部位的动作,即要独立操控不同部位,同时有多个状态出现
     引入状态层:每层在某一刻只有一个状态,不同层之间状态是独立的
9.4 约束
依附:依附点/定位器(locator):特殊的关节,仅仅为依附中的父子关系加入额外的变换
对准:多个角色参与一个动画
           利用定位器,使多个角色的动画中的定位器在世界空间内重合
解决滑步的方法:
  1. 动作提取:从动画中提取出每帧角色重心到局部空间原点的距离(利用元通道),作为速度参数来移动角色。同时将局部空间原点移动到此帧的角色重心处
     2. 脚步IK:脚接触地面时,记下其在世界空间的位置,我们用IK去调整腿的姿势,令脚能固定于正确位置
注视
掩护对准





自研游戏引擎动画系统设计:从数据层到执行层的四层架构 动画系统是游戏引擎中连接角色行为与实时渲染的核心中间件,其本质并非简单播放序列,而是涵盖数据采样、语义绑定、状态决策与多线程调度的完整技术栈。理解动画Clip作为时空函数的数学本质、Avatar作为骨骼语义翻译协议的作用、Animator Controller作为状态机编译器的运行机制,以及Runtime管线化执行对CPU/GPU协同的工程约束,是构建高性能动画系统的基础。尤其在开放世界ARPG等高并发场景下,Root Motion解耦、四元数球面插值、哈希加速关键帧检索、无锁双缓冲调度等关键技术,直接决定 阅读详情

相关推荐

机器学习系列(3)_逻辑回归应用之Kaggle泰坦尼克之灾

f作者: 寒小阳 &&龙心尘 时间:2015年10月。 出处: 声明:版权所有,转载请注明出处,谢谢。手把手机器学习之逻辑回归应用——Kaggle泰坦尼克之灾1.引言先说一句,年末双十一什么的一来,真是非(mang)常(cheng)欢(gou)乐(le)!然后push自己抽出时间来写这篇blog的原因也非常简单: 写完前两篇逻辑回归的介绍和各个角度理解之后,小伙伴们纷纷表示『好像很高级的样纸,

寒小阳 43万+

《游戏引擎架构》笔记十一

动画系统 角色动画的类型 赛璐璐动画:手绘动画 刚性层阶式动画:角色由一堆刚性部分建模,这些刚性部分以层阶式彼此约束。最大的问题:角色的身体在关节的位置产生碍眼的“裂缝”。 每顶点动画技术:存储随时间改变的顶点位置和法线。它是数据密集的技术,因为每个顶点随时间改变的动作信息都需要存储下来。因此实时游戏中很少使用。 变形目标动画: 移动网格顶点,仅制作相对少量的固定极端姿势,然后运行时...

weixin_34273046的博客 391

国产大模型高考横评:数学推理与教育落地能力实测

大模型能力评估正从开放榜单转向封闭任务的确定性验证,高考作为强逻辑、低容错、高精度的标准化考试,成为检验模型真实推理能力的理想标尺。其核心在于考察知识覆盖、步骤完整性、单位敏感性与教学对齐度,而非单纯答案正确率。数学解答题尤其凸显模型在前提校验、条件枚举与过程可控性上的差异,反映出训练数据与教育语料深度耦合带来的工程化优势。该范式已延伸至语文语感建模、英语表达习惯适配及理综跨学科缝合等场景,为智能阅卷、精准答疑和教培系统集成提供可复现、可解释、可部署的技术依据。

weixin_30436581的博客 287

UE5 自转+移动靶的实现

tick事件,设置本地旋转,速度由变量决定。

windwind2000的博客 502

C++中为什么要引入引用变量?

C++引用机制的设计哲学在于平衡性能与安全性。它解决了指针的三个痛点:语法噪音、空指针风险和语义模糊,同时保持了指针的效率优势。引用必须绑定有效对象且不可重绑定的特性增强了安全性,其值语义语法更直观。尤其在运算符重载和const引用场景中,引用展现了不可替代的优势。本质上,引用是编译器优化的指针实现,体现了C++"零开销抽象"的核心思想——既保持底层性能,又提供高级抽象。这种设计允许开发者根据场景灵活选择指针或引用,反映了C++多范式共存的语言智慧。

教学 & 技术专栏 175

数据库崩溃恢复机制:REDO日志与UNDO日志详解

在数据库管理系统中,事务的持久性和一致性是至关重要的。为了保证在系统崩溃或发生故障时数据不会丢失,数据库引入了恢复机制。其中,REDO日志和UNDO日志是两种关键的恢复技术。本文将详细描述这两种日志的作用、工作原理以及它们在数据库崩溃恢复中的应用。

My_wife_QBL的博客 1409

JavaScript(CSS)动画引擎汇总

汇总记录前端实现动画相关的库

缘如风的博客 745

在 Dify 平台部署一个 知识库问答(KBQA) 工作流

加强检索约束,Prompt 加限制(“仅基于知识库回答”):启用缓存,使用轻量级 LLM(如 Mistral-7B)(OpenAI Embedding、M3E、BGE等)(支持 PDF/TXT/Markdown/Word)(GPU/CPU 资源,用于向量数据库和模型推理)企业内部文档(PDF/Word/Excel)网页爬取数据(Markdown/HTML)分块大小(太小→信息碎片化,太大→噪声多)相似度阈值(太高→漏检,太低→噪声多)(是否返回正确文档)结构化数据(数据库/API)

井底小蛙的博客 1520

【GAMES104】Lecture2-游戏引擎五层架构

游戏引擎由工具架构和运行时组件组成(Tool+RunTime),继续细分又可以把运行时组件分为4层。故总体是五层架构。本文通过对这五层架构的功能进行简要概括和举例说明的方式来阐明游戏引擎的基本架构

Talk is cheap. So look at my blog. 6666

trae CN 配置ida的mcp教程

本文介绍了在TraeCN中配置IDA Pro MCP服务的完整步骤:1)准备IDA Pro 9.0+和Python 3.11+环境;2)安装MCP服务端并配置插件;3)生成MCP配置文件;4)在TraeCN中添加HTTP类型MCP服务(默认端口13337);5)测试连接。重点说明了HTTP配置方式的操作流程,包括手动启动服务、正确填写JSON配置等关键环节。

2401_87915504的博客 1955

无人机蜂群联合指挥作战技术详解

随着人工智能、通信技术、新材料等领域的不断进步,无人机蜂群联合指挥作战技术将迎来更加广阔的发展前景。未来,无人机蜂群将更加智能化、自主化,能够执行更加复杂、精细的作战任务。同时,加强国际合作,共同制定国际规则和标准,将是推动无人机蜂群技术健康发展的重要方向。无人机蜂群技术,是指通过先进的通信技术、自主导航与决策算法,将大量小型、低成本、功能各异的无人机组织成一个高度协同的群体,执行复杂多样的军事任务。2. 通信与数据链:采用高速、低延迟、抗干扰的通信技术,保障群体内无人机间的信息交换。

专注多旋翼、复合翼无人机技术研究,从事低空经济行业。 1546

[游戏引擎架构]第三部分:动画系统(4)动画

元通道 许多游戏容许在动画中加入额外的“元通道”数据,这些通道可以把游戏专用的信息编码,能够同时和动画同步,而又无须把这些信息以骨骼姿势存储 较常见的一种特殊通道是在多个时间点上存储事件触发器(Event Triggle);当动画的局部时间索引经过这些触发器时,触发器的事件便会交由游戏引擎进行处理。 ...

@Go Nowhere Fast 355

RandLA-Net Tensorrt 推理 c++

RandLA-Net 实现 Tensorrt 部署.

J。 1109

游戏引擎架构——【动画系统】阅读记录

character animation system The big problem with the rigid hierarchy technique is that the behavior of the character’s body is oft en not very pleasing due to “cracking” at the joints. per-vetex an...

Reed_Marshes 800

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

《游戏引擎架构》 笔记(二) 动画系统

博客搬家自http://zhouyuanchao.com/wordpress/archives/44 每顶点动画技术:存储随时间改变的顶点位置和法线 变形目标动画: 移动网格顶点,仅制作相对少量的固定极端姿势,然后运行时混合姿势,线性差值(LERP),常用于面部动画。 蒙皮动画 游戏引擎会限制每个顶点能绑定的关节数目,典型的限制为每顶点4个关节。 原因如下:首先,4个8位

一直被超越,从未被模仿 2007

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

[游戏引擎架构]第三部分:动画系统(1)

11.1角色动画的种类 1)Cel Animation(赛璐璐动画):始于2D游戏兴起,电子版成为精灵动画 2)刚性层阶式动画(rigid hierarchical animation): 层级骨骼系统的雏形,角色由一堆刚性部件建模组成-比如分拆成骨盘、躯干、上臂、下臂、大腿、小腿及头部 ,它们以层级形式相互约束,这种直接以关节进行动画,容易出现裂缝。毕竟单位太大了,以关节为基本单位 3)蒙皮动画:在蒙皮动画中,骨骼由刚性的关节所构建而成(这点类似于2));但是关节不再作为动画的最基本单位,...

@Go Nowhere Fast 840

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

《游戏引擎架构》 学习笔记(一)

《游戏引擎架构》是一本非常不错的关于游戏开发的入门书籍。这本书对游戏引擎进行了全面的概述,读完可以对游戏引擎有一个初步的认识,如果以后要从事游戏开发的工作的话,这本书就有必要认真地阅读了。游戏开发涉及的领域非常的广泛,但我们首先应该对游戏开发有一个整体,概要的理解,在此基础上再选择感兴趣的方向继续研究。第1章 导论本章的内容结构如下:典型游戏团队的结构工程师运行时程序员:制作引擎和游戏工具程序员:...

qq_35077043的博客 3894

unity引擎基础学习 各种控件,对象实战 动画和画面的添加 基础架构

unity引擎基础学习 各种控件,对象实战 动画和画面的添加 基础架构

killsime的博客 1655

游戏引擎架构

游戏引擎架构宣传语:迈向现代游戏之路完美入口 业界万众企盼 隆重推荐)作者:【美】Jason Gregory(杰森.格雷戈瑞) 著 译者:叶劲峰 译ISBN: 978-7-121-22288-7出版时间:2014年1月出版定价:128.00元 页数:800页开本:16开编辑推荐《游戏引擎架构》由游戏界传奇人物云风及“天天爱消除”团队倾情作序推荐,既是游戏工作者必读Bible,...

weixin_33969116的博客 137

零代码打造虚拟舞者:Bevy骨骼动画与动作捕捉全攻略

想要在游戏中创建栩栩如生的虚拟舞者吗?Bevy游戏引擎让这一切变得简单!作为基于Rust构建的现代化数据驱动游戏引擎,Bevy提供了强大的骨骼动画系统和动作捕捉功能,让你无需编写复杂代码就能实现专业级的角色动画效果。 ## 🎯 为什么选择Bevy进行骨骼动画开发? Bevy的**骨骼动画系统**设计优雅,完全遵循ECS(Entity-Component-System)架构。这意味着你可以轻松

gitblog_01032的博客 950

[游戏引擎架构]第三部分:动画系统(2)姿势Pose

11.3 姿势 Pose:组成动画的基本单位;动画以时间为播放依据,将30或60个姿势(帧)每秒的速率显示这些姿势,就能令角色看上去产生动感 绑定姿势: 即T-Pose;网格正常,没有蒙皮的(完全不涉及三角形网格渲染的姿势)姿势 ,又称参考姿势 局部姿势:描述相对于父的姿势 全局姿势:描述模型空间或者时间空间的关节姿势称为全局姿势 ...

@Go Nowhere Fast 511

[游戏引擎架构]第三部分:动画系统(5)蒙皮及生成矩阵调色板

11-5蒙皮及生成矩阵调色板 求蒙皮矩阵的诀窍: 了解在变换的过程中:顶点Mesh在关节空间的相对位置是不变的(对应于父与子关系);因此,将在绑定姿势(初始状态)下,将顶点从模型空间变换到绑定关节空间(仅讨论单关节条件)下,然后将绑定关节变换到当前姿势(此时作为父子关系的顶点自动完成变换),再将顶点还原到模型空间下即可。 ...

@Go Nowhere Fast 489

游戏引擎架构pdf

下载地址:网盘下载 内容简介 编辑 [1]《游戏引擎架构》同时涵盖游戏引擎软件开发的理论及实践,并对多方面的题目进行探讨。本书讨论到的概念及技巧实际应用于现实中的游戏工作室,如艺电及顽皮狗。虽然书中采用的例子通常依据一些专门的技术,但是讨论范围远超于某个引擎或API。文中的参考及引用也非常有用,可让读者继续深入游戏开发过程的任何特定方向。 《...

weixin_30915951的博客 358

游戏引擎架构 (Jason Gregory 著)

第一部分 基础 第1章 导论 第2章 专业工具 第3章 游戏软件工程基础 第4章 游戏所需的三维数学 第二部分 低阶引擎系统 第5章 游戏支持系统 第6章 资源及文件系统 第7章 游戏循环及实时模拟(已看) 第8章 人体学接口设备(HID) 第9章 调试及开发工具 第三部分 图形及动画 第10章 渲染引擎 第11章 动画系统 第12章 碰撞及刚体动力学 第四部分 游...

weixin_34010949的博客 4088

UntoldEngine:一个易于使用的开源3D游戏引擎

UntoldEngine:一个易于使用的开源3D游戏引擎 项目基础介绍和主要编程语言 UntoldEngine 是一个专为 iOS 和 macOS 设备设计的开源 3D 游戏引擎。该项目使用 Swift 编程语言编写,并利用 Metal 作为其图形库,旨在简化游戏开发过程,提供直观且易于使用的 API。 项目核心功能 UntoldEngine 的核心功能包括: 实体-组件-系统(ECS)架构:引...

gitblog_00120的博客 552

【《游戏引擎架构》提炼总结】(一)游戏是什么,游戏引擎架构导论

游戏引擎架构》一直被奉为游戏引擎方向的泰斗之作,难能可贵的是其不但内容翔实,可读性也非常强。往往三言两语就把艰深晦涩的知识点讲的清楚明白,可见作者及译者的功力深厚,笔者在读书过程中愈发觉得书中包罗万象,有必要为其做一个个人的总结提炼。...

趣伏里的博客 1473
上一篇: 游戏引擎架构----数学基础
下一篇: 声明
圆形毕露
博客等级 码龄17年 20粉丝 103原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值