自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MichaelLiew的博客----VR行者

UE4研究、Unity3D。虚拟现实研究。

  • 博客(88)
  • 收藏
  • 关注

原创 有道云笔记markdown教程

文章目录一、基础指南目录生成回车标题代码块列表引用字体链接分割线二、进阶指南待办事项数学公式锚点跳转三、绘图连接线表格流程图时序图甘特图 一、基础指南目录生成语法自动生成,保持独占一行@[toc]正文回车普通文本需要回车需要在上一段文本末尾加至少2个空格标题# 一级标题## 二级标题### 三级标题代码块用```来标记,起始和末尾都要列表无序列表...

2019-10-15 11:41:40 4664 4

转载 UE4网络的简单原理

UE4内部封装实现了大量和网络相关的代码,使得我们不需要再自行编写很多底层的网络同步代码了(连接主机,套接字传输等等)。我们只需要实现相关的函数接口,并进行一定的设置,就可以实现网络游戏的功能了。 下面先讲讲UE4NetWork的几个要点: *1.UE的网络同步和Replicate密切相关,从字面上理解,就是Server到Client的信息同步。 2.大部分的自动化Replicate都

2017-06-14 10:33:53 2784 1

转载 深入浅出UE4网络

UE4中的官方文档结构比较混乱,且有部分错误,不方便学习。笔者试图通过本文,整理出一篇关于UE4网络的文章,方便朋友们对UE4中的网络同步部分的认识,并有进一步理解。如有讲得不清楚明白的地方,还望批评指正。如需转载请注明出处,https://i.cnblogs.com/EditPosts.aspx?postid=6511821,这是对作者最起码的尊重,谢谢大家。本文的结构如下:一、

2017-06-14 10:22:05 15968 3

转载 UE4资源热更新

文章出处:http://blog.csdn.net/u012385432最近发现有些网站复制了我的文章却没有注明出处,表示鄙视...转载可以,还请注明出处...不要剽窃别人的劳动成果...前面的几篇文章中提及了有关.Pak文件和文件下载的部分,这两部分组合起来,其实就是我们的资源热更新了.当然代码的热更新不在这个讨论范围内.代码的热更新的话就更加麻烦了.这次讨论的只限资

2017-05-10 21:51:49 11817

原创 UE4 GENERATED_UCLASS_BODY 与 GENERATED_BODY 区别

今天我们来详细说说GENERATED_UCLASS_BODY和GENERATED_BODY的区别,GENERATED_BODY标识的类的成员默认是private的,GENERATED_BODY标识的类需要声明无参数的构造函数,GENERATED_UCLASS_BODY可以不声明构造函数(如果要实现构造函数需要加上const FObjectInitializer& ObjectInitializer

2017-02-16 15:11:00 3076

原创 UE4坑--打不开工程,进度一直卡在72%

今天遇到一个坑,那是相当的坑呀!(前提说明:这是一个C++工程,GameMode类被一个蓝图继承)做的好好工程关闭之后再也打不开了,每次打开的进度走到72%就卡住不走了,等很久都不动,然而Log文件中没有任何错误,还很诡异的停止在某个地方没写完,如下:[2016.12.20-14.49.41:164][  0]LogMeshUtilities: No automatic mesh reduct

2016-12-20 23:34:42 15044 3

原创 UE4的C++代码中的class关键字起什么作用?

在虚幻代码中四处可见用到了class这个关键字,变量声明、参数传递、模板类型等等。不写这个关键字还编译不过,那么这个关键字到底起什么作用呢?答案是:前置声明

2016-12-16 13:42:54 1908

原创 UE4多人在线游戏实例教程(C++)-刘龙-专题视频课程

UE4.13版本的实例教程,基于C++开发的游戏实例课程,开发多人在线的小游戏,使用C++作为脚本开发,该课程适合于有虚幻引擎开发基础的小伙伴。

2016-11-17 09:19:48 1238

原创 UE4修改分辨率

在GameUserSettings.ini配置文件中添加如下,可以改变游戏分辨率[/Script/Engine.GameUserSettings]bUseVSync=FalseResolutionSizeX=1024ResolutionSizeY=576LastUserConfirmedResolutionSizeX=1280LastUserConfirmedResolut

2016-11-14 19:02:10 7726

转载 Unity UNet 常见问题整理

前段时间,研究了一下UNet,经过项目实践,大致整理了下遇到的问题。  源码Bitbucket : (https://bitbucket.org/-Technologies/networking)需要说明的是,这个项目只包含上层的包装,一些低层的网络实现在Unity内部,如NetworkTransport类等并不包含。  UNet常见概念简介  Spawn:简单来说,把服务器上

2016-10-25 10:00:54 4194

原创 UE4中删除光照贴图

关于光照贴图删除,在UE4中没有直接像Unity那样点击一个Clear按钮的方法。不过可以勾选ForceNoPrecomputedLighting,然后重新Build光照就可以删除。如图:

2016-10-13 16:20:51 11245

原创 UE4-强大引擎注意细节之Bit Fields

注意到虚幻引擎里面喜欢用uint8 bNetTemporary:1;这种方式来声明一个布尔型变量,我看到以后觉得有趣就搜索了一下,原因是引擎在设计的时候注重细节,使用了C++ Bit Fields这个特性。具体的细节可以查看MSDN:https://msdn.microsoft.com/en-us/library/ewwyfdbe.aspx。    简单来讲就是如果用bool来声明会占用32/

2016-09-21 13:31:48 1453 1

原创 UE4反射系统说明

类修饰符(UCLASS):    abstract(抽象):将类声明为抽象基类,这样会阻止用户实例化这个类。    advancedclassdisplay(高级显示):强制类的所有属性仅在Details面板中的高级选项中显示,并且默认为隐藏。    autocollapsecategories(自动隐藏分类):取消在父类上使用AutoExpandCategories修

2016-09-20 18:13:28 5275

原创 UE4安卓打包出错-Substance原因

今天在打包一个官网的Demo时遇到一个错误。UATHelper: Packaging (Android (All)): Project.Build: ********** BUILD COMMAND STARTED **********UATHelper: Packaging (Android (All)): CommandUtils.Run: Run: C:\Program Files

2016-09-09 15:51:33 7707 4

转载 UE4蓝图编辑器使用小技巧

在Event节点或Function上单击右键,有一个’Add call to parent function’,如果子类有override父类的方法,可以添加调用Parent实现的节点。2. 从左边Component栏或MyBlueprint栏中拖出变量到编辑面板,可以获得该变量的Reference,拖出Function则可以添加该函数节点。3. 编辑Blueprint函数时,

2016-09-06 13:43:27 4983 1

转载 UE4的BehaviorTrees的特点

事件驱动的BehaviorTrees事件驱动,UE4的BehaviorTrees无须一直检查相关条件是否变化,而是被动地被事件的触发,可以减少每帧的计算量。性能改善,因为不用每一帧遍历整个树,就好像不用一直问”满足条件吗?”, 而是等满足条件时直接告诉你”满足条件了”。更好的调试条件不用写在叶节点上标准的BehaviorTrees模型中,条件节点是一种特殊的任务叶节

2016-09-06 13:37:52 2469

转载 UE4之Behavior Tree介绍

UE4中提供了很强大的可视化的Behavior Tree编辑器,再不用自己写一大堆状态机了,对游戏开发者来说乃一大福音,而且可以查看运行时状态,甚至可以看到当前执行那一条分支和条件判断结果,简直就是黑科技。基本概念先介绍一下BT中要使用的几个节点类型:Composite:包括三种节点,定义了节点的执行规则,其中包括:Selector:从左到右依次执行子节点,直到

2016-09-06 13:30:54 2742 1

转载 Mesh Component Update Flag 让骨骼动起来

这是之前做一个蜘蛛的技能时,遇到的一个问题。蜘蛛出生时有一个从天上掉下来的动作,因此出生点在地面上方稍高一点的位置,当蜘蛛释放吐丝技能时,丝的特效从尾巴尖上发出,飞向敌人,于是可以在尾巴尖的位置绑定一个Socket,发特效的时候来获得此位置。但是现象却是特效总从天上发出来。于是打Log检查Socket位置是否正确。果不其然,在服务端取到的Socket位置比客户端取到的位置高很多,而

2016-09-06 13:16:20 1258

转载 如何使用UE_LOG

在Unreal Engine 4中,打Log很方便,可以使用宏:12UE_LOG(LogTemp, Warning, TEXT("Your message")); 但是使用之前需要先定义Log Category,Category会在Log中体现出来,以便在茫茫Log中更容易区分其作用或所属模块。如果想定义只在一个CPP文件中使用的Category,不希望被其他类使用,可以定义一

2016-09-06 13:02:37 13161 1

原创 UE4中的GameMode、GameState、GameInstance

GameState可以Replicate而GameMode不能,为了数据安全考虑,GameMode只在服务器存在。所以,GameState可以允许客户端访问一些游戏数据如:得分、匹配时间,而访问不了GameMode里面的敏感数据。如果你是做一个单机游戏,那么你可以不用考虑GameState。    GameInstance这个类可以跨关卡存在,它不会因为切换关卡或者切换游戏模式而被销毁。然而,

2016-08-25 12:25:27 10742

原创 UE4迁移继承自C++的蓝图类(痛苦经历)

4.12版本还没有提供内置迁移基于C++的蓝图类功能,但是我就需要!!!开整!    首先,我用U3D的思维,Content目录下的uasset文件和Source目录下的C++源代码复制粘贴到我的新项目中去,结果项目打开时系统崩溃显示“Access violation - code c0000005”。后面发现最根本原因是我在某个C++类的构造函数中添加了一句GEngine->AddOnScr

2016-08-22 15:36:39 7266 2

原创 UE4纯蓝图添加C++遇到的一个坑

坑描述:    我有一个纯蓝图的项目,挺大的项目。我后面想添加一个C++的文件,于是我就点击添加,结果失败了,输出显示“ERROR: UnrealBuildTool encountered an error while compiling source files”。我想一定是哪些文件有冲突了,就将工程目录多余的全部删除了,如图。我天真的以为这时候双击项目文件可以打开,可是我错了!弹出对话框出

2016-08-18 12:39:22 9210 6

转载 Unity中的Path对应各平台中的Path

最近使用Unity读取各个平台路径,特别对移动平台路径的处理简直是各种蛋疼 各种坑在此与大家分享下IOS:Application.dataPath : Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/xxx.app/DataApplication.streamingAssetsPath : Application/xxxxxxx

2016-05-11 13:24:18 862

转载 unity 在移动平台中,文件操作路径详解

http://www.unitymanual.com/thread-23491-1-1.html 今天,这篇文章其实是个老生常谈的问题咯,在网上类似的文章也比比皆是,在此我只是做个详细总结方便大家能够更好、更快的掌握,当然,如有不足的地方 欢迎指正!!!相信大家在开发过程中,难免会保存一些文件在客户端进行本地化操作。如:配置文件,状态文件,Assetbundle文件

2016-05-11 13:02:14 974

转载 Unity新版网络-NetworkManager

NetworkManagerNetworkManager是一个组件,用来管理网络多人游戏的状态。它实际上是完全使用HLAPI实现,所以它所做的一切程序员可以使用其他方式实现。然而,NetworkManager封装好了很多有用的功能到一个地方,使创建、运行和调试多人游戏尽可能简单。NetworkManager可以使用使其完全没有脚本。在编辑器的检视面板,允许配置它的所有特性。Netw

2016-05-03 17:43:55 14454 5

原创 Unity局域网匹配服务器

只贴代码,自己研究,已经测试过!using UnityEngine;using System.Text;using System.Net;using System.Net.Sockets;using System.Threading;using UnityEngine.UI;public class BroadCast : MonoBehaviour{ private

2016-04-20 15:42:08 4729 1

翻译 《VR入门系列教程》之22---GearVR SDK代码剖析

GearVR SDK代码剖析    接下来我们来了解一下GearVR开发包的底层代码,它底层的代码和之前在第三章中讲的桌面SDK代码非常类似,当然,也有许多不同的地方。    首先,我们看看如何构建Unity场景。在开发包中有一个具有camera Rig的预设体,这个预设体提供了Oculus的立体渲染技术和GearVR配套的头动追踪技术。    将Hierarchy

2016-04-15 20:40:53 5847

翻译 《VR入门系列教程》之21---使用Unity开发GearVR应用

使用Unity开发GearVR应用    上一章我们介绍了如何运用Unity3D开发Oculus Rift应用,当然,这个便宜且强大的游戏引擎也可以用于GearVR的应用开发,这时我们需要用到Oculus Mobile SDK(移动端SDK)。配置Unity开发环境    之间我们以及下载好了Oculus Mobile SDK,并且配置好了安卓环境,同时,我

2016-04-15 20:39:56 6328

翻译 《VR入门系列教程》之20---使用Oculus移动端SDK

使用Oculus移动端SDK    在基于安卓系统的GearVR上开发应用需要用到Oculus的移动端SDK,下面的网址可以下载SDK:http://developer.oculus.com    如果你没有账户,免费注册一个。然后进行下面几步:    1.在顶部导航栏选择Downloads页面。    2.在SDK下拉选项中选择SD

2016-04-15 20:38:37 8396

翻译 《VR入门系列教程》之19---GearVR开发初识

本章我们来介绍一下如何在移动VR设备的佼佼者GearVR上进行开发,之前我们在桌面端的VR开发想法可以直接应用在移动端,但是仍然会有些不一样的技术需要注意。这次,我们仍然采用Unity3D引擎构建示例,在开始编码之前,我们来了解一下这个跨时代的新设备。    三星与Oculus合作创建了移动端VR的解决方案,它采用Oculus的图形畸变算法和新一代头动追踪技术,将一个高分辨率三星的智能

2016-04-15 20:37:34 4111

转载 NetworkManager详解

直接继承自  MonoBehaviour,  还有就是被设计成了单例  singletonNetworkManager 网络管理器是一个方便的HLAPI 类,用于管理网络系统 。        对于简单的网络应用NetworkManager 网络管理器可以使用HLAPI控制 。它提供了简单的方法来  启动和停止  客户端和服务器,以及 管理场景,而且具有虚拟函数,用户代码可以使

2016-04-15 20:35:40 15611

转载 C#中 As 和强制转换的总结

1.1.1 摘要C#是一门强类型语言,一般情况下,我们最好避免将一个类型强制转换为其他类型,但有些时候难免要进行类型转换。先想想究竟哪些操作可以进行类型转换(先不考虑.NET提供的Parse),一般我们都有以下选择:使用as操作符转换,使用传统C风格的强制转型使用is来做一个转换测试,然后再使用as操作符或者强制转 1.1.2 正文

2016-03-09 22:27:49 5610

翻译 《VR入门系列教程》之18---Oculus代码剖析

代码剖析原文作者:Tony Parisi    那么,Unity究竟是如何支持Oculus VR运行的?首先,我们来看看Unity场景是如何构建的。在Unity集成开发包中有一个相机预设体,这个预设体提供了最基本的VR技术,包括:Oculus的立体渲染和头动追踪,下面我们来具体操作一下。    在Hierarchy面板中定位到OVRCam

2016-03-09 10:26:47 6827 1

转载 HTC Vive的Lighthouse工作原理

在虚拟现实(VR)这样一个新兴产业里,获得了最多注目的自然是明星公司Oculus。很多人都体验过Oculus Rift,知道VR头显会是一种什么样的体验。但是由Valve和HTC合作而开发的Vive,就没有那么多人体验过了。最近笔者有幸接触到了HTC Vive,尽可能的向大家解释Vive到底在体验上,与Oculus有何区别,以及它有什么过人之处。    说到Vive就不得不提到Va

2016-03-09 10:25:02 30547 1

翻译 《VR入门系列教程》之17---发布第一个应用

发布运行    Unity可以支持多种目标平台的发布,包括:桌面端、Web端、移动端、游戏主机端。    发布运行之前的Cubes场景至桌面端,我们先选择File->Build Settings...,然后会出现一个对话框,如图3-11所示。 图3-11    接下来,我们需要做这件事才能正常发布:    1.在列表中选择“P

2016-02-29 16:59:40 4927 3

转载 《VR入门系列教程》之16---第一个OculusVR应用

第一个VR应用    之前我们已经将Oculus的开发包导入到空工程中了,现在我们来构建第一个桌面VR的示例。开发包中已经有一个示例场景,只需要几步就可以让这个场景运行起来。我们将要构建的这个Demo如图3-8所示,这个从我电脑上截的图,这个场景非常简单,里面有几百个漂浮的立方体,仅此而已。当你把Oculus Rift连接到你的电脑上时,你就可以通过头显进入一个沉浸式的场景,你可以来回

2016-02-23 10:22:28 6399 2

翻译 《VR入门系列教程》之15---配置Oculus的开发环境

安装Oculus SDK    在使用类似Unity3D之类的引擎开发Oculus Rift应用之前,你必须先安装Oculus的SDK,在Oculus的官网上可以下载:http://developer.oculus.com    你可以免费注册一个账号,登录之后进行下面几步:    1.在网站菜单中选择“Downloads”。

2016-02-21 12:59:24 10945

翻译 《VR入门系列教程》之14---面向大众的Unity3D

大众化的游戏引擎--Unity3D    并不是所有VR应用都是游戏,然而现在做VR开发的几乎都会用专业游戏引擎来做,因为游戏引擎既满足了一个引擎的要求又可以方便地制作出高品质的VR应用。一个游戏引擎主要核心包括:高品质图像渲染、物理模拟引擎、实时光照、脚本驱动以及强大的可见即可得编辑器。    目前市面上有许多非常好而且很成熟的游戏引擎,Unity3D是我们制作VR应用的首选

2016-02-19 16:19:48 11242

转载 VR/AR工作原理、目前存在的技术问题

摘要这些挑战,每一个都还需要很多努力才能解决。目前它们很多都还不到量变(只是需要优化)的阶段,而是需要大的质的飞跃。所以,路漫漫而修远兮。但既然这是计算机发展的必然方向,拭目以待吧。  是什么使得一个还没有发布任何产品的公司吸引了阿里巴巴8亿美金投资,公司估值高达45亿美金?今天在硅谷大讲堂:硅谷VR/AR技术论坛邀请到了Google资深研究员,9年专注VR/AR技术的美女吴博士,纽约

2016-02-18 15:40:28 56387 2

转载 Unity中的结构体(C#)

结构体和类很像,但完全不同。抱歉:) 如果你不知道结构体,或者你想用结构体,或者你不知道传引用和传值的差别,那么这一课就是为你量身定做。Unity中的结构体既然这个系列是为了Unity而学习C#的,那先来了解一下,那些已经使用了结构体的地方吧。Vector2, Vector3 和 Vector4RectColor和Color32Bound

2016-02-17 10:45:31 14580 1

空空如也

空空如也

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

TA关注的人

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