2016-11-04 23:38:33 insul 阅读数 2814
  • 虚幻4开发入门

    UnrealEngine向来以一流效果和难以上手而著称,本课程就是帮助你跨过入门的这道门槛,能够上手掌握这个国际一流的3D引擎。

    64984 人正在学习 去看看 房燕良
打不开ue4工程时或者运行UEEditor崩溃,删除临时文件,只需保留以下文件夹
Conifg,  Content & Source 以及 .uproject
2019-07-18 13:40:28 xuebulaiyaodidiao 阅读数 334
  • 虚幻4开发入门

    UnrealEngine向来以一流效果和难以上手而著称,本课程就是帮助你跨过入门的这道门槛,能够上手掌握这个国际一流的3D引擎。

    64984 人正在学习 去看看 房燕良

文件夹结构

打开你所下载的虚幻引擎

首先大致了解下目录结构,进入你存储的路径找到项目名文件夹下会有如下几个文件夹:

以下是官方文档中解释的目录存放内容

官方文档地址(建议保存):http://api.unrealengine.com/CHN/

虚幻的基本操作

虚幻界面大致如下:刚进去会有一个桌子和椅子,我的是已有的项目打开

点击基本操作窗口-如图下窗口

操作方式-如fps游戏

wsad移动位置

鼠标右键按住不放划动移动视角

键盘e键水平上移

键盘q键水平下移

键盘f键聚焦

点击你要操作的物体按f聚焦-如我选中椅子:

选中你所操作的物体(我选的椅子)

按w键盘会出现x,y,z轴的移动操作

拖动其中箭头移动物体

选中如上图所示可按两个方向水平移动

选中所选物(椅子)

按e键旋转

按r键放大或缩小

请自行尝试

选中物体后可以看细节浏览器查看此物体的细节

如果你找不到你有那些物体或者物体过多-可以在世界浏览器中找

创建项目是选择具有初学者内容会有很多基础资产如图-点击内容窗口查看:

需要添加椅子直接将内容浏览器里的资产拖拽到基本操纵窗口

虚幻语言设置

在菜单栏上找到编辑

点击editor preferences

新版本有中文选项

声明

前面忘了说了本文章仅作为学习总结使用。

我是在udemy上看的Unreal Engine C++Developer:Learn C++ and Make Video Games

只可惜是英文视频没有中文-也推荐去看

2017-08-28 11:15:38 zilisen 阅读数 2676
  • 虚幻4开发入门

    UnrealEngine向来以一流效果和难以上手而著称,本课程就是帮助你跨过入门的这道门槛,能够上手掌握这个国际一流的3D引擎。

    64984 人正在学习 去看看 房燕良

创建MediaPlayer和MediaSource

UE4中的Media框架在官方文档中有蓝图的使用示例:
https://docs.unrealengine.com/latest/CHN/Engine/MediaFramework/index.html

在此我们用C++来实现。

首先在Content文件夹下新建一个Movies文件夹,将你要播放的视屏文件拷贝到项目工程的对应文件夹里。然后创建一个Media->FileMediaSource,此处我命名为SampleVideo,双击打开后再FilePath里选择你之前添加的视屏文件。
这里写图片描述
接着创建一个Media->MediaPlayer,勾选同时生成MediaTexture和SoundWave,此处我命名为SampleMedia。
这里写图片描述
这里写图片描述

创建UMG

接下来我们在编辑器中创建一个简单的UMG,之后再在C++中控制他来播放视频。
在Content目录下新建一个UMG文件夹,然后新建一个WidgetBlueprint,命名为MediaPlayUMG,打开它。然后我们要做的只是添加一个Image控件填充整个CanvasPanel,然后给Image的Brush设置为SampleMedia_Video
这里写图片描述

C++代码控制播放视频

接下来我们进入VS来添加控制视频播放的代码,此处我把控制代码写在了PlayerController中。

//MyPlayerController.h

#pragma once

#include "GameFramework/PlayerController.h"
#include "MyPlayerController.generated.h"

class UUserWidget;
class UMediaPlayer;
/**
 * 
 */
UCLASS()
class STARTINGMENU_API AMyPlayerController : public APlayerController
{
    GENERATED_BODY()

public:
    AMyPlayerController();
    void BeginPlay() override;    
    void ShowMovieWidget();
    void ShowMainMenuWidget();
    void PlaySound();
    void EndPlaySound();

    UFUNCTION()
    void EnterVR();

    UFUNCTION()
        void MovieEnd();

private:

    UAudioComponent* SoundWave;
    UMediaPlayer* mediaPlayer;

    UUserWidget* MovieWidget;
    UUserWidget* MainMenuWidget;

};
//MyPlayerController.cpp

#include "StartingMenu.h"
#include "UserWidget.h"
#include "CanvasPanel.h"
#include "Image.h"
#include "Button.h"
#include "MediaSoundWave.h"
#include "MediaSource.h"
#include "MediaPlayer.h"
#include "MyPlayerController.h"

AMyPlayerController::AMyPlayerController()
{
    bShowMouseCursor = true;
}

void AMyPlayerController::BeginPlay()
{
    Super::BeginPlay();
    ShowMovieWidget();
}

void AMyPlayerController::ShowMovieWidget()
{
    if (nullptr == MovieWidget)
    {
        UClass* aa = LoadClass<UUserWidget>( NULL, TEXT( "Blueprint'/Game/UMG/MediaPlayUMG.MediaPlayUMG_C'" ) );
        MovieWidget = CreateWidget<UUserWidget>( this, aa );
    }
    MovieWidget->AddToViewport();

    UMediaSource* SampleVide = LoadObject<UMediaSource>( NULL, TEXT( "FileMediaSource'/Game/Movies/SampleVideo.SampleVideo'" ) );
    mediaPlayer = LoadObject<UMediaPlayer>( NULL, TEXT( "MediaPlayer'/Game/Movies/SampleMedia.SampleMedia'" ) );
    mediaPlayer->OpenSource( SampleVide );

    PlaySound();  

    mediaPlayer->OnEndReached.AddDynamic( this, &AMyPlayerController::MovieEnd );
}

void AMyPlayerController::ShowMainMenuWidget()
{
    if (nullptr == MainMenuWidget)
    {
        UClass* aa = LoadClass<UUserWidget>( NULL, TEXT( "Blueprint'/Game/UMG/MainMenu.MainMenu_C'" ) );
        MainMenuWidget = CreateWidget<UUserWidget>( this, aa );
    }
    MainMenuWidget->AddToViewport();

    UWidget* ButtonEnter = MainMenuWidget->GetWidgetFromName( TEXT( "EnterVRScene" ) );
    UButton* buttonEnterVR = Cast<UButton>( ButtonEnter );
    buttonEnterVR->OnPressed.AddDynamic( this, &AMyPlayerController::EnterVR );
}

void AMyPlayerController::ShowLoadingSceneWidget()
{

}

void AMyPlayerController::PlaySound()
{
    if (nullptr == SoundWave)
    {
        UMediaSoundWave* movieSound = LoadObject<UMediaSoundWave>( NULL, TEXT( "MediaSoundWave'/Game/Movies/SampleMedia_Sound.SampleMedia_Sound'" ) );
        SoundWave = UGameplayStatics::CreateSound2D( this, movieSound );
    }    
    SoundWave->Play();
}

void AMyPlayerController::EndPlaySound()
{
    if (SoundWave != nullptr)
    {
        SoundWave->Stop();
    }
}

void AMyPlayerController::EnterVR()
{
    if (nullptr != MainMenuWidget)
    {
        MainMenuWidget->SetVisibility( ESlateVisibility::Hidden );
    }
}

void AMyPlayerController::MovieEnd()
{
    GEngine->AddOnScreenDebugMessage( -1, 1, FColor::Red, TEXT( "AMyPlayerController::MovieEnd" ) );
    if (MovieWidget != nullptr)
    {
        MovieWidget->RemoveFromParent();
    }
    ShowMainMenuWidget();
}

接下来把我们写的MyPlayerController设置为当前场景GameMode的PlayerController类就能正常播放了。
这里写图片描述

小结

此处我只是实现了简单的视频播放功能,添加视频播放的各种控制功能也是可以实现的。而且UMG也能放在3D场景中实现。

2019-01-11 11:34:51 WASEFADG 阅读数 182
  • 虚幻4开发入门

    UnrealEngine向来以一流效果和难以上手而著称,本课程就是帮助你跨过入门的这道门槛,能够上手掌握这个国际一流的3D引擎。

    64984 人正在学习 去看看 房燕良

首先确保我们装上了上述的两个软件包,之后到<UnrealEngine>文件夹下面双击运行下面这个文件<UnrealEngine/Engine/Binaries/Linux/UE4Editor>加载之后如下图所示。然后选择我们需要创建工程的文件放在哪里

如果打开UE失败,可以执行./UE4Editor -opengl3

35%的时候会卡住,也不报错误,这个很麻烦,程序员最害怕的就是明明没有达到预期效果,却没有报错,这简直是是灵魂的撕扯,明明应该是有问题的,你却只是卡住,没有报错

等待中,

官网解释https://answers.unrealengine.com/questions/449847/ue-412-stops-initializing-at-35.html

This is currently a known issue, UE-31175. This issue is being investigated by our developers; however, there is currently no timeline for when a fix will be released.

As an update, UE-31175 was marked as a duplicate of UE-24658. So here is the link to the correct issue on the public bug tracker: https://issues.unrealengine.com/issue/UE-24658

好像只是因为慢,好尴尬,就像是刘姥姥进大观园一样,给跪了,you should be patient

45%的时候又卡了,

找了官网,有个回答可以看看:

来源:https://answers.unrealengine.com/questions/728178/view.html

I have just installed the new 4.20.1 version on a 2012 macbook pro.

It took 45 mins to initialize for the first time. It froze at 35% for about 35mins.. Allowing Ue4 to bypass the firewall got it started again, sat at 45% for another 10mins then the rest was speedy.

The first time just takes a while.

差不多35%的时候半个多小时,我之前都是等不及就ctrl+c取消掉了,45%得再等10分钟,这次我就等着吧。反正是虚拟机,这次启动之后就不关闭了。反正内存也调成8G了,应该全部够用了。

top一下看CPU和内存使用率

用了不到4G,还可以。

有点烦,居然还有问题

好在有错误提示,可以找官网,

https://answers.unrealengine.com/questions/700153/linux-ue4editor-unable-to-write-to-settings-direct.html

Hey! I ran into the same issue, but I found a way to fix it. I think this issue is caused by accidentally using "sudo" during the setup of your install. If you're like me, you made that mistake on reflex, then nuked the UnrealEngine folder and started again when nothing worked.

Unfortunately, the .config/Epic is first generated during setup (./GenerateProjectFiles.sh I think), so even though you nuked everything you're still going to run into problems down the road.

My "fix" was to remove the Epic folder from the .config folder (~/.config$ sudo rm -r Epic/).

最后的办法就是删除Epic/文件夹,终于打开了

 

为啥是灰色的?

继续找问题:https://answers.unrealengine.com/search.html?q=1603

输入:lspci -vnn | grep VGA -A 12执行之后可以显卡,第一行输出便有硬件厂商、型号名称/序列号和 PCI ID。

白忙活一天,官网有UE4最低配置:

所以即使装好了,在虚拟机VM里面显卡没有办法,所以启动后GPU无法响应,

虚拟机不支持GPU的虚拟化

https://www.jianshu.com/p/bbb04a9f5759

哎,并不是所有努力都会有回报,所以虚拟机里面装20190111目前宣告失败。希望中间遇到的已经解决了的问题可以未来对你有所帮助。over。

[Thomas Edison - 1924] I have not failed,I've just found 10,000 ways that won't work.
[托玛斯·爱迪生 - 1924] 我没有失败,我只是发现了1万条行不通的路.

给出我已装好的环境,有点大,需要的可以下载下来。

百度网盘地址:

2019-03-15 10:26:29 tian0000hai 阅读数 405
  • 虚幻4开发入门

    UnrealEngine向来以一流效果和难以上手而著称,本课程就是帮助你跨过入门的这道门槛,能够上手掌握这个国际一流的3D引擎。

    64984 人正在学习 去看看 房燕良
打不开ue4工程时或者运行UEEditor崩溃,删除临时文件,只需保留以下文件夹
Conifg,  Content & Source 以及 .uproject 。

UE4联网Steam

阅读数 2538

UE4+视频播放

阅读数 30

UE4 简易天空盒制作

阅读数 9361

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