2018-11-15 17:21:01 xiaoxiaolooi 阅读数 292
  • 从这里开始虚幻4-第2辑-蓝图 v4.18

    本课程系列取名英译系列,是录制人员参考国外英文原版经典教程,结合中国人的习惯录制而成。希望能够给大家以帮助。从这里开始虚幻4系列教程,是Unreal的官方发布的入门教学,非常经典,是学习Unreal的佳入口。

    2461 人正在学习 去看看 杨石兴

unreal GIS 模块

unreal4 源代码模块

自从unreal4 开源以来,osg ogre 渐渐不能用来吃饭,于是本着听人劝吃饱饭的思想,转头unreal门下,继续为混口饭事业,投身革命。可是unreal的c++编程基本没有什么例子可看,只好自己从头做起。

  1. 开发者驱动
  2. 编辑器
  3. 工程目录
  4. 基础框架代码
  5. 第三方库

在这里插入图片描述
这个是文档目录,代码量难以阅读,决定从以下三方向入手,第一次写文字,真心不容易。
1.案例编写使用unreal4 的普通界面搭建自定义三维场景 介绍 editor层的基础代码
2.添加GIS地图属性信息 介绍 驱动层的基础代码
3.程序化植物合成 介绍 与unreal基础平台结合
以后会陆续跟新到这里
推荐大家使用 阿里云 https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=ic4sfgeu

2018-01-11 19:48:19 d137578736 阅读数 4866
  • 从这里开始虚幻4-第2辑-蓝图 v4.18

    本课程系列取名英译系列,是录制人员参考国外英文原版经典教程,结合中国人的习惯录制而成。希望能够给大家以帮助。从这里开始虚幻4系列教程,是Unreal的官方发布的入门教学,非常经典,是学习Unreal的佳入口。

    2461 人正在学习 去看看 杨石兴

效果:在场景中实时调用摄像头成像.

说明:本篇文章根据UE4英文官网文档实现,官网文档地址如下:

https://wiki.unrealengine.com/Integrating_OpenCV_Into_Unreal_Engine_4 

 

步骤一:准备工作

下载为UE4实现该功能的OpenCV插件,地址如下:

https://github.com/Brandon-Wilson/OpenCV-Plugin 

 

该文档位于github,如果你需要下载的话,需要先登录github,如果没有github账号请自行注册.

 

 

步骤二:

如下图创建一个C++工程.

 

步骤三:

打开工程所在目录:

 

步骤四:

将之前下载的OpenCV插件文件放入到UE4工程源码根目录中

 

步骤五:文件解读(该步骤没有实际操作,只是说明刚才OpenCV下载文件的用途)

l  OpenCV文件夹中的Plugins文件夹,该内部文件会形成UE4的插件!

如果对UE4插件模块不熟悉,请参看文档https://docs.unrealengine.com/latest/CHN/Programming/Plugins/index.html

 

l  打开插件的.uplugin文件,该文件会对插件信息做基本描述


下面做简单解读,如果希望弄得更清晰,请查阅UE4文档插件,"EnabledByDefault":false,修改为"EnabledByDefault":true,之后重启UE4(有弹窗点击yes)

 

l  ThirdParty这个文件里面包括了OpenCV作为第三方库提供的必要的头文件和dll或者lib动态库文件

 

l  \UE4源码目录\Plugins\OpenCV\Source\OpenCV该文件夹下有一个OpenCV.Build.cs文件,打开该文件


该文件中主要指出OpenCV第三方库路径,以供插件文件进行编译,同时如果插件需要依赖UE4其他模块的话,也需要在里面声明。

该文件的详细使用请参看文档https://wiki.unrealengine.com/Linking_Static_Libraries_Using_The_Build_System

 

 

步骤六:

l  编译UE4工程


l  右键点击工程.uproject文件,选择重新生成vs代码如下图:


 

步骤七:打开vs


 

步骤八:可以看到之前插件中的文件已经导入到了vs中打开WebcamReader.hWebcamReader.cpp文件,该文件创建了一个
继承子Aactor的类,该类中的成员函数对OpenCV进行了调用。具体内容参看下载后的文档。

 

步骤九:

新建蓝图类继承自WebcamReader类,并取名为BP_WebcamReader

 

步骤10:新创建材质

 

 

步骤11:初学者内容中找到T_Ceramic_Tile_M材质,

 

 

选择该材质按下T,之后到刚才新建的材质中点击鼠标左键,之后如下图连线

设置,


新建变量取名为Texture

 

 

步骤12:打开BP_WebcamReander蓝图类,加入一个Cube组件

 

 

步骤13

蓝图编程如下

 

步骤14:按下play就可以看到效果了!

 

 

 

 

 

 

 

 

 

 

 

 

2015-09-01 23:40:52 dongdongbusi 阅读数 921
  • 从这里开始虚幻4-第2辑-蓝图 v4.18

    本课程系列取名英译系列,是录制人员参考国外英文原版经典教程,结合中国人的习惯录制而成。希望能够给大家以帮助。从这里开始虚幻4系列教程,是Unreal的官方发布的入门教学,非常经典,是学习Unreal的佳入口。

    2461 人正在学习 去看看 杨石兴

Unreal 4 术语简介

标签: unreal4 游戏引擎 游戏开发

翻译自ue4官方文档

Objects

UE4中的objects和其他c++框架(QT、cocos2d-x)一样,具有垃圾收集、元数据等功能。
官方文档的描述:

The base building blocks in the Unreal Engine are called Objects and contain a lot of the essential “under the hood” functionality for your game assets. Just about everything in Unreal Engine 4 inherits (or gets some functionality) from an Object. In C++, UObject is the base class of all objects; it implements features such as garbage collections, metadata (UProperty) support for exposing variables to the Unreal Editor, and serialization for loading and saving.

Actors

在关卡摆放的游戏对象就是Actor。Actor可以可以作位置体积变换。在UE4中可以用蓝图或者c++来创建Actor。如果用c++,AActor是所有Actor的基类。
常用Actor:

- StaticMeshActor   环境
- CameraActor       相机
- PlayerStartActor  玩家起始

Components

组件component就是一个个可以附加到Actor上的功能点。人是Actor,会开车就是一个component。这个和和u3d里的概念类似的。ue4有很多组件,例如位置变换、audio等。

pawns

Actor的子类,用于表示人形角色或者其他具备avatar模型的角色。玩家以及NPC都是pawns。

Characters

pawn 的子类。用于表示玩家角色,具备输入控制、碰撞等属性。

PlayerController

玩家角色控制器?怎么翻译无所谓啦,反正就是用来接收玩家的输入并将这些输入信息关联到游戏中的角色。
在多人游戏中,每个客户端有且只有一个玩家控制器,客户端通过这个与服务端交互。

AIController

顾名思义,控制游戏中AI角色。

Brushes

用画刷画出来的游戏对象?不是很理解这个概念。反正画在游戏场景里的都是actor,可以用bursh画一些BSP(basic shape),例如圆柱体、立方体等等。

Levels

关卡,相当于游戏场景,里面有个中游戏对象。UE4中每个关卡都会被单独保存成.umap文件。

World

所有的level组成一个world。

GameModes

看了下文档,感觉似乎GameRule更适合它的意义。GameMode就是游戏的规则:玩家怎么加入游戏、游戏能否暂停、关卡的切换条件和方式等等。

GameStates

游戏状态,例如玩家的连接状态、比分等信息。

PlayerStates

玩家信息,例如姓名、职业、种族、等级、比分等等。

2016-06-17 09:50:12 fyyzwsws 阅读数 12534
  • 从这里开始虚幻4-第2辑-蓝图 v4.18

    本课程系列取名英译系列,是录制人员参考国外英文原版经典教程,结合中国人的习惯录制而成。希望能够给大家以帮助。从这里开始虚幻4系列教程,是Unreal的官方发布的入门教学,非常经典,是学习Unreal的佳入口。

    2461 人正在学习 去看看 杨石兴

Unreal Engine4(虚幻4)学习心得-材质

材质

制作材质的过程其实就相当于在写shader,只是UE4制作材质使用的是可视化方式在写shader。下面将介绍一些材质属性:

  • Blend Mode混合模式
    用于决定材质颜色如何和背景颜色混合。
    1. Opaque不透明
    2. Masked蒙版,蒙版材质可以利用蒙版贴图,将一些区域设置为可见或者不可见,比如铁丝网就可以使用蒙版
    3. Translucent半透明,可以以某种形式允许光线透过,比如玻璃
    4. Additive叠加,有透明度,用于增加颜色信息,比如各种粒子效果
    5. Modulate调制,将材质颜色乘以背景颜色,适合做贴花效果
  • Lighting Mode光照模式
    当半透明/透明的时候使用。
    1. Volumetric NonDirectional,是最节省的光照模式,只使用漫反射颜色,不用考虑材质法线。严格的说,只对动态光照的物体有效。
    2. Volumetric Directional,考虑材质法线。
    3. Volumetric PreVertex NonDirectional,同Volumetric NonDirectional,但是光照只在顶点计算,这样会减轻PS的消耗。
    4. Volumetric PreVertex Directional,同Volumetric Directional,但是光照只在顶点计算,这样会减轻PS的消耗。
  • Base Color常规色
    通常会通过PS制作一些贴图,作为基本色。所有的贴图都可以通过UV设置其平铺状态
  • Emissive自发光
    能让材质自己发光,可以用于制作材质外边缘的光晕效果。
  • Specular高光
    用于控制高光的颜色。光源照射到物体然后反射到人的眼睛里时,物体上最亮的那个点就是高光。高光控制着光线的反射,以展现一种光泽的效果。
  • Opacity不透明
    用于控制物体的透明度。
  • OpacityMask不透明蒙版
    用于和混合模式中的Masked蒙版模式组合使用,包含了可见还是不可见信息蒙版贴图就在这里连接。
  • Normal法线
    法线贴图是材质具有凹凸效果的原因。除非制作的是玻璃或者金属球之类的非常光滑的物体,否则一定要用法线。可以再加上一张细节贴图,与法线贴图相加,一起当做法线贴图。但是法线贴图中的凹凸信息其实是存在于RG通道中,B通道好比基准线,也就是被RG弄皱的底平面,因此如果想再加上一张细节贴图的话,蓝色通道千万不能动。法线贴图通过RGB的信息,以像素为单位来指定表面角度。
  • WorldPositionOffset世界位置偏移量
    只有要跟踪某个材质的世界位置,并且要沿某个方向移动它,这个属性才会被用到。

材质的其他属性(UDK)

  • Diffuse漫反射
    提供不透明颜色,好比常规颜色。通常会通过PS制作一些贴图(包含alpha通道,法线贴图),作为漫反射的基本色。
  • DiffusePower漫反射次幂
    描述颜色随光照信息的流失,从饱和向阴暗渐变的速度。
  • SpecularPower高光次幂
    用来模拟光滑度。
  • Distortion扭曲
    它能使一个对象表面的材质发生扭曲。使用方式比如:把混合模式设置为Additive叠加,然后设置无光照,然后把法线贴图连接到扭曲上(扭曲接收的就是法线信息,它要利用RGB通道来决定把像素点移到多远),就能看到热浪的效果,类似折射。
  • TransmissionColor透射色
    设置一个颜色,这样穿过物体表面的光线,好像会穿透物体扩散开来,呈现出次表面散射(3S)的样子(透射蒙版要设置为1才能看到)。比如设计角色的耳朵的时候,将耳朵部分的透射蒙版设置为1,然后将投射色设置为深红,那么当光线射到耳朵背面的时候,耳朵看上去就有次表面散射的效果。(这里只是模拟S3,而非真正的S3,但是很逼真,移动光源就可以看到半透明的效果)
  • TransmissionMask透射蒙版
    0和1组成的蒙版贴图用于决定哪里需要透射。透射色和透射蒙版主要用于蜡和人皮肤之类的地方
  • BumpOffset凹凸偏移
    凹凸偏移需要借用高度贴图。高度贴图可以使用法线贴图的alpha作为其高度值,然后将高度贴图作为基本色和法线的UV即可。
2015-07-02 19:38:32 Neil3D 阅读数 4048
  • 从这里开始虚幻4-第2辑-蓝图 v4.18

    本课程系列取名英译系列,是录制人员参考国外英文原版经典教程,结合中国人的习惯录制而成。希望能够给大家以帮助。从这里开始虚幻4系列教程,是Unreal的官方发布的入门教学,非常经典,是学习Unreal的佳入口。

    2461 人正在学习 去看看 杨石兴


Unreal Engine 4发布好长好长时间了,直到最近才有时间仔细去看一下。

TimSweeney老大一句话“IF YOU LOVE SOMETHING, SET IT FREE”,原来需要几十万授权金才能拿到的东西,就从$19,变成免费了,而且开源。作为一个国际顶尖的引擎,能走出这一步,对我等普通开发者真是福音啊。如此的牛X,再加上开源,相信Unreal Engine 4会火起来的,你看看最近E3上的产品展示也能感觉到。不过,Unreal的定位毕竟是“国际顶尖”,而非Unity3D那样的“开发大众化”,所以上手是有一定难度的。

下面我把对Unreal Engine 4的初步印象总结一下,特别针对像我一样有Unreal Engine 3的同学,希望更多的同学来已经学习Unreal。


UnrealScript去掉了

开发语言上最大的变化,莫过于把UnrealScript去掉了。
UnrealScript吧,当年来看还是一个非常NB的东西,要知道Unreal一代发布是1998年的事儿,而JAVA语言也就是95年才发布的。据说Tim Sweeney在开始设计Unreal的时候曾经考虑过使用Java作为上层语言,不过那时候Java还不成熟,所以他参考Java,实现了这个一个面向对象的,单根继承的脚本语言。不过,随着时间流转,Epic似乎并没有花太大的力气去演进UnrealScript。在Unreal Engine 3的时代,它确实显得有点老旧了,书写起来比一些现代语言确实有很多不方便的地方。所以,去掉就去掉吧。不过,值得注意的是,官方也留出了整合其他脚本语言的接口,例如LUA。


C++11

底层很多基础代码看上去有很强的亲切感,底层架构设计思路沿用了许多。底层依然是使用C++,不过用了很多C++11的特性,代码看上去简洁了不少。
项目的编译、构建使用UnrealBuildTool,这应该是从3代延续过来;另外,就是增加了一个UnrealHeaderTool工具,猜想是根据UCLASS,UPROPERTY等宏,生成自定义反射信息用的,具体的还待进一步研究。


Blueprint Visual Scripting

据说这是UE4最牛X的改进了。看了看,原来是Kismet的延伸,连源代码很多都是UKismentXXX那一套。UE3里面的Kistmet只限于在一个关卡中使用,而Blueprint扩展了。关卡可以有唯一的一个Level Blueprint,相当于原来的Kismet;另外增加了Blueprint Class,大概就是用Blueprint创建自定义的Actor、Pown之类的,由于有了这个功能所以原来的Archetype顺带也就被替代了。其实,作为老一代屌丝Coder,我一直对Kismet那种表达式层级可视化编程,一直不太感冒(像Unity的PlayMaker那样,提供更高层级抽象的可视化工具更好)。不过,既然是UE4主推的个东东,还是得看看。
不过,总体上给Designer一套可视化编程的东西,让他们自己实现一些关卡逻辑、游戏规则之类的,还真是一个特别好的方法。当然,我们这些Coder的工作还是不会丢掉的,例如游戏框架,游戏一些底层功能、常用模块还是要C++写好(或者使用LUA脚本?),封装给Blueprint来使用的。


AnimTree哪去了

UE3的AnimTree给我震撼太大了,所以特别关心UE4的动画系统。看了一下,貌似被分解成了BlendSpace和AnimGraph。
  • BlendSpace
    好比说“站立、走、跑”这三个动作,在UE3的AnimTree里面是有一个特定的node来混合的,根据移动速度不同。在UE4里,则需要创建一个BlendSpace1D资源,然后暴露出Speed参数。
  • AnimBlueprint
    使用Blueprint,AnimGraph,状态机等等控制角色的动画,怎么看上去和Unity的Mecanim有点像呢,唉~
看来AnimTree是真的不见了,很遗憾,因为我觉得那个使用树形结构来抽象的动画系统,实在是非常清晰而且强大。

渲染系统

基于物理的渲染(PBR:Physically-Based Rendering)效果真的是太NB了,Unity5虽然也是PBR,好像比UE4还是略逊一筹啊!这个无需多言了,各种DEMO视频大家都看了不少了。渲染流程也完全走延迟渲染了。但多线程渲染,SceneProxy、Material之类的基础架构没怎么变。

Behavior Tree

这个东西好像在国外的游戏AI领域这几年挺流行了,是个很高大上的东西,UE4直接做了,太好了。

另外,还有很多重大改进,例如Package,资源导入,增加插件支持等,这里就不一一细说了。推荐看一下官网的文章吧,作为本文的补充偷笑

Unreal4

阅读数 1783

没有更多推荐了,返回首页