Unity Scriptコーディング→Unreal Engine Scriptコーディング

Unreal Engineの操作は書籍を見ながら少しずつ調べてる。でも、コーディングに関しては現状ネットで調べながら進めるしかなさそうなのだ。
 http://blog.negativemind.com/2015/07/16/unity-to-unreal-engine/
 
 コーディングもUnityになぞらえて学習時間を短縮したいところ。コーディングはGUI操作よりもエンジンの設計思想の影響を受けやすいので、ちゃんと違いを理解しておきたい。
 幸い、Unreal Engineの公式ドキュメントにUnityのScriptと照らし合わせた解説が載っている。

Unity 引っ越しガイド:ゲームオブジェクトからアクタへ

スクリプト可能な Actor ブループリント クラス

UE4 の優れた機能をご紹介します。新規 Actor ブループリント クラスは、独自のブループリント ビジュアル スクリプティングを持ちます。これにより、個々のコンポーネントだけでなく、オブジェクト全体にロジックを追加できます。継承と組み合わせると (以下で説明)、ゲーム デザインのフレキシビリティが非常に高くなります。
 
 
 
 ビジュアル スクリプトをサポートするブループリント クラスに加えて、UE4 ではコードで実装された C++ クラスもサポートしています。以下は、Unity C#、UE4 C++、UE4 ブループリントです。

Unity C#

using UnityEngine;
using System.Collections;

public class MyComponent :MonoBehaviour
{
int Count;

// 初期化に使用します。
void Start ()
{
Count = 0;
}

// フレーム毎に更新が一回呼び出されます。
void Update ()
{

Count = Count + 1;
Debug.Log(Count);
}
}

UE4 C++

#pragma once
#include "GameFramework/Actor.h"
#include "MyActor.generated.h"

UCLASS()
class AMyActor : public AActor
{
GENERATED_BODY()
int Count;

// このアクタのプロパティにデフォルト値を設定します。
AMyActor()
{
// Tick() を呼び出すことができるようにします。
PrimaryActorTick.bCanEverTick = true;
}

// ゲームの開始時またはスポーン時に呼び出されます。
void BeginPlay()
{
Super::BeginPlay();
Count = 0;
}

// フレーム毎に呼び出されます。
void Tick(float DeltaSeconds)
{
Super::Tick(DeltaSeconds);
Count = Count + 1;
GLog->Log(FString::FromInt(Count));
}
};

Unreal EngineでActorと呼ばれているものがUnityで言うところのGameObjectのような存在らしいが、ScriptはGameObjectにあたるActorにアタッチするのではなく、Actorを継承して拡張したクラスを作る方式らしい。
 
 慣れるために公式ドキュメントのプログラミング入門編をやってみた。
 Unreal Engineの最新バージョンではWindows環境だとVisual Studio 2015がデフォルトのコーディング環境らしい。2013には非対応。どうしても2013を使いたい場合は、Unreal Engineのソースコードからオプション設定して全部ビルドしないといけないらしい。
 https://docs.unrealengine.com/latest/JPN/Programming/QuickStart/index.html
 https://www.youtube.com/watch?v=dS1f71pS-5I
 
 Scriptを少し修正するだけでも明示的にコンパイルのプロセスが入るのはちょい手間に感じてしまうな。普通のC++プログラミングはみんなそうだけどさ。
 
 http://qiita.com/nano06126728/items/3bddfd52a4d2f2952ffb


Originally published at NegativeMindException.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.