2018-09-04 20:14:15 inijalas 阅读数 1880
  • 从这里开始虚幻4-Editor介绍 v4.18

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

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

Version: 4.18
Unreal无法正常使用带透明的png贴图。导入后,png透明部分会被填充颜色信息:
这里写图片描述

解决办法:
将png转换成带Alpha通道的tga。在Photoshop里,Control+左键点击png图层,选中颜色区域后,在PS的Channels面板下面,点击“Save Selection As Channel”。下面会多一Alpha层,Alpha通道被创建。
这里写图片描述

PS另存为32位tga,是否Compress无所谓。然后unreal导入该tga图,Alpha通道将顺利被识别。

2019-02-16 18:03:11 qq_16756235 阅读数 607
  • 从这里开始虚幻4-Editor介绍 v4.18

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

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

一般我们将贴图资源导入引擎的时候,引擎会自己抽取贴图文件的数据然后创建一个UTexture的Object合一个Uasset。但是有时候我们想自己写工具的话需要自己实现这套创建机制。

可以在引擎的UTextureFactory找到我们导入引擎时的逻辑代码。可以看到不同的图片格式,不同的像素深度创建的像素格式合贴图格式都不一样。

要使用代码创建贴图资源我们第一部是先指定一个创建贴图的地方

// Build a package name to use for mesh
	FString MeshName;
	FString PackageName;

	if (InPackageName.IsEmpty())
	{
		FString NewNameSuggestion = FString(TEXT("StaticMesh"));
		FString PackageNameSuggestion = FString(TEXT("/Game/Meshes/")) + NewNameSuggestion;
		FString Name;
		FAssetToolsModule& AssetToolsModule = FModuleManager::LoadModuleChecked<FAssetToolsModule>("AssetTools");
		AssetToolsModule.Get().CreateUniqueAssetName(PackageNameSuggestion, TEXT(""), PackageNameSuggestion, Name);

		TSharedPtr<SDlgPickAssetPath> PickAssetPathWidget =
			SNew(SDlgPickAssetPath)
			.Title(LOCTEXT("ConvertToStaticMeshPickName", "Choose New StaticMesh Location"))
			.DefaultAssetPath(FText::FromString(PackageNameSuggestion));

		if (PickAssetPathWidget->ShowModal() == EAppReturnType::Ok)
		{
			// Get the full name of where we want to create the mesh asset.
			PackageName = PickAssetPathWidget->GetFullAssetPath().ToString();
			MeshName = FPackageName::GetLongPackageAssetName(PackageName);

			// Check if the user inputed a valid asset name, if they did not, give it the generated default name
			if (MeshName.IsEmpty())
			{
				// Use the defaults that were already generated.
				PackageName = PackageNameSuggestion;
				MeshName = *Name;
			}
		}
	}
	else
	{
		PackageName = InPackageName;
		MeshName = *FPackageName::GetLongPackageAssetName(PackageName);
	}

	// Build a package name to use for material
	FString NewMergeOneMaterialName = MeshName + TEXT("_MergeMat");
	FString NewMergeOneMaterialPackageName = PackageName + TEXT("_MergeMat");

	//Build a package name to use for texture
	FString NewMergedTextureName = MeshName + TEXT("_MergeTex");
	FString NewMergedTexturePackageName = PackageName + TEXT("_MergeTex");

有了这个路径之后我们New一个Package

UPackage* TexturePackage = CreatePackage(NULL, *NewMergedTexturePackageName);

然后New一个Object,与此同时把刚才New的哪个Texture Object塞到这个Package里

UTexture2D* MergedTexture = NewObject<UTexture2D>(TexturePackage, *NewMergedTextureName, RF_Public | RF_Standalone);

接下来需要初始化这个Texture

使用

Source.Init(DestTextureSizeX, DestTextureSizeY, 1, 1, TSF_BGRA8);

Texture的Source中的Init方法初始化它即可,注意格式。

2017-03-23 00:07:28 shidya 阅读数 2292
  • 从这里开始虚幻4-Editor介绍 v4.18

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

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

1

AO贴图详解及生成方法

1、Ao贴图的作用

Ao-AmbientOcclusion,“环境吸收”或者“环境光吸收”

Ao贴图就是为模型提供了非常精确和平滑的阴影,就好像给模型打了全局光照一样的效果。

通俗来讲就是:Ao贴图不需要任何灯光照明,它以独特的计算方式吸收“环境光”,也就是同时吸收未被阻挡的光线和被阻挡光线所产生的“阴影”,从而模拟全局照明的结果,它主要是通过改善阴影来实现更好的图像细节,尤其在场景物体很多从而到处阻挡着光线导致间接照明不足时,Ao贴图的作用会更加明显。

使用Ao贴图可以解决或改善漏光、飘和阴影不实等问题,解决或改善场景中缝隙、褶皱与墙角、角线以及细小物体等的表现不清晰问题,综合改善细节尤其是暗部阴影,增强空间的层次感、真实感,同时加强和改善画面明暗对比,增强画面的艺术性。

Ao贴图记录了物体的凹凸,上下的光影变化信息。Ao贴图在模型制作完成后是不贴在材质球上面的。次世代游戏Ao贴图主要用于绘制固有色贴图(DiffuseColor)。在固有色贴图(DiffuseColor)上叠加一张Ao贴图,会使物体的暗部更有细节,绘制贴图更加方便、快捷。

2、Ao贴图的烘焙方法

1)Maya烘焙Ao贴图的方法

【1】高低模一定要想到匹配,并且检查法线的方向是否正确。

【2】选中低模在Rendering(渲染模块)下执行Lighting/Shading-TransferMaps命令。弹出窗口如图

这个面板和烘焙法线时的面板是一样的。

【3】设置低模烘焙时的包裹框。和烘焙法线时的操作是一样的。并识取高模。【4】选择为Ambient为贴图烘焙。

图5-54

【5】设置面板相应属性。

注意:这里与烘焙Normal(法线)贴图时的不同之处在于,贴图的的基本设置不同,因为生成原理的不同,所需渲染器不同。烘焙Normal(法线)时是在MayaCommonOutput面

板下调节,而Ambient贴图是在mentalrayCommonOutput面板下调节基本数值。【6】点击Bake开始烘焙贴图

【6】点击Bake开始烘焙贴图

2)3DMax烘焙Ao贴图的方法

【1】为低模贴图上法线贴图,新建一个平面,做为地面,离物体稍微远一点。

【2】在场景任意位置打一盏天光。这时模型会变成黑色。

选中天光,在右边工具栏中勾选CastShadows,并将RaysperShadows数值设置成15~20左右,这样能很好的控制Ao贴图的噪点大小。如果数值太低,则噪点太大、太多,数值太高贴图烘焙将会花费很长时间。

【3】选择中模型执行Rendering-RenderToTerture。或者直接按下键盘上的0键。弹出如图所示的对话框。

【4】打开打开抗锯齿,操作如3DMax法线中设置相同。

【5】添加烘焙ShadowsMap贴图

【6】面板属性的基本设置

【7】点击Render开始烘焙贴图。

3)xNormal软件Ao贴图烘焙方法

【1】分别添加高低模型。与烘焙法线时添加高低模型是相同的操作。

【2】单击第三项Bakingoptions设置为Ambientocclusion烘焙贴图类型。设置面板基本属性。

Ambientocclusion内的基本属性一般用默认设置就行了,有时项目有不同的要求,会有不同的修改,一般改动不大。

【3】点击GenerateMaps进行贴图的烘焙。

4)Mudbox烘焙Ao贴图方法

【1】将高低模型导入到Mudbox软件中,点击菜单栏Maps-ExtractTestureMaps-NewOperation打开烘焙贴图对话框。

【2】点选AmbientOcclusionMap烘焙贴图。

【3】添加高低模型。选中要添加的模型点击AddSelected添加。

【4】设置面板的基本属性。

【5】点击Extract进行贴图的烘焙。


2018-11-15 17:21:01 xiaoxiaolooi 阅读数 256
  • 从这里开始虚幻4-Editor介绍 v4.18

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

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

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

2015-07-02 19:38:32 Neil3D 阅读数 3967
  • 从这里开始虚幻4-Editor介绍 v4.18

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

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


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,资源导入,增加插件支持等,这里就不一一细说了。推荐看一下官网的文章吧,作为本文的补充偷笑

unreal

阅读数 239

Unreal里的动画

阅读数 1623

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