自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (1)
  • 收藏
  • 关注

原创 总结如何成为“好”代码——读《重构:改善既有代码的设计》有感

读后感说是“读后感”,其实并不是看得很仔细,尤其是各种代码例子,我基本上是跳过的。个人觉得,重构这件事上,关键是要能嗅出坏代码,知道什么是好代码,这样目标明确后,重构的手段其实是水到渠成的,唯一要注意的就是书中强调的:要以小步为单位稳打稳扎进行。我所理解的“好”代码核心目标那么如何才是“好”代码?书中的答案是:“人们是否能轻而易举地修改”,而我觉得抽象层级更高的描述是:易于未来的工作。“未来的工作”包括了“修改”,也包括其他方面的如“调用”,所以我觉得是个更加准确的描述。易于未来的工作具体的

2020-08-31 00:21:35 269

原创 【UE4 C++】使用自定义的结构体做TMap中的Key

使用TMap尝试使用自定义的结构体直接使用,编译报错UE4代码中的范例实践其他延伸

2020-08-30 09:42:30 4266 1

原创 制作一个观察UObject的工具

目标观察编辑器内运行的UObjectUObject#mermaid-svg-WDmDTXufdx3PC8UW .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-WDmDTXufdx3PC8UW .label text{fill:#333}#mermaid-svg-WDmDTXufdx3PC8UW .node

2020-08-29 22:36:37 631

原创 【UE4编辑器扩展】学习图表编辑器(UEdGraph):在UEdGraphSchema设置图表的Actions

目标本篇的工程将上接《学习UE4的图表编辑器(UEdGraph):节点引脚》。目标是尝试设置节点图表中的Actions。Actions这里的Actions的意思是:一个基于上下文的关于图表的操作。在UEdGraphSchema中有两个留给子类实现的虚函数:...

2020-08-26 00:07:27 2561 1

原创 试用《Cascadeur》:一款基于物理的角色动画软件

目标Cascadeur特殊之处官网: https://cascadeur.com/令人吃惊的是官网上的排版干净,信息量简洁,还配有示意动图。教程官网的初学者教程内容简洁并有配图,还做了小功能可以标记“已阅”,学习体验很棒,推荐直接学习。而这里,我只是在看过教程后顺带记录下我留意的内容。1.启动程序并在场景中工作(Launching the program and working with scenes)《Cascadeur》有专属的场景文件:casc2.控制相机视角(Controllin

2020-08-24 22:27:15 6299 2

原创 观察Niagara特效系统的核心概念:参数(FNiagaraVariable)

对Niagara参数进行进一步的观察。我觉得它是整个Niagara系统的核心,因为我发现其他一切都是围绕它的。

2020-08-22 22:43:13 4363 1

原创 UE4实验使用 FGCObject 引用UObject

目标FGCObject 的基本用法调用时机准备实验1. 创建插件使用编辑器模式为模板创建一个插件。使用此模板是因为它默认在左侧的“模式”选项卡中生成一个界面,方便放一些按钮。插件名字TestGCPlg。2. 创建一个UObject类型用于测试TestObject.h:#pragma once#include "UObject/Object.h"#include "TestObject.generated.h"UCLASS()class UTestObject : pub

2020-08-19 22:38:52 5065

原创 试用 Visual Studio用来重构C++代码的工具

Visual Studio用来重构C++代码的工具VS 提供了重构C++的工具,官方文档:《在 Visual Studio 中编辑和重构 C++ 代码 | Microsoft Docs》

2020-08-18 22:08:03 1788

原创 【UE4编辑器扩展】学习图表编辑器(UEdGraph):节点引脚

目标节点引脚SGraphNode相关接口UEdGraphNode相关接口实践观察背后原理

2020-08-16 00:12:39 4074 3

原创 《重构:改善既有代码的设计》读书笔记:前3章名言以及自己感悟

重构“重构”指的是一种对代码结构的改善。这种改善:不会改变代码的外在行为。不会让代码效率更高(准确来说,效率可能会变低)会让代码设计变得更 好 。而代码怎么算是 好 ,以及怎样才能变 好,就是本书所讨论的内容。本书目录:第1章,用一个实例来说明什么是“重构”。第2章,讨论“重构”的一些概念。例如:什么是重构、重构与新功能、重构与架构、为何要重构、何时重构、重构面临的挑战、重构与性能 等等。第3章,代码的“坏”味道,讨论一个 坏 代码的表现。第4章,强调构建“自测试体系”的重要性。第

2020-08-15 10:46:50 328

原创 思考 美术工具 对 美术资源生产 的影响

思考 美术工具优化 对 美术资源生产 的影响作为一个美术工具的开发者,我相信古老的谚语:磨刀不误砍柴工,即:优化美术工具 优先于 生产美术资源。但是又不得不承认,这并不是绝对的。假设柴刀本来就不算钝,而树又只剩少量几棵了,那么花时间找砥石磨刀,就算不上明智了。也就是说,还是要看具体的数值。抽象来看,假设:美术工具有一项需要优化,优化的成本为:c工具优化c_{工具优化}c工具优化​。这一优化项和一些将要生产的美术资源有关,假设资源量为 n美术资源量n_{美术资源量}n美术资源量​,其中每一份的美术资源由于

2020-08-14 00:08:21 220

原创 试用一款开源的轻量级3D建模软件《Dust3D》

关于《Dust3D》Dust3D is brand new 3D modeling software. It lets you create watertight 3D models in seconds. Use it to speed up character modeling for games, 3D printing, and so on.《Dust3D 》是一款全新的3D建模软件,它让你快速地创建出无缝的3D模型,使用它可以加速用于游戏或3D打印中的角色模型的生产。下载地址:https:

2020-08-13 21:57:11 4778 2

原创 【UE4编辑器扩展】学习图表编辑器(UEdGraph):创建一个最简单的图表编辑器

目标UE4编辑器中的蓝图编辑器、材质编辑器等都是继承自UEdGraph的图表编辑器。插件中是可以拓展一种新的图表编辑器以实现特定目的的界面的,例如官方内建插件中的Niagara和AssetManagerEditor都拓展了新的图表编辑器。我想学习相关的操作,而本篇的目标是观察相关的基础概念并创建一个最简单的图表窗口。我主要参考了AssetManagerEditor中的ReferenceViewer,因为这是我目前发现的最简单的图表编辑器。图表编辑器相关的基本概念UEdGraphUEdGraphNo

2020-08-12 20:24:58 6146 10

原创 观察UE4的界面命令(UICommand)扩展编辑器界面的流程并实践

目标在UE4中,一个界面命令对应一个FUICommandInfo,他可以由多种方式触发,比如快捷键或者菜单按钮。本篇的目标是观察它扩展编辑器界面的流程,即:如何创建一个界面命令?如何与一个具体的代码操作对应起来?如何确实地添加到编辑器的某一处上?参考的目标主要是插件模板:编辑器工具栏按钮以及AssetManagerEditor这个内建的插件(它实现了显示Asset的引用关系的功能)基本流程概括概括讲:一个FUICommandInfo将被放到一个TCommands(继承自FBindingContex

2020-08-10 23:29:48 8156 7

原创 UE4智能指针学习记录

UE4智能指针之前的博客《实现一个最基础的智能指针》里实现了一个最简单的使用引用计数方式的智能指针。而UE4也有一套智能指针的实现,可见《虚幻智能指针库 | Unreal Engine Documentation》中的介绍。另外,我发现\Engine\Source\Runtime\Core\Public\Templates\SharedPointer.h中的注释也有很多有价值的信息,可以补充参考。注释中的信息This is a smart pointer library consisting of

2020-08-08 20:48:25 2595

原创 讨论《蔚蓝(Celeste)》的设计

赞美的地方手感艺术风格感想0. 手感1. 故事的结合刚开始并没有什么故事,累了休息一下开始讲点故事。完成个艰难的任务后有大故事。已经让我对这个故事感兴趣了。2. 循序渐渐的难度玩完上一关就非常有信息打下一关。手感【游戏制作工具箱】《蔚蓝》的手感为何迷人?Why Does Celeste Feel So Good to Play? | GMTK_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili...

2020-08-06 17:37:33 2783 3

原创 观察UArrowComponent:一个直接继承自UPrimitiveComponent的简单子类

UPrimitiveComponent,渲染相关的重要组件/** * PrimitiveComponents are SceneComponents that contain or generate some sort of geometry, generally to be rendered or used as collision data. * There are several subclasses for the various types of geometry, but the most

2020-08-06 00:05:56 3350 1

原创 观察UE4重定向器(Redirector)的创建逻辑

重定向器(Redirector)官方文档对重定向器的描述如下:在UE4中,移动或重命名一个资源会在此资源的旧位置中留下一个“重定向器”。这样,当前未加载但引用此资源的包将知道在新的位置中的什么位置找到它。通俗讲:当一个Asset被移动时,并不是所有引用它的Package都知道它移动到哪了,而为了能帮助引用它的Package找到它的新位置,就在原位置留下一个“重定向器”,这样引用它的包会首先找到“重定向器”,随后就会被指引到新的正确位置。我想,这里最大的疑问就是:什么时候会创建一个“重定向器”?首

2020-08-03 23:13:23 4174 4

原创 C++关于析构函数的一些小实验

目标对一下问题做一些实验来获得答案:子类与父类的析构函数的调用顺序虚析构函数的作用在父类的析构函数中调用被子类重载的虚函数子类与父类的析构函数的调用顺序#include <iostream>using namespace std;class ClassBase{public: ClassBase() { cout << "父类构造" << endl; } ~ClassBase() {

2020-08-01 00:05:57 125

GetHRESULTMessage(WindowsSDK10.0.19041.0).txt

将HRESULT转变为字符串。 生成的方式见博客 https://blog.csdn.net/u013412391/article/details/108861088

2020-09-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除