
  <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
      <title>翡翠梦境</title>
      <link>https://supervj.top/blog</link>
      <description>游戏开发者的个人博客，记录 Unreal Engine、图形学和独立项目中的技术与思考。</description>
      <language>zh-cn</language>
      <managingEditor> (东哥)</managingEditor>
      <webMaster> (东哥)</webMaster>
      <lastBuildDate>Wed, 27 Aug 2025 00:00:00 GMT</lastBuildDate>
      <atom:link href="https://supervj.top/feed.xml" rel="self" type="application/rss+xml"/>
      
  <item>
    <guid>https://supervj.top/blog/DebugUI的一些优化方案</guid>
    <title>DebugUI的一些优化方案</title>
    <link>https://supervj.top/blog/DebugUI的一些优化方案</link>
    <description>## 前言 游戏中经常会有需要一些调试菜单或者GM菜单，如下 功能上没有太大的问题，但是大面积的UI会非常影响游戏内容的观察，甚至并不能与游戏画面的同时运行 那么整理并记录一下更便捷的UI方案 ## 纯粹的编辑器UI 方案是打开一个EU(EditorUtility)，然后监听或者执行游戏内的逻辑和信</description>
    <pubDate>Wed, 27 Aug 2025 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>gameplay</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/GASDebugger</guid>
    <title>GAS调试插件：GASDebugger</title>
    <link>https://supervj.top/blog/GASDebugger</link>
    <description>## GASDebugger 如上图，GAS自带的DebugUI很不好用 以上是GASDebugger界面 在windows页面下的底部会有启动按钮 游戏运行以后，插件会尝试自动识别场景内拥有技能组件的玩家，如没有识别到或者玩家类是延迟创建的，那需要手动选择一下（可以选择所有对象包括怪物） 选中以后</description>
    <pubDate>Wed, 30 Jul 2025 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>GAS</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/DataTable优化方案</guid>
    <title>DataTable优化方案</title>
    <link>https://supervj.top/blog/DataTable优化方案</link>
    <description>## 前言 ## 目标 - 自动加载 - 更简单的方式查询数据 - 需要支持cpp和蓝图 ## CPP 创建一个Setting类存储所有需要加载的表格 用一个引擎子系统加载和保存所有表格 核心其实是用数据类型的哈希作为键来保存到Map中，这样就可以用模板的方式查询 这里是包到了一个函数库中去，其实也</description>
    <pubDate>Tue, 14 Jan 2025 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>优化</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/UE5顶点动画方案</guid>
    <title>UE5顶点动画方案</title>
    <link>https://supervj.top/blog/UE5顶点动画方案</link>
    <description>## 前言 UE5为了黑客帝国的样片增加了内置顶点动画插件，另外第三方也有相对比较成熟的顶点动画工具 本文分析并记录一下 ## Anim To Texture UE从5.0开始跟随者Mass更新了这个插件，不过一直到5.4也一直处于实验性功能 并且没有文档 开启插件以后，并没有什么特殊的提示和菜单</description>
    <pubDate>Tue, 17 Dec 2024 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>动画</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/Control Rig_藤编植物</guid>
    <title>Control Rig:藤编植物</title>
    <link>https://supervj.top/blog/Control Rig_藤编植物</link>
    <description>## 前言 用Control Rig为主来制作一个藤编植物的攻击行为 ## **需求** - **攻击行为的时候需要需要动态的指定打击点** - 特定时间段需要跟随玩家平滑旋转 - 是否可以增加物理动态效果？ ## 攻击方案 - 旋转骨骼 - IK - 其他 ### 旋转骨骼 https://www</description>
    <pubDate>Fri, 06 Dec 2024 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>动画</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/动画蓝图更新时序问题</guid>
    <title>动画蓝图IK更新时序问题</title>
    <link>https://supervj.top/blog/动画蓝图更新时序问题</link>
    <description>## 前言 假设你人物双手开启了IK，然后这个IK数据来自于武器模型上的某个骨骼，这在FPS游戏中是很常见的情况，正常情况下，你会发现人物双手的位置永远是有延迟的，像卡顿一样 ## 测试案例 - 玩家角色 BP_TestChar - 玩家模型ABP ： ABP_Arms - 武器蓝图：BP_Test</description>
    <pubDate>Tue, 21 May 2024 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>动画</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/相机更新</guid>
    <title>相机更新</title>
    <link>https://supervj.top/blog/相机更新</link>
    <description>## 前言 ## 顺序 相机的更新从World::Tick 开始 在更新完所有常见Group组，并且更新完Timer后，再更新PlayerController::UpdateCameraManager 所以第一个重点，相机更新的时序位于几乎所有其他场景对象的tick的后面 后面就到了CameraMa</description>
    <pubDate>Mon, 20 May 2024 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>gameplay</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/Lyra_GameExperience</guid>
    <title>Lyra技术分析：GameExperience</title>
    <link>https://supervj.top/blog/Lyra_GameExperience</link>
    <description>## 前言 如何基于Lyra的项目快速配置一个角色，该流程的起点是GameExperience对象，本文对此进行简单的分析 ## 名词解释 - ULyraExperienceDefinition ：主要的配置资源，继承自PrimaryDataAsset，简称DA - ULyraPawnData: D</description>
    <pubDate>Mon, 25 Mar 2024 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>gameplay</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/MMD</guid>
    <title>MMD动画在UE5的使用</title>
    <link>https://supervj.top/blog/MMD</link>
    <description>## 前言 先科普一下啥是MMD, MMD全称*MikumikuDance*, 这个Miku就是初音未来, 再引用wiki介绍 **MikuMikuDance**（通常缩写为**MMD**）是一款免费 动画程序，可让用户制作动画并创建 3D 动画电影，最初是为Vocaloid 角色初音未来 制作的</description>
    <pubDate>Wed, 06 Dec 2023 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>动画</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/Lyra技能输入</guid>
    <title>Lyra技术分析:输入方式与GAS技能触发</title>
    <link>https://supervj.top/blog/Lyra技能输入</link>
    <description>## 前言 本文研究一下Lyra技能系统的输入方式触发方式 ## ## 传统的GAS技能触发方式 GAS中每个技能(GA)通过UAbilitySystemComponent::GiveAbility(const FGameplayAbilitySpec&amp; Spec)添加 在这个spec里面有一个in</description>
    <pubDate>Thu, 16 Nov 2023 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>gameplay</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/Lyra_动画</guid>
    <title>Lyra技术分析:角色动画</title>
    <link>https://supervj.top/blog/Lyra_动画</link>
    <description>## 前言 本文记录一下笔者分析并模仿制作Lyra动画系统的过程和心得, 由于系统非常庞大, 所以会逐步更新记录 下面所有图片均来自自制工程(自己做一遍才能更好的了解当中的细节) - 2023.11.16 包含8方向位移, Turn In Place,Jump, Aim ## 动画框架 首先要围绕几</description>
    <pubDate>Tue, 14 Nov 2023 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>动画</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/UE5适配Pico</guid>
    <title>UE5搭建Pico开发环境</title>
    <link>https://supervj.top/blog/UE5适配Pico</link>
    <description>## 前言 UE本身不支持Pico开发, 需要手动搭建开发环境,本文简单记录 ## 安装插件 Pico的SDK是已UE插件的形式安装的, 直接到官网下砸 文档提示有4个插件, 实际下到3个插件, 没看到PicoSpatialAudio 另外, 开发时肯定需要在编辑器预览, 这个默认也不支持, 需要下</description>
    <pubDate>Tue, 26 Sep 2023 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>VR</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/本地化</guid>
    <title>UE5本地化</title>
    <link>https://supervj.top/blog/本地化</link>
    <description>## 前言 本地化一般指的是文本的本地化, UE5的本地化工具保持了UE4的风格, 当然, 文档也一如既往的渣渣, 本文对本地化进行一点的记录 ## 使用 上图为UE5的入口, 打开以后的界面如下, 我们主要关注红色框框部分 ### 代码文件 GatherFromTextFile针对的是代码中的FT</description>
    <pubDate>Tue, 12 Sep 2023 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>引擎</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/UE5动画重定向</guid>
    <title>UE5动画重定向</title>
    <link>https://supervj.top/blog/UE5动画重定向</link>
    <description>## 前言 UE5的动画重定向已经使用了全新的方式, 在经历了EA版的重重bug后, 在5.1和5.2上基本已经成熟, 官方文档有大致使用方式的说明, 但是对一些细节方面还是缺乏说明, 导致刚开始使用时会走不少弯路; 本文对官方文档流程进行一些补充 5.2文档参考 IK Rig编辑器 IK Rig重</description>
    <pubDate>Mon, 21 Aug 2023 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>动画</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/PSO</guid>
    <title>PSO入门和踩坑史</title>
    <link>https://supervj.top/blog/PSO</link>
    <description>## 前言 **管线状态对象**（PSO）缓存工具可用于减轻虚幻引擎4关卡加载内容块时出现的卡顿, 比如在进游戏第一次开枪, 开枪的火花特效就会造成卡顿 这些现象在性能较弱的移动端尤其明显 本文简单记录一下PSO的整个流程, 目标平台Meta Quest2(Android), 版本4.27-plus</description>
    <pubDate>Thu, 02 Mar 2023 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>特效</category><category>优化</category><category>移动</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/AI_Percenption</guid>
    <title>AI_Perception</title>
    <link>https://supervj.top/blog/AI_Percenption</link>
    <description>## 前言 AI感知是UE自带的一个用于AI发现目标的功能, 使用起来不算麻烦, 本文简单记录一下此模块的内容, 并研究一部分源码看看是否有啥坑 /手动狗头 感知模块最核心的就是感知组件3个事件, 能返回检测到的Actor以及部分参数 整个模块基本围绕着这一点展开 ## 类之间的关系 - AISys</description>
    <pubDate>Wed, 01 Feb 2023 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>AI</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/用UMG代替Slate编辑常见插件的界面</guid>
    <title>用UMG代替Slate编辑常见插件的界面</title>
    <link>https://supervj.top/blog/用UMG代替Slate编辑常见插件的界面</link>
    <description>## 前言 用过Slate的同学都知道, 这玩意儿有多难用, 可读性差, 编译还贼慢, 那么能不能用UMG来代替Slate扩展和编写编辑器界面呢? 在一定程度上是可以实现的, 我们以UE默认的几种插件来简单介绍一下 UE4与UE5在编辑器扩展方面有很大区别, 以下会提到一些, 本文以目前最新的UE5</description>
    <pubDate>Mon, 16 Jan 2023 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>Slate</category><category>编辑器扩展</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/Valve Index按键与事件</guid>
    <title>Valve Index按键与事件</title>
    <link>https://supervj.top/blog/Valve Index按键与事件</link>
    <description>## 前言 ## Grip(抓握) Index 的Grip有3个分类 - Axis: 根据抓握的力度得到0-1的值, 比较敏感, 如果用到Action的话, 非常容易触发 - Force: 需要用力抓握才能得到反馈, 手柄默认会有一个轻微的震动 - Grab: 敏感度介于前面两者之间的抓握 如果用于</description>
    <pubDate>Wed, 30 Nov 2022 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>VR</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/VR：MotionController与插件</guid>
    <title>VR:MotionController与插件</title>
    <link>https://supervj.top/blog/VR：MotionController与插件</link>
    <description>## 前言 VR设备种类繁多, 而且因为OpenXR的推出, 各种设备都有自家版本和OpenXR版本的插件, 当中也有很多差异, 所以本文记录一下开发VR时, MotionController与插件之间的关系 我们以4.27Plus版本引擎测试, 创建默认的VR模板项目 看到插件页面, 模板统一使用</description>
    <pubDate>Wed, 23 Nov 2022 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>VR</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/资源汇总</guid>
    <title>资源汇总</title>
    <link>https://supervj.top/blog/资源汇总</link>
    <description>## 前言 网盘查找太过于繁琐， 不如记录到文档中 密码私聊 ## 模型 ### 人形角色 #### Etasphera85 ### Sci-fi Samurai Robot https://www.unrealengine.com/marketplace/zh-CN/product/sci-fi-</description>
    <pubDate>Sat, 24 Sep 2022 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>资源</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/虚拟相机</guid>
    <title>虚拟相机的简单使用</title>
    <link>https://supervj.top/blog/虚拟相机</link>
    <description>## 前言 基于LiveLink和UDP的像素流传输, 简单展示效果, 下面视频是通过TakeRecorder录制的过场动画 官方文档 https://docs.unrealengine.com/5.0/zh-CN/virtual-cameras-in-unreal-engine/ 友情提示, **</description>
    <pubDate>Thu, 15 Sep 2022 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>VR</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/FBX模型打组问题</guid>
    <title>UE导入导出FBX的打组问题</title>
    <link>https://supervj.top/blog/FBX模型打组问题</link>
    <description>## 前言 已知UE导出FBX模型以后, 会将Mesh和Joints打成一个组, 如下图 这个组的存在会影响美术工作, K动画时是需要将这个组给删掉的, 也就是模型和骨架与组接触父子关系, 如果组有相对变换, 那么这个时候模型可能还会发生旋转 比如下图 所以现在的问题是如何有效的解决这个问题? 先大</description>
    <pubDate>Sat, 10 Sep 2022 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>模型</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/用蓝图扩展ToolBar</guid>
    <title>蓝图扩展ToolBar</title>
    <link>https://supervj.top/blog/用蓝图扩展ToolBar</link>
    <description>## 前言 以前写过一篇文章 编辑器扩展：自定义菜单栏 现在发现蓝图也可以在某些功能上代替cpp来扩展工具栏, 这样当然是非常方便的, 谁用Slate谁都一个头两个大 这里来简单尝试一下 ## 使用方式 开始之前先打开编辑器偏好设置里的一个选项, 方便我们观察UI的分类 接着我们需要先给项目加一个配</description>
    <pubDate>Fri, 22 Jul 2022 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>编辑器扩展</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/UE5新特性：DataRegistry</guid>
    <title>UE5新特性:Data Registry</title>
    <link>https://supervj.top/blog/UE5新特性：DataRegistry</link>
    <description>## 序 UE5多了一个叫做DataRegistry(下称DR)的东西, 目前处于实验性功能, 看着名字像是类似DataAsset类似的东西, 研究了一番发现这个是一个还不错的与DataTable配合使用的东西 UE文档有一个聊胜于无的文档, 看了比没看.....也没好多少(还有点误导作用) 文档链</description>
    <pubDate>Tue, 14 Jun 2022 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>资源</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/物理材质的深入思考</guid>
    <title>物理材质的深入思考</title>
    <link>https://supervj.top/blog/物理材质的深入思考</link>
    <description>## 序 以静态模型举例, 物理材质是配置在两个地方, 两个地方跟检测方式有关 如果是复杂检测的, 那么物理材质配置在每个材质内, 这个比较精确, 但是开销是非常感人的, 特别是有些次世代模型动辄上百万面 如果是简单检测, 物理材质是统一跟着模型走的, 也就是一个模型不管你配置了多少个碰撞盒子, 物</description>
    <pubDate>Tue, 31 May 2022 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>物理</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/动态创建Texture2D</guid>
    <title>动态创建Texture2D</title>
    <link>https://supervj.top/blog/动态创建Texture2D</link>
    <description>直接贴代码</description>
    <pubDate>Sun, 22 May 2022 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>资源</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/碰撞和检测</guid>
    <title>细说UE的碰撞与检测</title>
    <link>https://supervj.top/blog/碰撞和检测</link>
    <description>## 序 本文从应用角度分析一下UE的碰撞和检测系统, 模型主要看静态模型即StaticMesh, 骨骼模型涉及到物理资产的使用和编辑, 本文暂不做分析 **目录** - 碰撞类型 - 碰撞响应 - 射线通道和射线检测 - 简单碰撞和复杂碰撞 - 碰撞编辑 - 其他检测 - 关于Custom ##</description>
    <pubDate>Thu, 28 Apr 2022 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>物理</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/动画通知</guid>
    <title>动画通知深入分析</title>
    <link>https://supervj.top/blog/动画通知</link>
    <description>## 前言 本文通过源码对动画通知进行深入分析 ## Notify 动画通知先从Notify开始看, 这里先看默认的**Queue**即队列类型的通知, **BranchPoint**的通知最后再看 先看调用栈, 一般的通知都是到TriggerSingleAnimNotify()触发, 当然还有蒙太</description>
    <pubDate>Tue, 19 Apr 2022 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>动画</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/数学随笔</guid>
    <title>UE4中的数学随笔</title>
    <link>https://supervj.top/blog/数学随笔</link>
    <description>## 前言 记录UE开发时常用的数学方法 ## 三角函数 ### 特殊角 ### 几何性质 ### 公式 | 公式1 | 公式2 | | -------------------- | ------------------- | | *sin（2kπ+α）=sin α* | *sin（π+α）=-si</description>
    <pubDate>Mon, 11 Apr 2022 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>数学</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/RootMotionSource</guid>
    <title>RootMotionSource原理分析和插件封装</title>
    <link>https://supervj.top/blog/RootMotionSource</link>
    <description>## 前言 说到Root Motion, 通常会想到的是Root Motion Animation, 将位移量嵌在Animation中, 角色Tick Pose时会计算frame之间的root bone的偏移量, 換算成velocity与acceleration, 然后PerformMovement</description>
    <pubDate>Thu, 24 Mar 2022 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>动画</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/移动组件随笔</guid>
    <title>角色移动随笔</title>
    <link>https://supervj.top/blog/移动组件随笔</link>
    <description>## 前言 角色移动相关的林林总总 **QA** - Q: 角色移动来自哪里 - A: - 按键输入 - 物理力(Force) - Launch - 动画RootMotion - RootMotionSource - RequestVelocity - Gravity - Q: 角色的Z方向是速度是</description>
    <pubDate>Fri, 25 Feb 2022 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>移动</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/动画优化</guid>
    <title>动画优化</title>
    <link>https://supervj.top/blog/动画优化</link>
    <description>## 前言 本文专门记录最近对动画优化的一些研究和思考 参考文献 官方文档 TGDC ## FastPath 这个比较简单, 就是在动画图表中不要加入蓝图逻辑, 保证了只在引擎能够在内部复制参数，而不是执行蓝图代码（这涉及调用蓝图虚拟机） 如果是FastPath, 动画节点上会有个闪电的标志 ##</description>
    <pubDate>Mon, 10 Jan 2022 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>动画</category><category>优化</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/动画蓝图深入分析</guid>
    <title>动画逻辑深入分析</title>
    <link>https://supervj.top/blog/动画蓝图深入分析</link>
    <description>## 前言 之前虽然写过一些动画节点和AnimInstance相关的逻辑, 但是对整体动画模块的逻辑路线还是不是很熟, 所以本文大致研究一下 ## 关系梳理 开始研究之前需要先梳理一下动画逻辑中的各个类的关系 首先是SkeletalMeshComponent, 这东西继承自USkinnedMeshC</description>
    <pubDate>Thu, 06 Jan 2022 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>动画</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/AnimationDebug</guid>
    <title>AnimationDebug:Insights</title>
    <link>https://supervj.top/blog/AnimationDebug</link>
    <description>## 前言 以前的动画debug要么肉眼看动画蓝图, 要么用控制台来Show DebugAnimation搞得全屏幕的天书无从下手, 自从4.25以后动画模块有了一个非常友善的可视化Debug工具, 之前略有所知但是没有深入使用, 今天来研究一番看看这个工具可以干啥 官方文档 ## 如何开启 需要开</description>
    <pubDate>Fri, 31 Dec 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>动画</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/物理动画深入分析</guid>
    <title>物理动画深入分析</title>
    <link>https://supervj.top/blog/物理动画深入分析</link>
    <description>## 前言 本文打算对物理动画这个自从出现以后一直处于实验性的功能进行深入分析, 并尝试用一些常见的动画进行测试 官方文档 官方视频教程 星球大战物理动画演示 ## 何为物理动画 物理动画不是Ragdoll(布娃娃), 这个概念很容易被误解 简单说, 物理动画就是为了让角色播放动画的时候有物理效果(</description>
    <pubDate>Wed, 29 Dec 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>物理</category><category>动画</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/物理资产PhysicsAsset编辑指南</guid>
    <title>物理资产PhysicsAsset编辑指南</title>
    <link>https://supervj.top/blog/物理资产PhysicsAsset编辑指南</link>
    <description>## 前言 物理资产在Rigdoll和物理动画的引用中非常重要, 当然还有角色模型的碰撞检测也需要物理资产支持, 但是有很多细节在官方文档 和其他文章或者教程中并没有提及, 导致编辑过程中踩了很多坑, 本文主要是记录这些细节问题 ## 碰撞体 ### 创建 很多时候我们会一键自动生成全身的碰撞体,</description>
    <pubDate>Wed, 22 Dec 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>物理</category><category>动画</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/PyCharm For Maya</guid>
    <title>PyCharm For Maya</title>
    <link>https://supervj.top/blog/PyCharm For Maya</link>
    <description>## 前言 maya本身的脚本编辑器比较简陋, 推荐使用 JetBrains旗下的 PyCharm来作为脚本编辑器 ## 准备工作 1. 安装目前最新的Maya2022 2. 安装PyCharm 3. 下载Maya 2022 Update 2 win64 DevKit , 这个页面一直往下拉才看得到</description>
    <pubDate>Thu, 18 Nov 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>工具</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/Runtime重定向</guid>
    <title>Runtime重定向</title>
    <link>https://supervj.top/blog/Runtime重定向</link>
    <description>## 前言 虽然UE4动画蓝图系统不支持跨骨架的动画使用, 但是实际上UE4自己写了一套Runtime的动画重定向机制, 当然这个跟离线重定向是不同的概念, 理论上讲, Runtime的重定向**只满足骨架相同, 但是参考姿势不同**的动画表现 ## FSkeletonRemapping USkel</description>
    <pubDate>Wed, 17 Nov 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>动画</category><category>重定向</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/重定向源码分析</guid>
    <title>离线重定向源码分析</title>
    <link>https://supervj.top/blog/重定向源码分析</link>
    <description>## 前言 UE的动画重定向(离线模式)是个非常好用的功能, 但是最近遇到了一些特殊需求, 势必需要深入研究一下这个重定向的源码 ## 配置 重定向的前提是需要创建一个Rig文件, Rig文件起到的是类似一个模板或者表的作用, 重点定义了骨骼的拓扑结构信息,即父子关系; 当然也有其他如骨骼变换的坐标</description>
    <pubDate>Mon, 08 Nov 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>动画</category><category>重定向</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/MotionWarping深度研究</guid>
    <title>MotionWarping深度研究</title>
    <link>https://supervj.top/blog/MotionWarping深度研究</link>
    <description>## 前言 UE5新加了实验性的插件MotionWarping, 先前已经有很多大佬写过类似的文章, 本文主要针对部分源码进行其工作原理的深入理解和相关RootMotion的思考 ## 从哪里开始? 我们先从这里开始看, 我们需要找到这个模块是在哪里修改了RootMotion信息, 先看调用栈 角色</description>
    <pubDate>Wed, 27 Oct 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>动画</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/AdvanceLocomotionSystem总结</guid>
    <title>AdvanceLocomotionSystem总结</title>
    <link>https://supervj.top/blog/AdvanceLocomotionSystem总结</link>
    <description>## 前言 本文再次对ALS进行一个总结, 重点看动画状态机部分, 数据结构和计算部分不重点关注 本文含有大量动图, 加载比较慢 ## 骨骼分层与动画叠加 ALS的一大特色就是基于基础动作及Pose，通过叠加、混合等方式实现基础动作的复用和灵活的扩展, 同时用骨骼分层结合大量曲线来控制不同身体部位的</description>
    <pubDate>Fri, 08 Oct 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>动画</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/动画DistanceMatching</guid>
    <title>动画_DistanceMatching</title>
    <link>https://supervj.top/blog/动画DistanceMatching</link>
    <description>## 前言 Distance Matching用于解决角色启动和停止的时候的滑步问题, 理论上我们可以用RootMotion的方式保证启动和停止的滑步问题, 但是动画序列的同步是个问题, 所以生产环境下一般会用程序化的位移来解决滑步问题 Paragon Feature Examples: Anima</description>
    <pubDate>Wed, 08 Sep 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>动画</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/动画：OrientationWarping</guid>
    <title>动画:朝向适配OrientationWarping</title>
    <link>https://supervj.top/blog/动画：OrientationWarping</link>
    <description>## 前言 用过动画混合空间的同学肯定遇到过上图这种情况, 多数4方向或者8方向位移的混合空间在其中2个朝向上会遇到如此问题, 如何解决这个问题呢? 一种方式是类似大名鼎鼎的ALS项目的使用额外的动画来完成混合 那么如果没有那么多的动画资源, 甚至只有4方向的动画呢? 本文就此进行研究讨论 ## O</description>
    <pubDate>Thu, 02 Sep 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>动画</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/动画：StrideWarping</guid>
    <title>动画：脚步适配/Strider Warping</title>
    <link>https://supervj.top/blog/动画：StrideWarping</link>
    <description>## 前言 以前我们在处理Locomotion的滑步情况一般都会调整动画速率来达到看上去还凑合的效果, 然而在速度缩放值超过一定范围以后, 展现的情况就非常诡异了, 这个时候就需要通过其他方法来达到这一目的 下面是Paragon Feature Examples: Animation Techniq</description>
    <pubDate>Thu, 26 Aug 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>动画</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/编辑器扩展：插槽编辑器</guid>
    <title>编辑器扩展：插槽编辑器</title>
    <link>https://supervj.top/blog/编辑器扩展：插槽编辑器</link>
    <description>## 前言 一个简易的插槽编辑器插件 ## 准备工作 先看编辑器扩展：自定义预览试图 , 我们已经完成了插件和预览试图的创建, 本文将进行插槽编辑相关功能的添加和扩展 ## 插槽编辑类 参考UnrealEd模块的SSocketManager类, 我们自己模仿着写一个类出来作为编辑插槽的Slate类</description>
    <pubDate>Thu, 19 Aug 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>编辑器扩展</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/编辑器扩展：自定义预览试图</guid>
    <title>编辑器扩展：自定义预览试图</title>
    <link>https://supervj.top/blog/编辑器扩展：自定义预览试图</link>
    <description>## 前言 最近因为项目需要打算做一个简易的插槽编辑器, 因为传统的插槽编辑都需要打开每个静态模型单独编辑, 操作相对比较麻烦, 那么首先需要创建一个自定义的预览试图, 本文先从这个开始 ## 准备工作 首选创建一个插件， 类型随意， 如果先效率高一点简易选择 Editor Toolbar Butt</description>
    <pubDate>Wed, 18 Aug 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    
  </item>

  <item>
    <guid>https://supervj.top/blog/编辑器扩展：自定义PlaceActors</guid>
    <title>编辑器扩展:自定义PlaceActors</title>
    <link>https://supervj.top/blog/编辑器扩展：自定义PlaceActors</link>
    <description>## 前言 有的时候, 为了方便项目需求, 我们需要自定义PlaceActors标签以及对应的类 本文记录如何实现这一扩展 ## 自定义标签 开始之前我们需要了解一下UE4编辑器模块的启动顺序, 可以参考之前的一篇文章 UE4模块启动顺序 关键的一点是, 我们对编辑器添加新的PlaceActors标</description>
    <pubDate>Fri, 13 Aug 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>编辑器扩展</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/引擎启动</guid>
    <title>UE4模块启动顺序</title>
    <link>https://supervj.top/blog/引擎启动</link>
    <description>## 前言 本文大致梳理一下UE4编辑器启动后各个模块的加载顺序， 重点看一下ELoadingPhase枚举对应的类型的加载时机 ## 入口 任何可执行程序都会有一个执行入口，在 UE 中，每一个 Target 都会编译出一个可执行程序。引擎启动是从 Launch 模块开始的，main 函数也是定义</description>
    <pubDate>Thu, 12 Aug 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    
  </item>

  <item>
    <guid>https://supervj.top/blog/编辑器扩展：消息窗口</guid>
    <title>编辑器扩展：消息窗口</title>
    <link>https://supervj.top/blog/编辑器扩展：消息窗口</link>
    <description>## 前言 自定义和扩展消息窗口 ## 消息窗口 先看两个枚举 前者为输入,后者会返回 可以通过返回类型的不同来做不同的逻辑 - 强行封装蓝图库</description>
    <pubDate>Mon, 09 Aug 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>Slate</category><category>编辑器扩展</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/编辑器扩展：自定义属性界面</guid>
    <title>编辑器扩展：自定义属性界面</title>
    <link>https://supervj.top/blog/编辑器扩展：自定义属性界面</link>
    <description>## 前言 编辑器扩展：自定义属性界面, 未完待续... ### SObjectPropertyEntryBox 用于选择资源的界面控件 直接上代码 - .h - cpp - AllowedClass : Class类型, 这个是资源的类型 - OnObjectChanged : 选择改变以后的代理</description>
    <pubDate>Mon, 09 Aug 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>Slate</category><category>编辑器扩展</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/编辑器扩展：自定义菜单栏</guid>
    <title>编辑器扩展：自定义菜单栏</title>
    <link>https://supervj.top/blog/编辑器扩展：自定义菜单栏</link>
    <description>## 前言 常见的自定义编辑器菜单类的内容有 菜单(Menu), 菜单栏(MenuBar), 工具栏(ToolBar) 效果如下 ### 实现方式 这里主要分为两种方式扩展 - FExtender - UToolMenu 后者为较为新的方式,在老版本和多数博客资料里都没有这个方式 FExtender</description>
    <pubDate>Mon, 09 Aug 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>Slate</category><category>编辑器扩展</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/自定义动画节点AnimGraphNode</guid>
    <title>自定义动画节点AnimGraphNode</title>
    <link>https://supervj.top/blog/自定义动画节点AnimGraphNode</link>
    <description>## 前言 首先要准备两个类, 一个继承自UAnimGraphNode_Base为蓝图节点类, 还有一个是数据类FAnimNode_Base ## UAnimGraphNode_Base 这个类定义了节点的显示方式,分类以及引脚连接方式等操作, 然后最主要的是要在头文件申明一个数据类, 如下 不需要</description>
    <pubDate>Tue, 03 Aug 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>动画</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/RootMotion源码解析</guid>
    <title>RootMotion源码简单解析</title>
    <link>https://supervj.top/blog/RootMotion源码解析</link>
    <description>## 前言 由于平时经常使用RootMotion动画, 经常遇到一些问题, 所以还是凑空看了一下源码, 大概整理了一下RootMotion动画的运行机制和关键问题 ## 伪代码 先用伪代码简单的描述一下RootMotion的大概运行逻辑, 以单机蒙太奇动画示例 这当中涉及到的内容非常多, 下面慢慢整</description>
    <pubDate>Mon, 02 Aug 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>动画</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/c++随机数</guid>
    <title>随机数</title>
    <link>https://supervj.top/blog/c++随机数</link>
    <description>## 前言 使用c++时经常要用到随机数, 本文对c++的随机数api做个简单的总结 ## 传统方法 c++11之前一般会用srand()配合rand()来实现随机数的使用 比如 ## c++11随机数算法 c++11提供了3个新的随机算法 - linear_congruential_engine线</description>
    <pubDate>Wed, 21 Jul 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>C++</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/obj文件数据</guid>
    <title>obj及mtl文件数据</title>
    <link>https://supervj.top/blog/obj文件数据</link>
    <description>## 前言 obj文件是Alias|Wavefront公司开发的一种标准3D模型文件格式，适合用于3D软件模型之间的互导。 obj和信息文件mtl都是文本文件, 都可以用记事本打开, 本文主要对两种文件内数据格式简单的解释一下 ## obj OBJ3.0文件格式支持直线(Line)、多边形(Poly</description>
    <pubDate>Fri, 18 Jun 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>模型</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/RootMotion控制</guid>
    <title>RootMotion控制</title>
    <link>https://supervj.top/blog/RootMotion控制</link>
    <description>## 前言 根骨骼运动（RootMotion）的位移都是固定的， 但是我们在实际运用中经常想动态的控制角色的位置和旋转，比如挥砍动作在怪物跟前了就应该停止位移，翻墙动作与障碍物的距离适配等 本文实现了2个方案， 其中之一就包括基于最近上线的UE5新插件RootMotionWarping的方案 如上图</description>
    <pubDate>Fri, 28 May 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>动画</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/关卡切换</guid>
    <title>关卡切换</title>
    <link>https://supervj.top/blog/关卡切换</link>
    <description>## 前言 UE4 中主要有两种转移方式：无缝和非无缝方式 我们平时用的最多的OpenLevel节点就是非无缝的, 本文主要对这些方式记录一番 ## OpenLevel 这是我们最常用的关卡切换的方法, 本质上都是从客户端调用了GEngine- SetClientTravel()函数, 然后到下一帧</description>
    <pubDate>Wed, 19 May 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>关卡</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/创建自定义编辑器</guid>
    <title>创建自定义编辑器</title>
    <link>https://supervj.top/blog/创建自定义编辑器</link>
    <description>## 前言 很久以前项目需求Paper2D动画, Paper2D切换动画不是很方便, 最好还是用类似动画蓝图的状态机,但是UE目前的状态机只有动画蓝图和AI行为树, 于是那个时候就想做一个自定义的状态机,但是后来项目搁浅就没动机继续研究了, 现在凑空来搞一搞这个蛮有用的东西(也很利于了解UE编辑器)</description>
    <pubDate>Wed, 21 Apr 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>编辑器扩展</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/使用自定义Slate笔刷</guid>
    <title>使用自定义Slate笔刷</title>
    <link>https://supervj.top/blog/使用自定义Slate笔刷</link>
    <description>## 前言 使用slate制作界面的时候往往需要使用到笔刷, 本文简单介绍如何使用自定义的笔刷以及使用系统的笔刷 ## 自定义笔刷 ### 纯C++ 参考引擎其他地方用到的获取笔刷的方式 主要思路是创建一个指针TSharedPtr StyleSet然后通过方法FSlateStyleRegistry:</description>
    <pubDate>Mon, 12 Apr 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>Slate</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/MaxScript</guid>
    <title>MaxScript学习笔记</title>
    <link>https://supervj.top/blog/MaxScript</link>
    <description>## 前言 MaxScript学习笔记 搬运至遥远的2019年 ## 默认启动 lua macroScript VextexCacheTool --具体类别里的名称 category: VJ --显示的类别 toolTip: ( -- 把ms脚本粘贴进来 ) lua mybox=box() $Box</description>
    <pubDate>Fri, 26 Mar 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>3dsMax</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/UE4压缩工具</guid>
    <title>UE4压缩和解压缩工具</title>
    <link>https://supervj.top/blog/UE4压缩工具</link>
    <description>## 前言 UE4编辑器和运行时使用解压缩和压缩功能, 一个简单的蓝图库, 源代码来自GitHub的ZipUtility Plugin 对其做了稍微修改, 修复了部分因为版本更新的报错信息(大量头文件包含问题) ZipUtility-UE4-Extra 本文简单介绍这个插件的使用方式 ## 使用 -</description>
    <pubDate>Fri, 26 Mar 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>第三方工具</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/实时加载图片和音效</guid>
    <title>实时加载本地图片和音效</title>
    <link>https://supervj.top/blog/实时加载图片和音效</link>
    <description>## 前言 从本地路径加载图片和音效数据, 得到UTexture2D和USoundWave ## 图片 ### 从文件加载UTexture2D 一切尽在注释中 ### RenderTarget2D导出成本地图片 ## 音效 ### 从本地文件加载USoundWave</description>
    <pubDate>Thu, 25 Mar 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>插件</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/蓝图泛型节点</guid>
    <title>K2Node深入探索及蓝图泛型节点</title>
    <link>https://supervj.top/blog/蓝图泛型节点</link>
    <description>## 前言 本文记录一下蓝图泛型节点的实现, 主要分为CustomThunk方式和K2Node的方式 对比一下两者的优点 CustomThunk: 代码少, 调试方便 UK2Node: 动态的节点数量, 更灵活的动态类型 本文代码在如下项目中 BlueprintLibraryUtility ## C</description>
    <pubDate>Wed, 24 Mar 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>节点</category><category>编辑器扩展</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/开源图形库Assimp</guid>
    <title>开源图形库Assimp</title>
    <link>https://supervj.top/blog/开源图形库Assimp</link>
    <description>## 前言 引用一段介绍 Assimp,开源图形库(Open Asset Import Library)是一种便携式的可支持读取多种模型资源的开源库，它可以用统一的方式输入各种格式的3D模型，而其最新版本能实现输出3D模型的文件，因此该资源库也作为通用的3D模型转换器。assimp旨在提供用于游戏引</description>
    <pubDate>Sun, 21 Mar 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>模型</category><category>插件</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/Draco</guid>
    <title>Google开源压缩库Draco</title>
    <link>https://supervj.top/blog/Draco</link>
    <description>## 前言 Draco是谷歌在2017年1月发布的一个3D图形开源压缩库，提供了多种算法进行压缩和解压缩。 对于encoder过程，Draco整体思路是将网格的连接信息和几何信息进行分别编码并进行存储。 其中，连接信息使用了edgebreaker等算法进行了编码压缩，几何信息对数据进行量化、预测压缩</description>
    <pubDate>Mon, 15 Mar 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>第三方工具</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/UBT和UHT</guid>
    <title>UHT和UBT分析</title>
    <link>https://supervj.top/blog/UBT和UHT</link>
    <description>## 前言 本文大致梳理一下UBT和UHT的作用以及涉及到的其他几个概念的使用 ## UHT UHT是C++代码解析生成工具，我们在C++里面写的UClass和#include和.generate.h都是为UHT提供了对应的信息来生成对应的C++反射代码的 简单说, 由于UE4代码不是标准的C++代</description>
    <pubDate>Thu, 11 Mar 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>模块分析</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/UE代理汇总</guid>
    <title>UE4各种代理(委托)使用方法</title>
    <link>https://supervj.top/blog/UE代理汇总</link>
    <description>## 前言 UE4中有茫茫多的代理类型, 对于初学者刚开始都是一头雾水, 本篇文章逐步分析每一种代理的使用方法 我们先用一个输入整形输入参数的形式,声明所有类型的代理 按使用方式, 一般就是普通的单播代理, 动态代理, 多播代理以及动态多播代理, 每种类型都有无参数很若干参数的版本以及带返回值的版本</description>
    <pubDate>Thu, 25 Feb 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>引擎</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/获取硬件信息</guid>
    <title>UE4获取硬件信息</title>
    <link>https://supervj.top/blog/获取硬件信息</link>
    <description>## 前言 本文记录UE4获取硬件信息和地址等常用方法 ## Mac地址 GetMacAddressString()方法已经在4.15版本后被彻底废弃, 所以UE目前(4.26)版本无法获取Mac地址 我们之前UE4获取第三方库 文章中有用到使用自己用原生cpp获取到mac地址, 然后导出成动态或者</description>
    <pubDate>Mon, 11 Jan 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>插件</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/UE4使用第三方静态库和动态库</guid>
    <title>UE4使用第三方静态库和动态库</title>
    <link>https://supervj.top/blog/UE4使用第三方静态库和动态库</link>
    <description>## 前言 本文介绍一下UE4使用第三方库的简单用法, 即DLL动态库和Lib静态库的使用 我们用插件的形式封装起来, 便于以后移植到其他项目中去; 所以在开始之前先新建一个空或者蓝图库插件 ## 导出动态/静态库 新建控制台应用程序ThirdPartyDLL 然后创建一个同名头文件,写入一下内容</description>
    <pubDate>Sat, 09 Jan 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>插件</category><category>第三方工具</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/关于EditorUtilityWiget用cpp来运行</guid>
    <title>关于EditorUtilityWiget用cpp来运行</title>
    <link>https://supervj.top/blog/关于EditorUtilityWiget用cpp来运行</link>
    <description>## 前言 奇葩需求, EditorUtilityWiget用cpp来运行 这个方案有缺陷, 就是第一次还是需要在编辑器下右键运行一次才能用cpp来运行, 因为右键运行会调用到 UEditorUtilitySubsystem::SpawnAndRegisterTab(), 在这个函数中会对UMG进行</description>
    <pubDate>Sat, 09 Jan 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>Slate</category><category>编辑器扩展</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/Paper2D第三方工具TexturerPacker</guid>
    <title>Paper2D第三方工具TexturerPacker</title>
    <link>https://supervj.top/blog/Paper2D第三方工具TexturerPacker</link>
    <description>## 前言 关于Paper2D使用第三方工具TexturerPacker的简单使用方法记录 从遥远的2019年搬运而来 ## 第三方工具：TexturerPacker - 下载地址 ### 使用方法 TexturePacker流程 - 将序列帧图片直接拖入软件中，也可以只能选择外部文件夹，一个文件夹</description>
    <pubDate>Fri, 08 Jan 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>插件</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/地形及关卡流</guid>
    <title>地形及关卡流简单记录</title>
    <link>https://supervj.top/blog/地形及关卡流</link>
    <description>## 前言 从遥远的2019年搬运而来, 仅作为记录,后续视情况补充 官方文档 https://docs.unrealengine.com/zh-CN/Engine/Landscape/index.html ## 地形的内存 - 对于顶点数据，Landscape为每个顶点使用4个字节。静态网格体（S</description>
    <pubDate>Fri, 08 Jan 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>关卡</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/骨骼共享插件_AnimationSharingPlugin</guid>
    <title>UE4骨骼共享插件AnimationSharingPlugin</title>
    <link>https://supervj.top/blog/骨骼共享插件_AnimationSharingPlugin</link>
    <description>## 前言 从遥远的2019年搬运而来, 作为记录, 不确定是否有更新 官方文档 - 引用文档的结构图 - 插件已经启用，如果关闭到插件栏启用 ## Setup文件 - 简单配置以后如下图 - 一个SkeltonSetup数据在UAnimationSharingManager::Register方法</description>
    <pubDate>Fri, 08 Jan 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>动画</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/UE4操作windows文件</guid>
    <title>UE4对windows文件的操作</title>
    <link>https://supervj.top/blog/UE4操作windows文件</link>
    <description>## 前言 此文简单记录UE4对windows文件的处理 ## 打开窗口读取文件 此方法最后返回的是文件的绝对路径,而非打开文件 ## 打开窗口读取文件夹路径 同上, 不一样的是返回的是文件夹的路径 ## 打开exe程序 比较简单, 但是需要注意的是只能运行exe, 其他比如txt等不能用此方式运行</description>
    <pubDate>Thu, 07 Jan 2021 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>第三方工具</category><category>JSON</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/AssetManager</guid>
    <title>AssetManager的使用</title>
    <link>https://supervj.top/blog/AssetManager</link>
    <description>## 前言 AssetManager(下面简称AM)是一个全局单例类，用于管理各种primary assets和asset bundles。 可以在运行时对Primary Assets进行加载和释放操作 补充官方文档对于AssetManager的介绍 虚幻引擎 4 自动处理 资源 加载与卸载，开发者</description>
    <pubDate>Tue, 29 Dec 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>模块分析</category><category>资源</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/GameplayAbilitySystem分析(七)_GameplayEffect2</guid>
    <title>GameplayAbilitySystem入门与实战(七):GameplayEffect(二)</title>
    <link>https://supervj.top/blog/GameplayAbilitySystem分析(七)_GameplayEffect2</link>
    <description>## 前言 上一篇讲述了GE的一些基本概念, 非常概念化没有实战部分, 很容易混淆和忘记, 本片我们结合实际项目再配合GA的使用来模拟几个技能效果 ## 伤害计算 我们在前面测试GA的时候已经简单测试了伤害,不过那个伤害就固定的一个值, 下面我们用自定义的类GEEC来计算这个伤害 给上我们的GEEC</description>
    <pubDate>Fri, 25 Dec 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>GAS</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/GameplayAbilitySystem分析(八)_GameplayCue</guid>
    <title>GameplayAbilitySystem入门与实战(八):GameplayCueNotify</title>
    <link>https://supervj.top/blog/GameplayAbilitySystem分析(八)_GameplayCue</link>
    <description>## 前言 GameplayCueNotify(GCN)用于非逻辑层的效果，如音效,特效,相机震动等 CGN有两个基类,如下图 | GameplayCue Class | Event | GE类型 | Description | | -------------------------- | ----</description>
    <pubDate>Thu, 24 Dec 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>GAS</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/GameplayAbilitySystem分析(六)_GameplayEffect1</guid>
    <title>GameplayAbilitySystem入门与实战(六):GameplayEffect(一)</title>
    <link>https://supervj.top/blog/GameplayAbilitySystem分析(六)_GameplayEffect1</link>
    <description>## 前言 GameplayEffect在GAS框架中的重要性不言而喻, 内容非常多,,但是本身基本上只作为一个数据载体而存在,蓝图中也无法重写和执行任何事件. 本篇梳理一下GE的常用属性和基本概念, 实战部分我们在下一篇展开 ## 基础定义 GE是属性修改的容器, 分为如下几个类型 | Durat</description>
    <pubDate>Thu, 24 Dec 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>GAS</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/GameplayAbilitySystem分析(五)_GameplayAbility2</guid>
    <title>GameplayAbilitySystem入门与实战(五):GameplayAbility(二)</title>
    <link>https://supervj.top/blog/GameplayAbilitySystem分析(五)_GameplayAbility2</link>
    <description>## 前言 前文已经大概了解了GA的大致内容,本片结合项目来详细使用一下技能. 因为技能可以是通过按键直接触发, 我们在GA中多数是播放动画来表示技能执行的, 所以我们需要一个一个方便我们GA使用的播放动画的节点 GAS中有很多已经封装好的异步节点, 很多都是非常有用的,如下图(太多无法截全) 其中</description>
    <pubDate>Wed, 23 Dec 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>GAS</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/GameplayAbilitySystem分析(四)_GameplayAbility</guid>
    <title>GameplayAbilitySystem入门与实战(四):GameplayAbility(一)</title>
    <link>https://supervj.top/blog/GameplayAbilitySystem分析(四)_GameplayAbility</link>
    <description>## 前言 在第一篇初始化 _%E5%88%9D%E5%A7%8B%E5%8C%96/)的时候简单讲解了技能的添加和使用, 但是没有对技能GameplayAbility(GA)做详细介绍,本片开始对GA中的主要功能注意剖析 ## 注册/移除技能 之前我们通过配置的方式自动注册起始技能, 那么我们肯定</description>
    <pubDate>Tue, 22 Dec 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>GAS</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/GameplayAbilitySystem分析(三)_异步事件</guid>
    <title>GameplayAbilitySystem入门与实战(三):几个有用的异步事件</title>
    <link>https://supervj.top/blog/GameplayAbilitySystem分析(三)_异步事件</link>
    <description>## 前言 这一篇单独创建几个非常有用的异步节点,如UAsyncTask_ListenAttributeChanged可以实时监听任意属性的更改情况,在初期我们用于临时UMG中,方便我们查询和debug; 可以使用继承自UBlueprintAsyncActionBase的基本异步类, 也可以使用GA</description>
    <pubDate>Mon, 21 Dec 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>GAS</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/GameplayAbilitySystem分析(二)_属性</guid>
    <title>GameplayAbilitySystem入门与实战(二):属性</title>
    <link>https://supervj.top/blog/GameplayAbilitySystem分析(二)_属性</link>
    <description>## 前言 前一篇已经完成了初始化,角色可以在服务端和客户端正确触发技能,那么这一篇我们开始研究如何声明我们GAS框架内的属性 暗黑3属性图镇楼 ## 属性类 GAS常用的属性类是FGameplayAttribute和FGameplayAttributeData - FGameplayAttribu</description>
    <pubDate>Sun, 20 Dec 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>GAS</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/GameplayAbilitySystem分析(一)_初始化</guid>
    <title>GameplayAbilitySystem入门与实战(一):初始化</title>
    <link>https://supervj.top/blog/GameplayAbilitySystem分析(一)_初始化</link>
    <description>## 前言 引用官网的一段话介绍一下GAS系统 Gameplay技能系统 是一个高度灵活的框架，可用于构建你可能会在RPG或MOBA游戏中看到的技能和属性类型。你可以构建可供游戏中的角色使用的动作或被动技能，使这些动作导致各种属性累积或损耗的状态效果，实现约束这些动作使用的 冷却 计时器或资源消耗，</description>
    <pubDate>Sat, 19 Dec 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>GAS</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/边缘高光实现方案</guid>
    <title>边缘高光实现方案</title>
    <link>https://supervj.top/blog/边缘高光实现方案</link>
    <description>## 前言 模型的边缘高光应该是老生常谈的话题了, 不过还是有必要详细记录一下各种主流的两个实现方案, 同样的, 这个问题也经常在TA或者客户端面试中被问到 ## 后期方案 先看效果动图 ### 准备工作 后期的方案效果上来说是比较优秀的, 主要就是丢一个后期盒子进去,可以设置成全局的,然后给上一个</description>
    <pubDate>Tue, 15 Dec 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>特效</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/自定义按键</guid>
    <title>UE4运行时修改按键的解决方案</title>
    <link>https://supervj.top/blog/自定义按键</link>
    <description>## 前言 对于很多情况下, 我们都希望我们可以在游戏运行状态下自定义UE4的按键映射, 目前的UE已经支持多数平台的按键在蓝图中实时的更改按键设置, 直接保存到 EngineInput.ini文件 写了一个案例插件,提供了几个解决方案的Demo和几个方便蓝图使用的库函数 RuntimeInputM</description>
    <pubDate>Sat, 12 Dec 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>插件</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/Hexo+GitHub搭建个人静态博客</guid>
    <title>使用Hexo+GithubPages部署个人静态博客</title>
    <link>https://supervj.top/blog/Hexo+GitHub搭建个人静态博客</link>
    <description>使用静态博客有些日子了, 前阵子博客文件被手残折腾没了(还好文章有备份), 重新部署一下有点生疏了. 于是还是决定写一篇部署博客的文章重新记录一下部署流程 ### 准备工作 - 手动百度搜索node.js下载并安装 - 下载并安装git - 注册github账户 关于git和github的使用在另外</description>
    <pubDate>Fri, 04 Dec 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>博客</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/VS中使用UE代码片段</guid>
    <title>VS中使用UE代码片段</title>
    <link>https://supervj.top/blog/VS中使用UE代码片段</link>
    <description>需要打开源码版引擎,找到目录Engine Extras VisualStudioSnippets,里面有很多后缀是snippet的文件. 或者点击这里下载 如果是非源码版需要使用代码片段可以把这个文件夹复制对应的目录 - VS导入UE代码片段 在VS中打开Tools(工具)-Code Snippet</description>
    <pubDate>Thu, 03 Dec 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>工具</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/PureMVC</guid>
    <title>PureMVC框架</title>
    <link>https://supervj.top/blog/PureMVC</link>
    <description>Pure MVC是在基于模型、视图和控制器的MVC模式建立的一个轻量级的应用框架. 目前已经广泛应用于各类平台,常见用的语言如C#,Java等 本文尝试根据标准的C++PureMVC框架魔改成UE4版本方便使用的UnrealPureMVC(UPM)框架插件 github:UnrealPureMVC</description>
    <pubDate>Mon, 30 Nov 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>插件</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/资源注册模块分析</guid>
    <title>资源注册模块AssetRegistry分析</title>
    <link>https://supervj.top/blog/资源注册模块分析</link>
    <description>有的时候我们需要对当前工程下的特定资源进行一些操作,比如找到所有图片资源或者所有静态模型资源,然后把这些资源信息发到某个UI上进行操作等等 本文对UE4资源注册模块AssetRegistry进行简单的分析 *目前蓝图已经封装了相应的库,可以非常方便的调用* Asset Registry模块负责处理引</description>
    <pubDate>Fri, 27 Nov 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>模块分析</category><category>资源</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/AdvancedLocomotionSystem分析5_镜头</guid>
    <title>AdvancedLocomotionSystemV4分析(五):镜头</title>
    <link>https://supervj.top/blog/AdvancedLocomotionSystem分析5_镜头</link>
    <description>上一篇留下了一个镜头抖动问题，实际上ALS项目是通过自定义CameraManager实现的，本篇就此来展开一下 AdvancedLocomotionSysemV4分析(一):移动和脚步IK AdvancedLocomotionSystem分析(二):攀爬系统 AdvancedLocomotionSy</description>
    <pubDate>Sat, 31 Oct 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>动画</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/AdvancedLocomotionSystem分析4_布娃娃和起身</guid>
    <title>AdvancedLocomotionSystemV4分析(四):布娃娃和起身</title>
    <link>https://supervj.top/blog/AdvancedLocomotionSystem分析4_布娃娃和起身</link>
    <description>接下来就是布娃娃系统，对应的就有从布娃娃恢复成正常状态的起身动作。 这里还同时分析了一下站立和下蹲姿势的切换，因为起身动作会涉及到这一块 AdvancedLocomotionSysemV4分析(一):移动和脚步IK AdvancedLocomotionSystem分析(二):攀爬系统 Advance</description>
    <pubDate>Thu, 29 Oct 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    
  </item>

  <item>
    <guid>https://supervj.top/blog/AdvancedLocomotionSystem分析3_动作叠加</guid>
    <title>AdvancedLocomotionSystemV4分析(三):动作叠加</title>
    <link>https://supervj.top/blog/AdvancedLocomotionSystem分析3_动作叠加</link>
    <description>AdvancedLocomotionSysemV4分析(一):移动和脚步IK AdvancedLocomotionSystem分析(二):攀爬系统 AdvancedLocomotionSystemV4分析(四):布娃娃和起身 AdvancedLocomotionSystemV4分析(五):镜头 **</description>
    <pubDate>Wed, 28 Oct 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>动画</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/AdvancedLocomotionSystem分析2_攀爬系统</guid>
    <title>AdvancedLocomotionSystemV4分析(二):攀爬系统</title>
    <link>https://supervj.top/blog/AdvancedLocomotionSystem分析2_攀爬系统</link>
    <description>ALS系统的攀爬系统思路比较简单，播放蒙太奇配合位置的刷新。缺点是没有中间状态，意味着无法打断或者做平移等 后面我打算尝试改成加入中间过程的攀爬系统 AdvancedLocomotionSysemV4分析(一):移动和脚步IK AdvancedLocomotionSystemV4分析(三):动作叠加</description>
    <pubDate>Tue, 27 Oct 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>动画</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/AdvancedLocomotionSystem分析1_基础移动和脚步IK</guid>
    <title>AdvancedLocomotionSystemV4分析(一):移动和脚步IK</title>
    <link>https://supervj.top/blog/AdvancedLocomotionSystem分析1_基础移动和脚步IK</link>
    <description>最近对UE4商城AdvancedLocomotionSysemV4进行了一波初步分析，感觉这个项目已经包含了大多数情况能用得到的动画表现，从移动表现中比较容易出问题的脚步问题到IK、攀爬、翻滚、布娃娃以及动作叠加等模块都有讲到 打算参考这个项目的思路重新实现一边动画逻辑，顺便对其中重要的模块和知识点</description>
    <pubDate>Mon, 26 Oct 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>动画</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/小乌龟Git</guid>
    <title>TortoiseGit简单使用说明</title>
    <link>https://supervj.top/blog/小乌龟Git</link>
    <description>此文讲解如何使用Git版本的小乌龟插件 由于git默认的黑窗口对于部分开发人员特别是美术人员比较不太友好，所以很多人会选择使用可视化的TortoiseGit(小乌龟)插件来协作开发 ### 安装 首先必须先安装git， Git链接 无脑下一步安装完毕，如需了解git如何使用，可以参考本人另外一篇文章</description>
    <pubDate>Tue, 22 Sep 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>Git</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/扩展游戏设置</guid>
    <title>UE4添加自定义项目设置</title>
    <link>https://supervj.top/blog/扩展游戏设置</link>
    <description>## 前言 我们在项目开发的过程中，经常需要在项目设置里面添加一些参数，本文介绍如何添加这些参数 另外介绍一些特殊的资源类参数的添加和使用 先上图 ## 添加自定义项目设置 一般情况下，我们需要创建一个插件来添加这类属性，我们创建一个蓝图函数库模板的插件 然后创建一个UObject类来添加属性 **</description>
    <pubDate>Mon, 31 Aug 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>编辑器扩展</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/UE4离线文档</guid>
    <title>UE4 4.25离线文档</title>
    <link>https://supervj.top/blog/UE4离线文档</link>
    <description>UE4 4.25离线文档，基于Dash文档源，使用Zeal查阅 Zeal下载 4.25文档下载 ### 使用方法 直接将压缩版解压到Zeal docsets 路径内，没有文件夹请自行新建 然后按照下图设置docsets路径 ### 下载其他文档 参考如下图方式下载，因为都是国外链接，所以请酌情使用交</description>
    <pubDate>Fri, 28 Aug 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>工具</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/VR框架AdvancedVRFrameworkV3_1分析</guid>
    <title>VR框架AdvancedVRFrameworkV3_1分析</title>
    <link>https://supervj.top/blog/VR框架AdvancedVRFrameworkV3_1分析</link>
    <description>虚幻商城有一个非常成熟而且有诚意的VR框架，涵盖了基本上VR可以用到的所有主流功能，同时也有PC和移动端的支持。 商城链接 趁着项目需求借机分析一下这个框架，后续打算基于此扩展适用于项目的框架 ### 分析记录 2020.8.21: 1.纯蓝图+组件的思路搭建，使用起来不算麻烦也不能算太方便，学习成</description>
    <pubDate>Fri, 21 Aug 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>VR</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/ubuntu修改IP</guid>
    <title>ubuntu修改静态IP</title>
    <link>https://supervj.top/blog/ubuntu修改IP</link>
    <description>第一步我们需要将虚拟机的网络模式修改为桥接模式,并且勾选复制物理网络连接状态选项 ubuntu在20.4版本以后修改IP的方法与之前的有了比较大的区别，在之前的版本是通过编辑/etc/network/interfaces文件去修改IP，在新版本以后修改的配置文件是 /etc/netplan/01-c</description>
    <pubDate>Thu, 20 Aug 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>工具</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/用GitLab搭建本地仓库</guid>
    <title>用GitLab搭建本地代码仓库</title>
    <link>https://supervj.top/blog/用GitLab搭建本地仓库</link>
    <description>git 是一种基于命令的版本控制系统，全命令操作，没有可视化界面 gitlab 是一个基于git实现的在线代码仓库软件，提供web可视化管理界面，通常用于企业团队内部协作开发 当然还有github也可以用作代码仓库，较多用于个人 ### 准备工作 ##### 安装git git的使用和安装推荐本人另</description>
    <pubDate>Tue, 18 Aug 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>Git</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/Json</guid>
    <title>Json文件读写</title>
    <link>https://supervj.top/blog/Json</link>
    <description>本文主要介绍UE4下的JSON文件的读写 ### 文件读写 首先我们需要扩展普通的文件读写方法 此方法是以工程目录下的Content路径为基础的，如果需要指定其他路径就需要替换 FPaths::ProjectContentDir()方法或者干脆直接把整个路径给公开 ### JSON文件读写 先来一个</description>
    <pubDate>Fri, 07 Aug 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>JSON</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/自定义视图和节点1</guid>
    <title>简单的自定义视图和节点</title>
    <link>https://supervj.top/blog/自定义视图和节点1</link>
    <description>本文描述了如何简单的创建自定义的视图和节点 后续补充具体功能开发 ##### 插件模块 创建插件TestGraph - 包含如下模块 在模块类里声明2个变量 构造GraphObj，指定GraphObj内的Schema 创建GraphEdSlate，同时把GraphObj指定给GraphEdSlate</description>
    <pubDate>Wed, 05 Aug 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>编辑器扩展</category><category>节点</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/UE4子系统</guid>
    <title>UE4子系统</title>
    <link>https://supervj.top/blog/UE4子系统</link>
    <description>UE4在4.22版本后加入了子系统即Subsystem，子系统是生命周期受控的自动实例化类，非常易用。 ### 概述 目前在4.24版本中，子系统主要分为4大类 - 引擎UEngineSubsystem 当引擎子系统的模块加载时，子系统将在模块的 Startup() 函数返回后执行 Initiali</description>
    <pubDate>Mon, 03 Aug 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>引擎</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/批量重命名</guid>
    <title>插件:批量重命名</title>
    <link>https://supervj.top/blog/批量重命名</link>
    <description>由于自己平时在项目开发中经常遇到大批量的资源需要重命名，特别是美术资源如贴图、动画这些 而UE自带的批量操作又没有发现有重命名方法 所以就制作了这个简单的批量重命名的小插件 Github下载链接 - 动图演示 ##### 说明 - Prefix前缀 - Name:修改后的名称 - StartInde</description>
    <pubDate>Sun, 19 Jul 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>插件</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/LearnDX12_DrawGeo2</guid>
    <title>DX学习笔记（五）：绘制几何体2</title>
    <link>https://supervj.top/blog/LearnDX12_DrawGeo2</link>
    <description>### 帧资源 上一篇在绘制每一帧都会进行一次CPU与GPU的同步,目的是 1. GPU未结束命令分配器中所有命令执行之前,不能重置,如果重置,那么GPU当前还未处理的命令就会被清除 2. 对于常量缓冲区的数据而言,不同步的话会导致数据异常 所以我们用FlushCommandQueue来保持同步 但</description>
    <pubDate>Mon, 13 Jul 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>DirectX</category><category>C++</category><category>学习笔记</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/自定义资源</guid>
    <title>自定义资源</title>
    <link>https://supervj.top/blog/自定义资源</link>
    <description>### 自定义资源 新建插件StateMachine,然后手动拷贝一份StateMachineEditor用于编辑器模块 ，把里面的所有名称改为后缀为Editor版本 然后在Editor版本的Build.cs 的Private部分中加入如下模块 UnrealEd , AssetTools ,Publ</description>
    <pubDate>Sun, 12 Jul 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>资源</category><category>编辑器扩展</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/Unreal4Refraction</guid>
    <title>初探UE4反射系统</title>
    <link>https://supervj.top/blog/Unreal4Refraction</link>
    <description>参考文献 《InsideUE4》UObject（四）类型系统代码生成 》 创建项目 AdvanceFunc 创建2个Actor类，HelloWolrd,ByeWorld ByeWorld的GENERATED_BODY替换成GENERATED_UCLASS_BODY ### GENERATED_BOD</description>
    <pubDate>Wed, 08 Jul 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>引擎</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/C++11新特性</guid>
    <title>C++11新特性</title>
    <link>https://supervj.top/blog/C++11新特性</link>
    <description>##### auto - 自动类型推导 - 定义模板函数时，推到依赖模板函数的变量类型 - 返回值 - 其他 ##### decltype 从变量或者表达式获取类型 对于decltype所用的引用来说，如果变量名加上了一对括号，则得到的类型与不加括号时会有所不同。如果decltype使用的是一个不加</description>
    <pubDate>Tue, 07 Jul 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>C++</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/LearnDX12_DrawGeo</guid>
    <title>DX学习笔记（四）：绘制几何体</title>
    <link>https://supervj.top/blog/LearnDX12_DrawGeo</link>
    <description>## 用DirectX绘制几何体 ### 流程简述 ##### 顶点与输入布局 1. 创建顶点结构体 2. 设置输入布局描述D3D12_INPUT_ELEMENT_DESC ##### 顶点/索引缓冲区 1. 创建顶点数据/索引数据 2. 创建缓冲区/索引缓冲区 ##### 顶点着色/像素着色 1.</description>
    <pubDate>Tue, 30 Jun 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>DirectX</category><category>C++</category><category>学习笔记</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/LearnDX12_RenderPipline</guid>
    <title>DX学习笔记（三）：渲染流水线</title>
    <link>https://supervj.top/blog/LearnDX12_RenderPipline</link>
    <description>## 渲染流水线 平行线最终会相交于消失点，又称为灭点 物体重叠：即不同命的物体能够遮挡住其后侧物体的局部 3D实体对象是通过三角形网格来近似表示的 ### 颜色 分量式乘法:(r,g,b)*(a,b,c)=(ra,gb,bc) ##### 128位颜色 每个分量用浮点表示，即4D向量 (r,g,b</description>
    <pubDate>Wed, 24 Jun 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>DirectX</category><category>学习笔记</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/LearnDX12_Math</guid>
    <title>DX学习笔记（一）：数学基础</title>
    <link>https://supervj.top/blog/LearnDX12_Math</link>
    <description>## 向量代数 ### 向量 DirectX3D采用的左手坐标系 - 左手坐标系：伸出左手，手指方向对准X轴正方向，弯曲手指对象Y轴正方向，大拇指指的就是Z轴正方向 ##### 向量的基本运算 - 两个向量相等。即u=v。当且仅当u和v的每个分量相等，即u x =v x ,u y =v y , u</description>
    <pubDate>Tue, 23 Jun 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>DirectX</category><category>C++</category><category>学习笔记</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/Mardown数学公式</guid>
    <title>Markdown(Typora)数学公式</title>
    <link>https://supervj.top/blog/Mardown数学公式</link>
    <description>Ctrl+Shift+M激活公式 ### 上下标 a^2+ b_ y_3 $ a^2+ b_ y_3 $ ### 括号 - 中小括号 (a+b)* c+2 $ (a+b)* c+2 $ - 大括号需要加 1,2,3 $ 1,2,3 $ - 尖括号 langle x rangle $ l</description>
    <pubDate>Tue, 23 Jun 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>工具</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/LearnDX12_Init</guid>
    <title>DX学习笔记（二）：DX初始化</title>
    <link>https://supervj.top/blog/LearnDX12_Init</link>
    <description>## Direct3D初始化 ### 预备知识 ##### 组件对象模型 组件对象模型***（Component Object Model,COM）***:不受DirectX语言束缚，并且向后兼容的技术 - 获得COM接口需要借助特定函数，而不是C++的new - 删除COM有Release方法，而</description>
    <pubDate>Mon, 22 Jun 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>DirectX</category><category>C++</category><category>学习笔记</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/超5说明文档EN</guid>
    <title>《Fightting Game Template》Documentation</title>
    <link>https://supervj.top/blog/超5说明文档EN</link>
    <description>## Instructions - It is very important that you should click the **option button** to set your keys ，and save it - Click the Multiplayer button to ent</description>
    <pubDate>Mon, 15 Jun 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>教程</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/路径优化</guid>
    <title>路径点优化</title>
    <link>https://supervj.top/blog/路径优化</link>
    <description>本文介绍路径点的优化方式，或者叫做多线段优化、轨迹点优化 根据设定阈值，去掉路径点中的部分多余点，以达到方便传输的目的 本文用UE4蓝图和C++蓝图函数库的2个方式解释 **注:多种方法可以叠加使用** 本算法提供了基于UE4的Demo，PC ，安卓 GitHub工程下载 Demo演示动图 ###</description>
    <pubDate>Fri, 12 Jun 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>数学</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/由SetActorLocation分析渲染流程</guid>
    <title>由SetActorLocation分析渲染流程</title>
    <link>https://supervj.top/blog/由SetActorLocation分析渲染流程</link>
    <description>角色位移本质上就是渲染问题，从这条思路我们去看看角色怎么实现这一部分渲染的 ##### 起点：SetActorLocation 蓝图调用的API实际调用的是K2_SetActorLocation，然后调用到此函数 只看这个关键代码，调用RootComponent的MoveComponent ####</description>
    <pubDate>Thu, 04 Jun 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>引擎</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/UE4创建异步节点</guid>
    <title>创建异步节点</title>
    <link>https://supervj.top/blog/UE4创建异步节点</link>
    <description>## 前言 如图所示，我们经常在UE4内看到如此的异步节点，简单说此类节点的输出并非像函数一样瞬间完成，而是拥有自己的生命周期，此类节点一般在右上角有一个**时钟标志** 本文讲解如何制作类似AI_MoveTo的异步节点 另一篇AI_MoveTo简单分析和扩展 )介绍AI_MoveTo的简单运行机制</description>
    <pubDate>Mon, 01 Jun 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>编辑器扩展</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/AI_MoveTo研究</guid>
    <title>AI_MoveTo分析和扩展</title>
    <link>https://supervj.top/blog/AI_MoveTo研究</link>
    <description>## UK2Node_AIMoveTo 这是我们最熟悉的编辑器模式下的AI_MoveTo节点，也就是那个自带OnSuccess和OnFailed的异步节点，在蓝图中大多数时候使用起来都得心应手非常方便，但是它有个最大的缺点，异步节点意味着他有自己的生命周期，不能放到函数中使用，同样的，在代码中也没有</description>
    <pubDate>Wed, 27 May 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>AI</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/使用ApexPhysXLab制作UE4的破损物体（ DestructibleMesh）</guid>
    <title>使用ApexPhysXLab制作UE4的破损物体(DestructibleMesh)</title>
    <link>https://supervj.top/blog/使用ApexPhysXLab制作UE4的破损物体（ DestructibleMesh）</link>
    <description>UE4自带的DestructibleMesh系统的破碎方式比较单一，可以用英伟达的ApexPhysXLab工具制作自定义破碎文件，然后导入UE4 本文介绍通过使用这一工具制作UE4破碎物体的流程 工具下载地址点击下载 ### PhysXLab流程 如下图所示，导入3D模型 ##### 三种破碎方式</description>
    <pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>物理</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/用Niagara绘制样条线</guid>
    <title>用Niagara的Ribbon绘制样条线</title>
    <link>https://supervj.top/blog/用Niagara绘制样条线</link>
    <description>最近由于项目需要用到鼠标在场景利绘制曲线，方案有很多，比如SplineMesh，ProceduralMesh 等等，回头一想用特效也可以试试 本案例使用虚幻4.22版本演示 用Niagara的Ribbon绘制样条线的功能 ##### 模块函数 NiagaraModuleScript - 模块函数是N</description>
    <pubDate>Thu, 21 May 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>特效</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/超4说明文档CH</guid>
    <title>《Multiplayer RPG Template》说明文档</title>
    <link>https://supervj.top/blog/超4说明文档CH</link>
    <description>这是一份Multiplayer RPG Template 的说明文档,内容包含其中主要系统的配置和制作方法 此案例是基于UE4的**ListerServer**建立的局域网联机游戏demo，参考作品WOW 基于UE4版本4.25 demo尚且有未完善的地方，后续会跟进优化和修复 ### 技能系统 如</description>
    <pubDate>Tue, 19 May 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>教程</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/超4说明文档EN</guid>
    <title>《Multiplayer RPG Template》Documentation</title>
    <link>https://supervj.top/blog/超4说明文档EN</link>
    <description>This is Multiplayer RPG Template Documentation,its about configuration and production method of the main system This case is based on UE4&#39;s ListerServ</description>
    <pubDate>Tue, 19 May 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>教程</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/关于虚幻商城上架</guid>
    <title>提交蓝图工程到虚幻商城</title>
    <link>https://supervj.top/blog/关于虚幻商城上架</link>
    <description>笔者之前制作了一个游戏Demo 蓝图工程上架了虚幻商城，本文记录虚幻商城上传蓝图工程的注意事项 ### 准备工作 1. 当然是制作一份自己的工程，不要轻易白嫖别人的工程/资源，很容易被逮到，当然也有例外，下文会提到 2. 注册并登录Epic账号，到商城卖家页面 准备提交内容 1. 需要一个公开邮箱，</description>
    <pubDate>Mon, 18 May 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>工具</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/Picgo+阿里oss搭建图床</guid>
    <title>Picgo+阿里oss搭建图床</title>
    <link>https://supervj.top/blog/Picgo+阿里oss搭建图床</link>
    <description>本文介绍如何用Picgo+阿里oss搭建图床 可用于个人Markdown文档的图片外链 oss图床优点：速度快，安全；缺点：流量大的情况下收费很夸张 ### 阿里oss 1. 登录注册阿里云账户，选择对象存储oss服务 2. 右侧创建新的创建Bucket，这个就是存储的仓库 3. 各种参数根据需求设</description>
    <pubDate>Thu, 14 May 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>博客</category><category>图床</category><category>GitHub</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/Picgo+GitHub搭建免费图床</guid>
    <title>Picgo+GitHub搭建免费图床</title>
    <link>https://supervj.top/blog/Picgo+GitHub搭建免费图床</link>
    <description>本文介绍如何用Picgo+GitHub搭建免费的图床 可用于个人Markdown文档的图片外链 Github图床优点：免费，安全；缺点：网络不稳定，偶尔上传失败 ### 关于Picgo 这是一款图片上传的工具，目前支持七牛图床，腾讯云，阿里oss，GitHub等图床，未来将支持更多图床。 所以解决问</description>
    <pubDate>Wed, 13 May 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>博客</category><category>图床</category><category>GitHub</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/Git使用指北</guid>
    <title>Git使用指北</title>
    <link>https://supervj.top/blog/Git使用指北</link>
    <description>本文主要介绍Git软件和Github在Windows平台的简单使用方式 ### 安装Git 安装包可以在官网 )下载，选择对应版本无脑下一步安装 ### 初次设置 安装完成后，邮件菜单即可调用Git命令，点击进入后需要初始化账户名和邮箱 ##### 生成SSH Key - 一路Enter键后会需要设</description>
    <pubDate>Tue, 12 May 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>Git</category><category>GitHub</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/UE4使用Steam子系统发布Steam包</guid>
    <title>UE4发布steam游戏流程</title>
    <link>https://supervj.top/blog/UE4使用Steam子系统发布Steam包</link>
    <description>2019年4月18日在steam发布了个人一款独立动作游戏《EndlessHell》，本文将借此记录发布steam游戏的流程 游戏链接 UE4版本4.21 SteamWork入门指南 文中内容前半部分为提交当时编辑，搬运至博客后更新后续部分 ## 配置 ### SteamDLL 复制steam程序中</description>
    <pubDate>Sat, 09 May 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>插件</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/绘制图形（非debug）</guid>
    <title>绘制图形（非debug）</title>
    <link>https://supervj.top/blog/绘制图形（非debug）</link>
    <description>蓝图方法DrawDebugLine（以及其他图形）的方法只能在开发者模式中使用 下文为了得到发布版的DrawLine之类的功能 ### LineBatchComponent - 在UWorld中看到如下声明 - 然后创建并注册组件 - 再到组件LineBatchComponent.h - 先关注组件</description>
    <pubDate>Wed, 06 May 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>特效</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/UE4顶点动画开发流程</guid>
    <title>UE4顶点动画开发流程</title>
    <link>https://supervj.top/blog/UE4顶点动画开发流程</link>
    <description>### 前言 本文介绍从max到UE4顶点动画实现流程 使用的方式是贴图记录顶点位置和法线信息通过材质球使静态模型模拟动画的播放 脚本下载 ### 顶点缓存脚本 - **如果是非骨骼动画，可以直接跳过此步骤** 用顶点缓存脚本把骨骼动画信息保存到==pointCache修改器==内，脚本界面如下 -</description>
    <pubDate>Thu, 30 Apr 2020 20:24:51 GMT</pubDate>
    <author> (东哥)</author>
    <category>动画</category><category>3dsMax</category>
  </item>

  <item>
    <guid>https://supervj.top/blog/vscode配置max</guid>
    <title>VsCode配置MaxScript开发环境</title>
    <link>https://supervj.top/blog/vscode配置max</link>
    <description>### 开发环境配置流程 ##### MXSPyCom 1. 下载GitHub的MXSPyComRelease包,链接 2. 解压，并将安装包内的MXSPyCOM.exe文件复制到自定义目录 3. initialize_COM_server.ms脚本放到max对应版本的startup目录中，默认路径</description>
    <pubDate>Thu, 30 Apr 2020 00:00:00 GMT</pubDate>
    <author> (东哥)</author>
    <category>3dsMax</category>
  </item>

    </channel>
  </rss>
