zoukankan      html  css  js  c++  java
  • Unreal4 入门

    http://blog.sina.com.cn/s/blog_7c5fd2e90101ku0j.html

    使用Unreal4引擎前需要安装 或者编译引擎。 下面就为同学们介绍下 Unreal4 安装配置。


    一. 在Win7下安装Unreal4

    在Win7下安装Unreal4需要以下几个步骤:

    1. 打开控制面板程序和功能 检查是否已安装 Microsoft Visual C++ 2010 Redistributable ,请同学们先卸载掉,否则下面安装DXSDK_Jun10时会出现Error Code:S1023错误。(卸载完成一定要重启电脑 不然还会出现Error Code:S1023的错误 如果没有安装的同学请继续下一步Unreal4 <wbr>入门(安装) 

    Unreal4 <wbr>入门(安装)


    2. 安装DXSDK_Jun10 如果出现下图所示错误Error Code:S1023 请先完成第一步。

    Unreal4 <wbr>入门(安装)


    3. Win7下还需要安装 Windows 7 SP1(Service Pack 1) KB976932 补丁(windows6.1-KB976932-X64.exe)补丁可以从微软上下载(大概903MB)
    附下载地址(http://windows.microsoft.com/zh-cn/windows7/learn-how-to-install-windows-7-service-pack-1-sp1


    4. 安装完Windows 7 SP1(Service Pack 1) KB976932 补丁后就接下需要安装10以上版本的InternetExplorer浏览器。大概就是ie11_windows6_1_x64_zh_cn.exe 的一个安装程序。
    附下载地址 Internet Explorer 11(http://windows.microsoft.com/zh-cn/internet-explorer/ie-11-worldwide-languages


    5. 以上4步完成后就可以安装高端大气上档次的VisualStudio2013,也可以选择安装VisualStudio2012看个人喜好但是VisualStudio2013是Unreal4Engine引擎开发IDE所以UE4对VS2013支持的最好,还有很多插件呦。


    6. 最后一步就是安装UE4了,直接安装UnrealEngineInstaller-1.0.0-2039063.msi文件。桌面或者安装路径的Unreal EngineLauncherEngineBinariesWin64UnrealEngineLauncher.exe 可以直接运行啦。

    Unreal4 <wbr>入门(安装)


    7. UnrealEngineLauncher是一个引擎用户验证登陆器,使用了增量更新机制(哈哈 做游戏的更新机制已经给大家展现出来,具体能有多强大还需要好好研究一下Unreal4 <wbr>入门(安装))。在(https://www.unrealengine.com/blog/welcome-to-unreal-engine-4)Unreal4官网注册一个账号就可以登录。
    我在淘宝花了120大洋找人代付了1个月的会员,还购买了一个月的GreenVPN。准备好好研究下喽Unreal4 <wbr>入门(安装) 
    会员登陆后还需要更新一个4.0.2的包大概7个G左右(嘿嘿 知道为什么买VPN了吗 - -!)

    Unreal4 <wbr>入门(安装)


    二. 在Win8/Win8.1 下安装Unreal4

    1. 依然首要问题安装DXSDK_Jun10时会出现Error Code:S1023错误。只要按照Win7下安装的第一步解决就OK了,一定不要忘记卸载完要重新启动计算机呦。

    2. 安装Visual Studio 2013或者Visual Studio 2012,个人建议选择VS2013许多新特性很适合Unreal4,而且UE4对Visual Studio 2013支持的比较好。
     
    2. 就可以直接安装UnrealEngineInstaller-1.0.0-2039063.msi文件了。


    三. 其他方式安装Unreal4 Engine

    算是小福利喽,不想付费又对UE4感兴趣的同学可以看下面方法,但是不确保链接总是会有效喔。
    Unreal4源码包下载链接(http://pan.baidu.com/s/1qWCYkz
    引擎资源包(一)下载链接(http://pan.baidu.com/s/1eQzfwo
    引擎资源包(二)下载链接(http://pan.baidu.com/s/1dD5Tcn

    1. 下载好Unreal4源码后先将压缩包解压缩,得到UnrealEngine-4.0.1-release文件夹,然后需要把引擎资源包(一)和引擎资源包(二)下载后解压到UnrealEngine-4.0.1-release文件夹下覆盖相应目录文件。

    2. 安装DXSDK_Jun10.exe,如果出现下图所示错误Error Code:S1023 请同学们看一下上面Win7安装Unreal4的第一步骤。

    3. 安装完DXSDK后,双击UnrealEngine-4.0.1-release目录下的GenerateProjectFiles.bat文件,等待差不多1分钟后点击目录下的Ue4.SLN(VisualStudio2013的工程文件

    4. 然后就可以用VisualStudio2013打开工程文件可以进行编译了,编译时间会很长根据每位同学机器配置会有差异基本上15分钟就可以搞定,请同学们耐心等待。编译完成后就可以在 UnrealEngineEngineBinariesWin64目录找到UE4Editor.exe等运行文件啦。


    小结:官方说现在还是未优化版本,稳定版请等待几个月会推出4.1版本(版本更新说明已经在我博客上贴出来 感兴趣的可以去看下Unreal4 <wbr>入门(安装)),虚幻4运行配置较高,大家赶紧去体验吧。


    这次主要是简单介绍下Unreal4引擎使用前的配置 和 VisualStudio2013调试插件的配置


    1. 在Unreal4安装目录下找到路径为 Unreal Engine4.0EngineExtras 的文件夹。如下图:
     
    Unreal4 <wbr>入门(配置)

    可以很清晰的看到有 Android ,FX_tools , Maya_AnimationRiggingTools , MayaVelocityGridExporter , UnrealVS 与 VisualStuaioDebugging 这6个插件。

    Android: 这个文件夹里主要是 安装AndroidSDK AndroidNDK 和 JDK 安装这些主要是为了在Win7平台下用Unreal4引擎直接打Android的apk包使用。

    FX_tools: 这个文件夹里主要是3DMax2012的插件。

    Maya_AnimationRiggingTools和MayaVelocityGridExporter: 这两个文件夹是Maya导出插件和编辑器工具

    UnrealVS: 这个文件中有VS2012和VS2013两个版本的UnrealVS.vsix插件,只需要双击就可以安装了。 附图:
    Unreal4 <wbr>入门(配置)
    VisualStudioDebugging: 文件夹下有一个UE4.natvis文件(.natvis 文件是带 .natvis 扩展名的 .xml 文件),同学们需要把这个文件拷贝到 安装VisualStudio2013的按照目录下,路径为Microsoft Visual Studio 12.0Common7PackagesDebuggerVisualizers的文件夹中。 这样同学们就可以再VisualStudio2013中的调试栏的监控里看到 Unreal4引擎自定义的特殊类型的值啦Unreal4 <wbr>入门(配置)      附图:

    Unreal4 <wbr>入门(配置)


    2. 为什么建议各位同学使用Visual Studio 2013呢,不仅仅是因为Unreal4引擎对VS2013支持的最好。在Unreal4中还有比较特殊的用途就是,当你想为你的项目添加C++代码的时候你需要点击File菜单中的Add Code to Project按钮。 下面附张图:


    Unreal4 <wbr>入门(配置)


    下面这张图 警告同学们啦,必须需要使用Visual Studio 2013才能创建新的Class。 Unreal4 <wbr>入门(配置)

    Unreal4 <wbr>入门(配置)

    大概就介绍到这里啦。

      对于大型游戏MMORPG游戏或是3D街景(虚拟现实)还有大型无缝地图都需要地图啊,关卡动态加载的机制来达到让用户感觉自己一直是在漫游,而不会出现Loading(读条),卡界面等情况。当然除非是垮区域无法依靠关卡和关卡中之间的关系做处理。


         UnrealEngine4 作为一个多年处于世界前矛的商业引擎,自然而然也为大家考虑到这个这种硬性需求。UnrealEngine4 中的动态加载大概分为3种。

         首先需要明确下几点概念。因为再同学们信息会等的前提下才会更有利于理解和相互交流。好了,不瞎扯了进入正题。

         1.地图(Map):地图这个概念在UnrealEngine4中基本上所示虚拟出来。当然我们编译完一个场景后会保存到自己的工程目录下 如:XXXXContentMaps  保存的文件名叫做.umap。一个工程下可以有很多很多.umap文件,但是我们需要注意到,我们在单独保存场景时编辑器都是基于Level操作的。代码中只有一个函数是关于地图[UEngine::LoadMap]。  如下图:

    Unreal4 <wbr>入门(关卡动态加载)


        2.关卡(Level):关卡这个概念应该是在UnrealEngine4最常用使用的,在UE4编辑器中还有一个单独Levels编辑器。  如下图:

    Unreal4 <wbr>入门(关卡动态加载)


        3.世界(World):World这个概念之前在UnrealEngine3中一直跟地图的概念差不多,World下面会有很多的Levels还有八叉树场景管理器,以及一些寻路啊,对Level和Actor的管理函数。当然现在也差不多,不过没有看见八叉树,多了一种LevelActor的类,SpawnActor中创建对象为"ConstructObject"之前创建对象另一个函数需要Outer和Owner的"DuplicationObject"。


    言回正传:UnrealEngine4引擎提了我们有三种动态加载的方法,下面一一介绍。

    一. 通过使用LevelStreamingVolume的方法:

        通过Modes窗口下的Volumes找到LevelStreamingVolume,拖动到编辑器中让它覆盖住同学们两个Level,调节LevelStreamingVolume的StreamingUsage属性(比如有加载后锁定,加载,加载后显示等)。
        当我们的Pawn进入到这个LevelStreamingVolume后关卡就会对应的加载啦。  如图:

    Unreal4 <wbr>入门(关卡动态加载)

     加载类型设置属性图例

    Unreal4 <wbr>入门(关卡动态加载)

    二. 通过使用BluePrint的方法:

        通过打开关卡的Blueprints使用蓝图完成动态加载。那么在Blueprints中完成动态加载我们需要用到几个节点分别为 LoadStreamLevel和UnloadStreamLevel。 如图:

    LoadStreamLevel节点
    Unreal4 <wbr>入门(关卡动态加载)
    UnloadStreamLevel节点
    Unreal4 <wbr>入门(关卡动态加载)
        
        特别要注意的是LoadStreamLevel节点需要在MakeVisibleAfterLoad打勾,不然不会显示的呦。第二个暴露变量ShouldBlockonLoad打上勾会,不会被UnloadStreamLevel节点卸载(同学们自行按照需求选择呦)。还有一定要在Leves编辑器中把修改动态加载方法中的[总是加载]改成[蓝图]喔,不然通过Blueprints无法控制动态加载的。


    三. 通过写代码的方式加载

        在需要切换动态加载关卡的时候,调用[UGameplayStatics::LoadStreamLevel]函数来加载想要使用的关卡。
        大概流程是创建一个FStreamLevelAction,这个Action回去读暴露参数的包遍历所有Level关系找到指定关卡,然后ActivateLevel这个关卡激活的时候会有加载或者卸载关卡。

    PS:
        这几天一直在回忆之前使用UnrealEngine4学过的知识,也同时在看UnrealEngine4的新代码,如果出现概念混淆的情况或者叙述错误的情况,请各位同学指出并与我交流Unreal4 <wbr>入门(关卡动态加载)。  有机会请你们吃饭,喝咖啡。

    C++和蓝图

    概述

    蓝图可以继承C++类,从而使得程序员可以在代码中创建新的游戏性类,而关卡设计人员可以使用蓝图来继承该类并对其进行修改。 有很多种修饰符可以改变C++类和蓝图系统间交互方式,其中某些修饰符会在本示例中突出介绍。

    类设置

    在类设置的第一部分中,使用C++类向导创建一个名称为LightSwitchBoth 的类。

    LightSwitchBoth类中的大部分代码设置都和仅使用C++LightSwitch示例类似。尽管您可以让一个蓝图继承LightSwitchCodeOnly类,
    但蓝图图表并不能访问该类中创建的组件、属性及函数。该示例将使用 UPROPERTY() 和 UFUNCTION() 修饰符,这两个修饰符使得LightSwitchBoth作为继承它的蓝图的模板。

    您会发现首先参考下 仅使用C++LightSwitch示例是有用的,这样您可以看下如何设置头文件及源文件 来创建LightSwitchComponentSphereComponentDesiredBrightness属性及OnOverlap函数。

    这个头文件是从 仅使用C++LightSwitch示例 改编而来,添加了以下功能:

    PointLightComponentSphereComponentBlueprintReadOnly(仅蓝图可读的),并且将显示在 我的蓝图 选卡中的 Switch Components(切换组件) 类目中。

    OnOverlap现在是一个BlueprintNativeEvent,将会显示在 我的蓝图 选卡中的 Switch Functions(切换函数) 类目中。

    DesiredBrightnessBlueprintReadWrite(蓝图可读写的),将显示在 我的蓝图 选卡中的 Switch Properties(切换属性) 类目中。

    DesiredBrightness现在是EditAnywhere(随处可编辑的),而不是VisibleAnywhere(随处可见的)

    UCLASS() 宏有个 Blueprintable 修饰符。在这个示例中,该修饰符不是必须的,因为LightSwitchBoth直接继承Actor,而ActorBlueprintable(可蓝图化的),所以LightSwitchBoth会继承该修饰符。

    加上 UPROPERTY() 和 UFUNCTION() 宏中的额外修饰符,LightSwitchBoth类的头文件如下所示:

    LightSwitchBoth.h

    // Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.

     

    #pragma once

     

    #include "LightSwitchBoth.generated.h"

     

    UCLASS()

    class ALightSwitchBoth : public AActor

    {

        GENERATED_UCLASS_BODY()

     

       

        UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Switch Components")

        TSubobjectPtr PointLight1;

     

       

        UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Switch Components")

        TSubobjectPtr Sphere1;

     

       

        UFUNCTION(BlueprintNativeEvent, Category="Switch Functions")

        void OnOverlap(class AActor* OtherActor, class UPrimitiveComponent* OtherComp, int32 OtherBodyIndex);

     

       

        UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Switch Properties")

        float DesiredBrightness;

    };

     

    在LightSwitchBoth的源文件中,构造器仍然是一样的。但是,需要对 OnOverlap 函数做一点修改。这个函数现在是一个BlueprintNativeEvent。这意味着 在继承这个类的蓝图中,可以放置一个覆盖 OnOverlap 的事件,当正常调用该函数时会执行此事件。如果该事件不存在,那么则是执行那个函数的 C++实现。要想使这个设置正常工作,该C++函数需要重命名为 OnOverlap_Implementation 。稍后在本示例中将介绍这个蓝图设置。对 OnOverlap 函数 进行了修改后,LightSwitchBoth 的源文件如下所示:

    LightSwitchBoth.cpp

    // Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.

     

    #include "BasicClasses.h"

    #include "LightSwitchBoth.h"

     

    ALightSwitchBoth::ALightSwitchBoth(const class FPostConstructInitializeProperties& PCIP)

        : Super(PCIP)

    {

     

        DesiredBrightness = 15.0f;

     

        PointLight1 = PCIP.CreateDefaultSubobject(this, "PointLight1");

        PointLight1->Brightness = DesiredBrightness;

        PointLight1->bVisible = true;

        RootComponent = PointLight1;

        Components.Add(PointLight1);

     

        Sphere1 = PCIP.CreateDefaultSubobject(this, TEXT("Sphere1"));

        Sphere1->InitSphereRadius(250.0f);

        Sphere1->OnComponentBeginOverlap.AddDynamic(this, &ALightSwitchBoth::OnOverlap);        // set up a notification for when this component overlaps something

        Sphere1->OnComponentEndOverlap.AddDynamic(this, &ALightSwitchBoth::OnOverlap);      // set up a notification for when this component overlaps something

        Sphere1->AttachParent = RootComponent;

        Components.Add(Sphere1);

    }

     

    void ALightSwitchBoth::OnOverlap_Implementation(AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex)

    {

        if ( OtherActor && (OtherActor != this) && OtherComp )

        {

            PointLight1->ToggleVisibility();

        }

    }

    当创建类时,新的 UCLASS() UFUNCTION() /或 再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://www.cnblogs.com/captainbed

  • 相关阅读:
    Linux系统服务
    Linux进程管理
    Linux压缩打包
    Linux输入输出
    Linux权限管理
    Linux用户管理
    Linux文件管理
    Linux-Shell
    Centos7 安装jdk1.8
    Python数据分析之路
  • 原文地址:https://www.cnblogs.com/skiwnchiwns/p/10190280.html
Copyright © 2011-2022 走看看