虚幻4随笔 三 从UE3到UE4】的更多相关文章

笔者有幸参与过两个UE3项目,完全不同的使用方法,总共用了5.6年.引擎学习最好还是能参与项目,自己看的话往往容易纠结到一些细节上去,而引擎之所以是引擎,重要的恰恰是在容易被人忽视的工作流上.单从细节上看,UE3的代码很多地方并不完美,甚至有些奇怪,但是一旦做到工作流上,就会发现整个UE3工作流的强大之处. 先回顾一下UE3系统的一些结构要点,权当做个记录,看看UE4在这些方面有什么不同,作为我们接下来读码的突破口. 如果真心想要学习这个引擎,最好还是能用它来做做项目,项目不分大小,只论完整程度…
 前文说到UE3開始.虚幻就使用了UnrealBuildTool(下面简称UBT)来编译和生成代码. 为什么这么做而不是使用VS是非常好理解的:由于VS跨平台会比較麻烦.像虚幻这样体量的project,单为project做一次VS配置就基本是一天的时间 并且UE4还不像UE3那样就十几个project,把全部uproject都看做project的话,得几十了.依赖关系复杂度几何增长,用VS的工具去维护--并且要维护各个平台和配置--再加上维护完后Mac.Linux还得维护一遍-- 可是为什么…
诚如之前所说,虚幻4主要的一些特性都是由UObject穿针引线在一起的,想把虚幻玩到比较深的程度,UObject是迟早要面对.回避不得的问题,所以,准备在其它主题之前,先把UObject好好弄一下.UObject主要完成了哪些工作呢?私以为:   反射系统   UObject体系构建了整个虚幻反射系统的核心,每个UObject都来自于一个UClass,这个Class可以是Unreal Header Tool(以后统一遵循官网命名:UHT)生成的,也可以是来自于Blueprint生成的(UBlue…
课程名称:软件工程1916|W(福州大学) 作业要求:项目Alpha冲刺(十天冲刺) 团队名称:葫芦娃队 作业目标:在十天冲刺里对每天的任务进行总结. 随笔汇总:https://www.cnblogs.com/beifengtuanzi/p/10769244.html 队员学号 队员昵称 博客地址 041602421 der himmel https://www.cnblogs.com/wenghaoo 221600225 wuliaoBoring https://www.cnblogs.com…
某个朋友问为什么不推首页或者允许评论,我说一直没怎么写博客,也习惯了先随便乱画再开始写文档,担心公开后一些不经意的"呓语“中得出的错误的结论会给别人错误的观点,所以这个系列只是当做熟悉写博客的习作和研究笔记.等过后有时间了再修改完善或者另开一个更系统的专题. EF出来不短的时间了,为什么一直没用?因为其实有很长一段时间没有负责架构搭建的工作了,更多的时间花在前端,数据库,文档,客户需求方面.当然精力不足只是借口,更多的是形成了一种不好的技术惰性,总认为能理解是怎样的就行了,如果没有项目需求,没必…
一.虚拟机安装Ubuntu图文教程]在自己笔记本上安装Linux操作系统 我参考了VirtualBox虚拟机安装Ubuntu的图文教程,根据图片和所附内容一步步的将虚拟机安装到位,没看安装教程之前完全不知道要怎么去安装,不过等一步步的安装完成还是有点意思,有激起我好好学JAVA的兴趣. 第一步我打开了==[VirtualBox官网]==(https://www.virtualbox.org/wiki/Downloads),目前版本是VirtualBox:VirtualBox 5.1.8 for…
1.引言 在多线程的环境中,如果想要使用容器类,就需要注意所使用的容器类是否是线程安全的.在最早开始,人们一般都在使用同步容器(Vector,HashTable),其基本的原理,就是针对容器的每一个操作,都添加synchronized来进行同步,此种方式尽管简单,但是其性能是非常地下的,所以现在已经不怎么使用了.人们普遍会使用并发的容器,在JDK1.5之后,针对基于散列的Map,提供了新的ConcurrentHashMap,针对迭代需求的list,提供了CopyOnWriteList. 2.Co…
1.接口: 1)接口不是类,不能使用new运算符实例化一个接口,而是对类的一组需求描述,这些类要遵循接口描述的统一格式进行定义.个人感觉像C语言中的函数在头文件中的预先声明,但是包含了一些类的特点,比如继承之类. 2)接口中的所有方法自动属于public,不必提供关键字,但是在实现接口时必须提供pulic. 3)让类实现一个接口:(1)将类声明为实现给定的接口(implements) (2)对接口中的所有方法进行定义: 4)不能构造接口的对象,但是可以声明接口的变量,而接口的变量必须引用实现接口…
把矩阵变成行向量(矩阵元素的排列是从上到下,从左到右): 1.先转置,转成行向量 A = >> A=A' A = >> a=A(:)' a = 2.reshape函数 A = >> [m,n]=size(A) A=A' A = >> A=reshape(A,,m*n) A = 循环移位 A = >> m=,n=; % %m向下,n向右,负号表示反向 %所以下式表示右循环一位 A=circshift(A,[m,n]) A = 读一张图片循环移位后显…
import java.util.ArrayList; import java.util.List; import com.heima.googleplay.holder.BaseHolder; import com.heima.googleplay.holder.MoreHolder; import com.heima.googleplay.manager.ThreadManager; import com.heima.googleplay.utils.UIUtils; import andr…
1.在主页面(activity引用Fragment )的布局文件中定义FrameLayout ,加载Fragment  <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/fl_content" android:layout…
测试 1.按岗位: 黑盒测试:测试业务逻辑 白盒测试:测试逻辑方法 2.按测试粒度 方法测试 function 单元测试 unit 集成测试 integration 系统测试 system 3.按暴力程度 冒烟测试 smoke 压力测试 pressure 4.monkey测试工具使用命令行 adb shell # monkey 1000 //在手机按1000次,每个按钮都可能被按下 单元测试框架 1.建立测试项目 2.建立测试类以及测试方法 class test extends AndroidT…
多态使用总结: (1)没有继承就没有多态 (2)代码的体现:父类类型的指针指向子类对象 (3)好处:如果函数方法参数中使用的是父类类型,则可以传入父类和子类对象,而不用再去定义多个函数来和相应的类进行匹配了. (4)局限性:父类类型的变量不能直接调用子类特有的方法,如果必须要调用,则必须强制转换为子类特有的方法. 注意: id通用指针可以指向任何对象,指向谁就调用谁的方法(函数). @implementation ASPerson -(void)paint:(id)aShape{ [aShape…
在上一篇文章我们已经得到了DefaultSqlSession,接下来我们对sqlSession.getMapper(DemoMapper.class)这种语句进行分析 @Override public <T> T getMapper(Class<T> type) { return configuration.<T>getMapper(type, this); } 在这里又调用了如下方法 public <T> T getMapper(Class<T>…
在对字符串的操作中,s[::-1]表示将字符串逆序输出. 字符串本身不能改变(管理者而非所有者) 列表的内容是可以改变的,且列表的内容可以不仅仅是字符串.对于一个列表,注意b=a和b=a[:]的区别. s2 = [True, 5, 'smile']                          # s2是一个list 元组:一种特殊的列表,内容不可改变,所以列表中除了改变内容的操作,其他都可以使用. s1 = (2, 1.3, 'love', 5.6, 9, 12, False)      …
如果没有安装淘宝给的镜像就先安装一下,指令如下,对!就是如此简单: npm install -g cnpm -registry=https://registry.npm.taobao.org 首先输入npm init webpack my-working,一定不要激动,这里不是一路回车哦,当 到达红色区域那个问题时你要选择No,I will handle that myself 然后就可以回车了,这样之后 最后键入如下两个指令即可安装成功,如下图: 最最后就是键入指令npm run dev指令运…
* 常见异常 * 数组越界异常 * 空指针异常 * * * 特点: 当程序出现异常的时候, 程序会打印异常信息并中断程序 * 所以当同时出现多个异常的时候只能执行第一个, 后边的用不到 * * 单异常 * 对异常的处理 ->> 检测异常,捕获异常, 处理异常, finally(回收资源之类的收尾工作) * try{ * 可能出异常的代码 * }catch(Exception e) { e是要捕获的异常 * 对异常的代码进行处理 * }finally{ * 不论怎样都会执行的代码(除非程序结束)…
前言 “厂长,APP的那几个功能都差不多了,接下来要做工作流,工作流这东西我完全没概念啊.” “查尔斯,一般来说工作流就是指将指定的数据.文件.任务按照预定的规则进行传递流转.比如说你要请假,拿个请假条先让我审核,审核完了再让人事审核,人事审完流程就算走完了.” “那我们需要做些什么东西呢?” “还是接着我刚刚的例子来说,首先是请假条,这个请假条就是数据的载体.” “明白了厂长,那我做一个页面,把请假条的做出来.” “傻X,那还有请款单.请购单.借支单...你都一个个去做?而且用户需要自己再修改…
1.ps   结果输出: PID TTY TIME CMD pts/ :: bash pts/ :: ps显示了程序的进程ID,其运行的终端和进程使用的cpu时间…
1.location模块 在server中也可以嵌套location 例 server{ listen 80; server_name www.a.com; root   /data/vhosts/; location /news/ { root   /app/vhosts/; } } 在访问www.a.com/news/index.html时   访问的服务器的磁盘位置为/app/vhosts/news/index.html 2.curl -I www.a.com  #-I(i) 显示版本参数…
使用虚幻4开发网络游戏的两种方式 一.虚幻4只做客户端,服务器端独立开发,适用于任何网络游戏 二.使用虚幻4同时开发客户端和服务器(使用虚幻4内置的服务器),适用于一部分网络游戏. 如果使用虚幻4作为游戏客户端,最好也是要虚幻4的内置服务器(这样可以解决很多问题,同时节省很多巨大的工作量),自己开发服务器要处理非常多的问题. 对服务器要求较高的游戏玩法 一.多人同屏(3D游戏不适合,对服务器压力太大) 二.高速操作,迅速同步.UE4非常适合这样的游戏. 三.全球同服.(采用分布服务器,多台服务器…
UDKtoUE4Tool UDKtoUE4Tool 是一个把UE3/UDK资源包(T3D格式)转换成UE4(T3D格式)的工具.作者Matt3D使用C#实现,未来考虑发布到Unreal Marketplace作为外部工具. 初始版本 php实现 2014/04/18 Matt3D移植他自己的项目CBC building到UE4时,需要重做2000+ actors,于是诞生了这个批量转换工具,使用php实现web版. 当时仅支持Static Meshes, 转换location/rotation/…
原文链接:http://gad.qq.com/article/detail/7181031 本文首发腾讯GAD开发者平台,未经允许,不得转载 在游戏开发过程中,读写xml几乎已经成为不可或缺的功能,但是由于有一点点的先入为主,当时直接选择了使用c++常用的tinyxml,于是这里就需要引用第三库,其实UE4有一个自带的XmlParser,也可以轻松读写xml.下面我们就看看这两种的方式的详细操作. 一.准备工作: 1.用UE4创建一个空模板的C++工程,命名为TinyxmlProject. 2.…
基本数据类型 TCHAR TCHAR就是UE4通过对char和wchar_t的封装 char ANSI编码 wchar_t 宽字符的Unicode编码 使用 TEXT() 宏包裹作为字面值 TCHAR* TCharString = TEXT("Hello, World!"); // 引擎字符串(TCHAR*) -> ANSI字符串(char*) char* CharString = TCHAR_TO_ANSI(TCharString); // 引擎字符串(TCHAR*) ->…
为了加快渲染速度和减少纹理锯齿,贴图被处理成由一系列被预先计算和优化过的图片组成的文件,这样的贴图被称为Mipmap. 使用DirectX Texture Tool(DX自带工具)预生成Mipmap Chain Original  Mip1 Mip2 Mip3 Mip4 Mip5 Mip6 Mip7 Mip8 256x256 128x128 64x64 32x32 16x16 8x8 4x4 2x2 1x1 (1)Mipmap宽高值不一定要相等,但需要为2的n次幂,最低精度为1x1 (2)从原始…
[目标] MaterialLOD QualitySwitch [思路] 1 QualitySwitch UE4有三挡 UE3 2 现在UE3需要添加三挡 3 UE3 class UMaterialExpressionQualitySwitch : public UMaterialExpression { public [步骤] 1 修改UMaterialExpressionQualitySwitch  \ue3\Development\Src\Engine\Classes\MaterialExp…
原文地址:http://demo.netfoucs.com/u011707076/article/details/44036839 前言 寒假回家到现在已经有十多天了,这些天回家不是睡就是吃....哎╮(╯▽╰)╭,今天早上一觉醒来,突然得知,UE4免费了,这绝对是个好消息,前不久我还在纠结怎么申请校园账号呢o(╯□╰)o.迫不及待打开电脑下载了UE引擎的一个类似管理的客户端,在里面最醒目的一栏,看到一个令人哭笑不得的导航,如下图: EPIC这是要逆天的节奏吗?不过不管他了,接下来,我们便一同学…
 首先我得说Unity3D已经做的非常好了,搞这些东西意义真心不大.详细Unity3D有什么优势我之前也写过两篇文章来阐述自己的想法.         假设我的下一份工作是U3D的话,预计我就不会有这些想法或者研究了.只是谁让我又又一次转回cocos2d了呢.我的新的工作大概就是写一个cocos2d-x的2.5D游戏. 假设依照我自己的想法,那肯定是U3D来做.只是我在技术上从来不是刚愎自用的人.并且非常多时候做游戏图形学和算法都没那么重要,说白了就是拿什么都能做,这里面很多其它的可能是个人…
Unreal Engine 4公布好长好长时间了.直到近期才有时间细致去看一下. TimSweeney老大一句话"IF YOU LOVE SOMETHING, SET IT FREE".原来须要几十万授权金才干拿到的东西,就从$19.变成免费了.并且开源.作为一个国际顶尖的引擎,能走出这一步,对我等普通开发人员真是福音啊. 如此的牛X.再加上开源,相信Unreal Engine 4会火起来的,你看看近期E3上的产品展示也能感觉到.只是.Unreal的定位毕竟是"国际顶尖&qu…
基于Hexo搭建博客并部署到Github Pages 之前在简书上写东西,觉得自己还是太浮躁.本来打算用Flask自己写一个,以为是微框架就比较简单,naive.HTML.CSS.JS等都要学啊,我几乎没有这方面的基础,写到Web表单那儿果断弃了,转向简单的Hexo + Github Pages.不过要想搭建博客的同时巩固Python,Flask确实是一个不错的选择. 获取Github Pages 去Github官网注册账号 新建一个repo,注意名称一定是your_username.githu…