六一的部落格
行百里者半九十
最近
最近发布
最近更新
参考
虚幻引擎-C++开发完全指南
C++ Primer
虚幻控制绑定
虚幻引擎-VR指南
wiki
emacs
虚幻引擎
博客
编程语言
开发工具
leet code
关于
Hobby
技能树
版权声明
参考
  虚幻引擎-C++开发完全指南
  geometry sandbox
  初识虚幻引擎
  熟悉虚幻编辑器
  在虚幻编辑器创建C++类
  虚幻C++基础知识和UBT
  虚幻日志
  可见的actor
  添加静态网格体组件
  材质类和材质实例类
  让actor运动起来
  定时器: 让材质颜色随机变化
  动态创建actor对象
  委托机制
  销毁actor对象
  材质颜色随机变化时, 输出颜色信息
  初识gameplay
  gameplay主要类概述
  初识gamemode
  pawn与键位绑定
  为pawn添加组件
  player controller与pawn
  项目编译
  源码的编译过程
  宏和项目中间文件
  内存回收机制
  shoot them up
  角色和动画
  运行ShooterGame示例项目
  初始化ShootThemUp项目
  代码规范
  为游戏角色绑定模型
  实现游戏角色前后左右移动
  实现游戏角色视角旋转
  为游戏角色添加向前走路动画
  实现游戏角色跳跃
  实现游戏角色跑步
  添加走路转向动画
  打包游戏
  健康系统
  实时显示游戏角色生命值
  对游戏角色造成伤害
  模拟榴弹爆炸
  使用伤害类型
  添加游戏角色死亡逻辑
  添加观察视角
  自动治疗
  坠落伤害
  打包游戏
  武器
  给游戏角色装载武器
  绘制瞄准十字
  武器组件
  初识碰撞
  射击轨迹
  重构MakeShot
  射击伤害
  瞄准偏移
  FABRIK
  持续射击和瞄准偏离
  武器派生类
  榴弹类
  为榴弹类添加运动
  榴弹类造成伤害
  切换武器
  装备武器动画
  装备武器标志位
  装备武器动画只影响游戏角色身体上部分
  弹药数据
  装弹动画
  为装弹动画剪辑添加通知
  完善装弹逻辑
  打包
  虚幻示意图形
  在蓝图中使用窗口部件实现游戏角色生命条
  使用C++实现游戏角色生命条
  在窗口部件绘制瞄准十字
  在窗口部件显示当前武器和弹药库
  观察者模式下的窗口部件以及元素动画
  重构和打包
  补给
  补给基类、生命补给和弹药补给
  持续提供补给
  弹药补给
  生命补给
  补给绕Z轴旋转
  重构和打包
  Niagara粒子系统
  初识Cascade和Niagara
  撞击特效组件
  物理材质
  使用贴花实现弹痕
  肌肉松弛效果
  游戏角色受到伤害时为摄像机添加抖动
  游戏角色受伤时添加闪烁红屏
  为观察者视角添加黑白后期
  枪口特效
  子弹轨迹特效
  重构和打包
  非玩家游戏角色行为
  让NPC移动到指定位置
  初识行为树和黑板
  在C++中创建任务类型
  在C++中运行行为树和为NPC转向添加过渡
  视觉感知
  自定义行为树服务
  射击服务
  NPC自行更换武器
  随机更换武器服务
  清除行为树
  使用EQS实现巡逻
  使用EQS在敌人附近移动
  使用EQS寻找生命补给
  使用EQS寻找弹药补给
  自定义生成器限制条件
  打包
  游戏模式
  介绍游戏模式
  动态创建NPC
  游戏回合
  回合中重建游戏角色
  划分阵营
  造成伤害时判断阵营
  击杀和死亡计数
  在窗口部件显示游戏数据
  允许游戏角色回合中复活
  在窗口部件显示复活信息
  游戏结束处理
  修复游戏角色复活后受伤无红屏告警
  重构游戏角色类
  修复弹簧臂组件发生碰撞时摄像机组件穿模
  整理和打包
  游戏接口
  游戏状态
  暂停窗口
  游戏结束显示玩家得分
  重启关卡
  添加主菜单
  介绍游戏实例
  在游戏实例里保存关卡名称
  回到主菜单
  退出游戏
  主菜单支持选择关卡
  显示NPC生命条
  设计优化
  为用户界面添加动画
  加载关卡动画
  打包
  音效
  为按钮添加音效
  为窗口部件添加音效
  为游戏角色动画添加音效
  为武器动画添加音效
  为音效分组, 并设置音量
  音效随距离增加而衰减
  射击和死亡倒地音效
  拾取补给和击中音效
  静音
  背景音效
  音效混合
  打包
  额外
  步枪支持瞄准镜变焦
  击中游戏角色身体不同部位造成伤害值不同
  NPC感知伤害
  自定义关卡, 加载图片和游戏图标
  完善和打包
  C++ Primer
  关联容器
  数据类型
  关联容器: map
  指针和引用
  关联容器: set
  const限定符
  关联容器: 添加元素
  类型说明符auto
  关联容器: 删除元素
  类型指示符decltype
  初识标准库
  标准库类型string
  标准库类型vector
  初识迭代器
  使用map处理文本: 将缩写转换成完整短语
  表达式
  左值和右值
  类型转换
  关联容器: 无序关联容器
  函数
  函数组成
  对象的生命周期
  参数传递
  可变形参
  尾置返回类型
  函数重载
  默认实参
  内联函数
  关联容器: 访问元素和查找关键字
  类
  成员的访问权限
  类的组成
  类的数据成员
  类的函数成员
  类的构造函数
  拷贝控制成员
  类的友元
  类的类型成员
  类的静态成员
  标准库:IO
  输入输出流
  文件流
  字符串流
  标准库:顺序容器
  顺序容器
  顺序容器操作: 添加元素
  顺序容器操作: 访问元素
  顺序容器操作: 删除元素
  增删元素对迭代器, 引用和指针的影响
  顺序容器操作: 为顺序容器赋值
  顺序容器操作: 指定容器大小的显式构造函数
  顺序容器操作: 设置容器大小
  顺序容器操作: 管理容器容量
  顺序容器操作: 迭代器运算
  标准库:顺序容器适配器
  顺序容器适配器: 栈
  顺序容器适配器: 队列
  顺序容器适配器: 优先级队列
  顺序容器适配器
  标准库:容器
  容器
  迭代器
  初始化容器
  标准库: array
  标准库: forward_list
  泛型算法
  只读算法
  写容器元素算法
  重排算法
  谓词
  lambda表达式
  lambda捕获和返回
  函数适配器: bind
  迭代器适配器
  迭代器适配器: 插入迭代器
  迭代器适配器: 流迭代器
  迭代器适配器: 反向迭代器
  迭代器类别
  泛型算法与迭代器
  算法命名规范
  动态内存
  使用内置指针管理动态内存
  智能指针
  智能指针: shared_ptr
  shared_ptr与删除器
  StrBlob: 共享字符串数组
  智能指针: weak_ptr
  智能指针: unique_ptr
  动态数组
  使用allocator分离动态内存申请和对象构造
  使用StrBlobPtr访问StrBlob
  拷贝控制
  拷贝构造函数
  拷贝赋值运算符
  析构函数
  类的拷贝操作
  编译器提供的合成版本: 默认构造函数, 析构函数, 拷贝构造函数, 拷贝赋值运算符
  拷贝赋值运算符行为: 类值和类指针
  拷贝赋值运算符: 使用swap操作
  拷贝控制: 使用文件夹管理消息
  引入移动操作
  对象移动
  移动构造函数
  移动赋值运算符
  移动操作的合成版本
  迭代器适配器: 移动迭代器
  右值引用和成员函数
  运算符重载与类类型转换
  运算符重载
  运算符重载: 输入和输出运算符
  算术运算符重载: 加法
  相等性判断: 相等运算符和不等运算符
  排序: 小于运算符
  运算符重载: 赋值运算符
  运算符重载: 下标运算符
  运算符重载: 递增和递减运算符
  运算符重载: 成员访问运算符
  运算符重载: 函数调用运算符
  标准库: function类
  运算符重载: 类型转换运算符
  函数匹配与运算符重载
  面向对象程序设计
  继承与动态绑定
  类的继承
  类型转换与继承
  虚函数
  抽象基类
  访问控制与继承
  继承中的类作用域
  构造函数与拷贝控制
  多重继承与虚继承
  虚幻控制绑定
  创建程序化移动周期
  初始角色蓝图设置
  初始动画蓝图设置
  创建control rig
  操作control rig
  创建FootNames数组
  world space和rig space说明
  创建WorldFinalFootTrans数组
  使用DrawTransform绘制足变换
  FullBodyIK节点说明
  对足进行解算
  为剩下足添加解算
  合并成函数
  解算时将世界空间变换转换成控制空间变换
  计算速度的方式说明
  创建CalculateVelocity函数
  计算角色在世界空间中的位移
  计算角色在世界空间中的速度并绘制
  平滑计算得到的速度
  给CalculateVelocity函数添加备注
  周期说明
  创建MasterCyclePercent函数
  使用输出节点测试周期
  创建MoveFeetTransforms函数
  创建FootLockedArray数组
  判断足锁定与否逻辑
  创建SwingPercent变量和足解锁情形
  未锁定逻辑和锁定情形
  调用和测试MoveFeetTransforms函数
  让未锁定足回到默认姿势
  创建FootTimingOffsets数组
  创建PerFootCyclePercent数组
  使用PerFootCyclePercent数组元素取代MasterCyclePercent
  swing阶段的基础插值
  创建UpdateFootPredictions函数
  延速度方向投影着地点
  基于足着地时长缩放预测时间
  基于角色移动速度改变周期速度
  创建步幅变量并计算以秒为单位的周期
  创建WorldLockdedFootTransforms数组
  修改在抬起和着地点之间的插值系数
  使用自定义曲线让足以弧线抬起
  使足抬起高度基于移动速度
  足轨迹跟踪安排概览
  每个着地点的轨迹跟踪
  随机身体运动和整体提升
  优化轨迹跟踪说明以及在不平地面测试
  实现高级轨迹跟踪
  移植控制绑定到其他角色
  移植程序化动画系统到其他角色
  调试新角色的变量
  多种控制绑定特性和程序化动画技巧
  使用control骨骼移动角色
  设置FullBodyIK和对控制目标进行插值
  使用时间偏移来延迟移动
  使用BasicIK节点的时间、地点和方法
  找到primary轴和secondary轴
  自动计算pole向量
  使骨骼朝向给定方向
  使用多种权重和插值设置让更多骨骼朝向目标位置
  为目标位置添加抖动
  模拟角色呼吸时胸膛起伏
  使用idle动画创建角色类
  使角色朝向游玩关卡中的某个位置
  创建可以在任何control rig中使用的函数
  创建RotateAroundPoint函数来在rig space中旋转
  绕点旋转时加上平移
  创建在rig space中旋转骨骼自身的函数