アンリアル・エンジン4のチュートリアル等便利なリンク集

皆様アンリアル・エンジン4をご活用いただきましてありがとうございます!

既にサブスクリプションをお申込み頂いた皆様も、ご興味はあるものの考えあぐねているという皆様。こちらにアンリアル・エンジン4のチュートリアル等の便利なリンク集をまとめて掲載させていただきます。

ぜひご活用ください。

UE4チュートリアルビデオ(2014/4/8現在64本)

インサイドアンリアルLiveストリーミングより(3本)

ブログ(2014/4/8現在27本)

Share +

スプライト描画負荷が話題になっているようなので…

先日のテックヒルズ第7回にて「次世代ゲームエンジンの比較」と題したCROOZ様のプレゼンテーション

http://www.slideshare.net/ssuser392fe3/7-28172086

の中の各エンジンのスプライト描画の負荷に関してUnityさんの検証結果

http://www.youtube.com/watch?v=pyQdbKDQknM

が話題になっているようなので、UDK(Unreal Engine 3)でも検証してみました。

手元にiPhone5しかなかったので、4Sの数字と直接比較することはできませんし、元々の検証内容がわからないので、あまりちゃんとした比較対象にならないかもしれませんが…

結果から書きますと(※iPhone5にて検証
32x32のアルファありのテクスチャは約7143枚@30fps(Unityさんのビデオと同じく回転はOFF)
512x512のアルファありのテクスチャは約168枚@30fps(Unityさんのビデオと同じく回転はON)
くらいになりました。

image

image

テストコードとしては、UDKの2013/07ビルド上のDevelopment/Src/MyMod/Classesフォルダに、MyHud.ucとして以下のようなUnrealScriptのクラスを書きました。

class MyHUD extends HUD;

var texture tex;
var texture tex32;
var texture tex128;
var texture tex512;

var float sprite_size;
var float fps;

var int num_sprites;
var array x_array;
var array y_array;
var array rot_array;

simulated event PostBeginPlay()
{
	super.PostBeginPlay();

	if (sprite_size==512)
	{
		tex=tex512;
	}
	else if (sprite_size==128)
	{
		tex=tex128;
	}
	else
	{
		tex=tex32;
	}
}

exec function SpriteSize(int size)
{
	sprite_size = size;

	if (sprite_size==512)
	{
		tex=tex512;
	}
	else if (sprite_size==128)
	{
		tex=tex128;
	}
	else
	{
		tex=tex32;
	}
}

function DrawHUD()
{
	local int i;
	local rotator rot;

	super.DrawHUD();

	fps = 1 / RenderDelta;

	if (fps >= 31.0f)
	{
		x_array.AddItem(rand(1136));
		y_array.AddItem(rand(640));
		rot.yaw = Rand(65536);
		rot_array.AddItem(rot);
		++num_sprites;
	}
	else if (num_sprites > 0 && fps < 30.0f)
	{
		—num_sprites;
		x_array.Remove(num_sprites,1);
		y_array.Remove(num_sprites,1);
		rot_array.Remove(num_sprites,1);
	}

	Canvas.SetDrawColor(200,200,200,255);
	if (sprite_size==512)
	{
		for (i=0;i<num_sprites;++i)
		{
			Canvas.SetPos(x_array[i], y_array[i]);
			Canvas.DrawRotatedTile(tex, rot_array[i], sprite_size, sprite_size, 0.0f, 0.0f, sprite_size, sprite_size, 0.5f, 0.5f);
			rot_array[i].yaw += 128;
		}
	}
	else
	{
		for (i=0;i<num_sprites;++i)
		{
			Canvas.SetPos(x_array[i], y_array[i]);
			Canvas.DrawTile(tex, sprite_size, sprite_size, 0.0f, 0.0f, sprite_size, sprite_size);
		}
	}

	Canvas.Font = GetFontSizeIndex(3);
	Canvas.SetDrawColor(255,255,255,255);
	Canvas.SetPos(10.0, 10.0);
	Canvas.DrawText(“FPS “@fps);
	Canvas.SetPos(10.0, 30.0);
	Canvas.DrawText(“Sprites “@num_sprites);
}

defaultproperties
{
	tex32=Texture2D’EditorResources.SceneManager’
	tex128=Texture2D’EditorResources.Crowd.T_Crowd_Destination’
	tex512=Texture2D’CH_IronGuard_Headshot.HUD_Portrait_Liandri’
	sprite_size=32.0f
	fps=1000.0f
	num_sprites=0
}

ここのところサポート業務で多忙ですので、あまり詳しい検証には手が回らず、ちゃちゃっと書けるこのくらいのテストコードでご勘弁いただけますと幸いです。

このHUDクラスをテストする為にはGameTypeも設定する必要があります。
Development/Src/MyMod/ClassesフォルダにMyGame.ucというクラスファイルを作成して。

class MyGame extends SimpleGame;

defaultproperties
{
	HUDType=class’MyMod.MyHUD’
}

のように上記MyHUDクラスを使うGameTypeを作成し、最後に(実際には最初にでもいいです)UDKGame/ConfigフォルダのDefaultEngineUDK.ini 67行目近辺の

;ModEditPackages=MyMod

という行の行頭の「;」セミコロンを削除して保存し、アンリアル・エディタを起動することで、先に作成したMyHUD.ucとMyGame.ucがコンパイルされ利用できるようになります。

その後テスト用のブランクレベルを作成してViewメニューのWorld PropertiesからDefault Game TypeをMyGameに設定する事でテストできます。

(4本指スワイプからデバッグ用コンソールコマンドが入力できます。コンソールコマンドで SpriteSize 512 と打っていただくと、512サイズのスプライトを使い始めます、フレームレートの調整は30フレームを前後した場合、スプライト数を1だけ増減させるというかなり手抜き調整なので、7000くらい32x32スプライトが出ている状態から512に変更すると大変な処理負荷になりますので注意…)

あとちなみに、スライド中でも少しUnreal Engine 4の事に触れて頂いていますが(ありがとうございます!)、UDK(Unreal Engine 3)は弊社内では次世代ゲームエンジンという位置づけではなく、今世代のゲームエンジンです。あくまでも弊社内的には次世代ゲームエンジンはUnreal Engine 4の事を指しています。

Share +

アンリアル・エンジン採用タイトルの中で史上最高のスコアを獲得した「バイオショックインフィニット」

Irrational Gamesのヒットシリーズ最新作、「バイオショックインフィニット」は、発売と同時に各ゲーム評価サイトで非常に高いスコアを獲得しました(PC/PlayStation 3版は94点、Xbox 360版は93点)。バイオショックシリーズの3作目となる本作は、アンリアル・エンジン3の技術の進化とIrrational Gamesによる独自のカスタマイズの成果が結実し、空中都市コロンビアとしてゲーマーの前に姿を現しました。

「バイオショックインフィニットの制作にあたっては、Steve Ellmoreが率いるコア・テクノロジー・チームと、John Abercrombie率いるゲームプレイ・プログラミング・チームによって、アンリアル・エンジン3のかなりの部分に大幅なカスタマイズを加えました」とIrrational Gamesのテクニカル・ディレクター Chris Klineは話します。「社内のチームで開発したシステムの例としては、AI、オーディオ、アニメーション、物体の移動、アタリ判定、ユーザーインプット等があります。物理演算やコンテンツ・ストリーミング等についても、大幅な改変を加えました」

Irrational Gamesでは、たくさんのコアエンジンシステムを別々のSPUCPUコアで並列に動作させるために、大幅な構造上の変更を加えました。非同期で動作させたシステムの一例としては、アタリ判定、レイ・キャスティング、サウンド・プロパゲーション、ガーベージ・コレクション、「スカイライン」のジオメトリ・エクストルージョン、スプライン・プロキシミティ・テスト、AIの制圧射撃計算、データ圧縮/復元、アニメーション・トランスフォームとブレンディング、オーディオ・プロセッシング、パーティクル生成、SSAO、コマンド・バッファ・ジェネレーション、リジッドボディの物理演算、クロース(被服)シミュレーション等が挙げられます。

「バイオショックインフィニットの世界を構築するために、多くの場合まったく新しいシステムが必要となりました」とKlineは語ります。「たとえば、空中都市コロンビアの建物や飛行船、はしけ等を、パフォーマンスに影響を与えることなく常に動かしておくために、『フローティング・ワールド』という名前の技術を開発しました。もう一つの例としては「パターン・マッチャー」があります。これはゲーム世界の状態を継続的に解析し、行動パターンを見出すためのシステムです。このおかげで、各時点でプレイヤーとエリザベス、AI群が置かれている状況をよりよく分析することができ、文脈上適切なスタイルで行動したり話したり出来るようになりました。

バイオショックインフィニットではたくさんの注目すべき技術が使用されていますが、特筆すべきはコンピューターがコントロールするエリザベスというキャラクターでしょう。エリザベスにはゲーム中で複数の役割が与えられています。ゲーム中に登場する多くの組織が彼女を狙っているという点で、ヒッチコックの言ういわゆる「マクガフィン(登場人物の動機づけやストーリー展開を左右する重要な小道具)」であることに加え、彼女は時空を切り裂いて未来の砲台のようなアイテムを1912年に引き入れるという能力を持っています。プレイヤーが主人公であるブッカー・デウィットとして救出しようとするのがエリザベスですが、同時に彼女自身もインタラクティブなストーリーの中で重要な役割を果たすことになります。

Klineによれば、先述の技術的カスタマイズに加え、オリジナルのアンリアル・エンジン3のゲームプレイコードの大部分が書き換えられ、アンリアル・スクリプトの大半が取り除かれたそうです。アンリアル・エディターのツールセットは置き換えるよりも拡張することを選択したそうですが、いずれにしても「元のまま」使われたシステムはごくわずかとのことです。

アンリアル・エンジンのパワーによって、シリーズ第一作では海中深くの「ラプチャー」という都市が描かれました。Ken Levineのチームは、最新作では舞台をコロンビアに移し、超国家主義者のファウンダーズと、無政府主義のヴォックス・ポピュライが織りなす政治的テーマを掘り下げつつ、1912年のアナザーワールドを作り上げました。

「現在では全く違ったエンジンになっています」とIrrational GamesのファウンダーであるKen Levineは話します。「良きにせよ悪しきにせよ、今回のこの新しいゲームを制作するためには、第一作で持っていたものを全て捨てる必要がありました。第一作用にカスタマイズしたエンジンは、狭い通路や地下や水中の建造物を描写するには最適でした。しかし、今作で求められたオープンスペースで10人以上の敵を相手に戦うようなシーンを作成するためには、新しい技術が必要でした。もちろんこれまで使っていたエンジンが無ければ出来なかったことです。しかしIrrationalはあくまでもクリエイティブが優先される会社であり、クリエイティブをサポートするために技術がデザインされるのです」

Levineによれば、チームには非常に優秀な技術者がいて、困難な問題をどうやって解決するか、常に注力していたそうです。このような背景からスカイラインは生まれました。クリエイティブチームはゲームの核となるクールで新しいゲームプレイを取り入れたいと思い、輸送カーゴ用のレールを使ったスカイラインシステムを思いつきました。テクノロジーチームがこの新たなメカニックを実現するのに必要なコードを制作し、スカイラインによる戦闘が誕生したのです。

「非常に困難な作業でしたが、スカイラインで移動するのがどんな気分か、どんな風に機能するか、どんな風に見えるか、どんな感じかを直感的に一旦掴んでしまうと、とてもエキサイティングなものになるに違いないと確信しました。結果として成し遂げられたものにも非常に満足していますよ」とLevineは語ります。

4年に及ぶ開発の中で、PCXbox 360PlayStation 3のマルチプラットフォーム対応の点でも、アンリアル・エンジン3は時間の節約に大きく貢献しました。第一作のバイオショック以来、開発チームのスタッフがアンリアル・エンジンに慣れ親しんでいたことも、新たなコードやゲームプレイの導入に際してとても大きかったそうです。

「街全体が空中を漂う中、スカイラインに掴まって地上の遥か上空を時速150キロで駆け抜けながらAIと戦い、エリザベスを助けるために過酷な天候をくぐり抜けて、何が何でもプレイヤーを止めようと全力で立ち向かってくる敵の包囲網を突破する・・・我々が思い描いていたのはこんなゲームでした」とKlineは話します。「技術的には大変なものになることは最初から分かっていましたが、やらざるを得ないことだと決心したのです。ファンがIrrational Gamesやバイオショックに期待するものを提供するには、絶対に必要なことでしたから」

ファンだけでなく、口うるさいゲームメディアでさえ熱狂したことが示す通り、コロンビアはこれまでに見たことのないようなゲームワールドとして完成しました。Irrationalが制作した「フローティング・ワールド」システムは、今にも落下するかもしれない地面の上で冒険を続けるというかつてないスリルを提供しています。もっとも、ガトリング銃を装備した機械化兵や巨大なソングバードを相手に12時間に及ぶ戦いを繰り広げていれば、足元の心配などしている暇はないかもしれませんが。

空を背景にしたオープンワールドは美しく、その明るい色彩で描かれた街並みは、暗く陰鬱で閉所恐怖症的なバイオショックの世界とは好対照をなしています。Klineによれば、キャラクターやダイナミックなオブジェクトがグローバル・イルミネーションの効果を受けられるよう、レンダリングチームでは新たなプロプライエタリ・パーピクセル・ダイナミック・リライティングをベースとした新しいディファード・レンダラーを作成したそうです。こういった技術のおかげで、バイオショックインフィニットというユニークな世界に生命が吹きこまれ、Levineと彼のチームが深みのある複雑なストーリーを縦横に描くためのキャンバスが生まれたのです。今後配信されるDLCを除けば制作は終了したので、現在Levineは将来のゲーム開発に思いを馳せています。

「まだ知らないものの事を思うと、ワクワクします」とLevineは語ります。「多くの人々は変化を恐れますが、変化こそが我々を支えるものです。我々は変化し続けなければならないのです。私がゲーム開発を始めた頃は、PCゲームの予算は数千万円規模でした。現在のPCやコンソールの予算規模はそれとは比較にならないほど大きくなっていますし、こういった変化は今後もまたあるかもしれないのです。未来に何が起こるかは誰にもわかりません。やり方を変えたり考えなおしたりする必要があるかもしれませんが、私にとってそれはとてもワクワクすることですし、私は世の中がどう変化していくか理解するのが大好きなのです。私はあらゆる種類のゲームをプレイします。今日の続きに明日があるとか、昨日と同じように明日があると考えてしまうと、非常に深刻な事態に直面することになるでしょう。明日はあくまでも明日であり、どんなものになるか誰にもわかりません。それを不安に思うか、楽しむかは、全てあなた次第なのです」

バイオショックインフィニットはアンリアル・エンジンで開発されたタイトルの中でも、最高のスコアを獲得した作品になりました。アンリアル・エンジンの技術を中心に据えることで、Irrational Gamesはストーリーテリングと世界構築の両方を文字通り新たな次元へと進化させました。技術とクリエイティビティの完璧な調和があれば、現世代機もまだまだ素晴らしいゲーム経験を提供できることを、バイオショックインフィニットは示してくれました。

Share +

日本語字幕付きアンリアル・エンジン4のレイヤードマテリアル解説ビデオ

日本語字幕付きのUE4のレイヤードマテリアルの解説ビデオがアップされました。

UE3ではシェーダーのコードを書かずにビジュアルなノードベースの直感的にマテリアルを作成する事ができましたが、UE4では複数の材質の違うようなマテリアルを直感的に合成できるよう進化を遂げました。

アーティストの皆さんのクリエイティビティをより直感的にダイレクトに発揮していただけます。

  

Share +

[LINK] tomoさんによる「ゲームエフェクトデザイナーのブログ」

UDKの様々なテクニックが満載です。

特にtomoさんが、エフェクトデザイナーさんということで、マテリアルの制作に関してとてもわかり易く凄く丁寧に説明されていて、モデルやエフェクトの見栄えを良くしたいんだけど・・・

という皆さん必見です!!

凄く丁寧に説明されているので、マテリアルわかってるよ!という皆さんも、新人さんに教えるような時にも有用な情報が多いのではないかと思います。

ですので、皆さん一度覗かれてみることをお薦めしまーす。

Share +

ゲームエンジン導入セミナー【UDK編】

2013/3/9(金)に、日本工学院にてCG-ARTS協会様主催で「ゲームエンジン導入セミナー【UDK編】」というセミナーをさせていただきました。 

CG-ARTS協会様から公開許可を頂いたので、slideshareで公開させて頂きます。 

セミナーでは実際に制作体験とそのサポートをさせてただきましたがこちらのスライドからも雰囲気を掴んでいただけると思います!

ぜひお楽しみください。

 

Share +

ヤバイ、めっちゃ素敵な人発見。なんで今まで見つけられなかったんだろう。

ヒョーゴノスケさん
http://www.youtube.com/user/hyohyohyohyogonosuke/videos

素敵なニホンが海外でもウケそう。

Share +

[LINK] 「3D Modeling & Texturing」mAlkAv!An (Oliver)さん

mAlkAv!Anさんの、3D ModelingやTextureingに関するブログ。
http://oliverm-h.blogspot.com 

UDKを使ったアート寄りの実験や成果物を公開されています!英語ですが画像やデータも豊富なのでとても分かりやすいです。

Share +

[Tips] テレポート!テレポート!

以前プレイヤーの移動に関するコマンドを紹介しましたが
http://epicgamesjapan.tumblr.com/post/6691955029/tips
その中の「teleport」に近いものが、今年の1月ビルドからエディタのウインドウでも出来るようになりました。

Ctrl+T を押しながら、レベル上(のコリジョンがある場所)をクリックすると、クリックした場所にビューを移動させられます。

見えているけど遠くの場所でマウスやキーボードでの移動が面倒な時にとても便利です。

今までも、遠くのオブジェクトを選択してからHomeキーを押すと選択したオブジェクト中心にビューを移動させることはできましたが、Homeキーは左手から遠いので、Ctrl+Tを使う方がやりやすいかもしれません。

Share +

[Link] Unreal Development Kit Gems

UDKでゲーム制作する際の実用的なテクニックがまとめられています。
http://udn.epicgames.com/Three/DevelopmentKitGemsJP.html

各種スターターキットへや、Kismetの拡張方法、メッシュやアタッチメントの付け替えなどなど
リンクがありますので、ぜひ一度覗いてみてください。

UDKを使った新たなゲームのアイディアも浮かぶかもしれませんヨ。

Share +

[Tips] UE3/UDKでトゥーンシェーダーってできるの?補足。

先日のトゥーンシェーダーのマテリアル
tumblrで普通に見るとかなり縮小されて見づらかったようなので、高解像度版を貼っておきます。(画像をクリックすると高解像度版に飛びます)

トゥーンシェーダーのマテリアル、高解像度版

もちろん、このアルゴリズムでなければいけないわけではありませんし
以下の、深度ベースの輪郭線の併用等も面白いと思います。

http://udn.epicgames.com/Three/DevelopmentKitGemsSobelEdgeDetectionJP.html 

Share +

UE3/UDKでトゥーンシェーダーってできるの?っていう質問を受ける時があるんですがもちろん可能です。ただアルゴリズムはいろいろあるんで特定のアルゴリズムの実装を用意していたりはしないんですが、例えばこんな感じ。基本的にはカスタムライティングで実装していく感じで、パラメータも見えるようにしているのでこれを見ながら実装できるハズ。

特徴としては

  • ノーマルマップ内の凹みにもエッジが描画される
  • ごく普通の片面のみの描画で処理しているので他のエフェクトと相性がいい
  • マテリアルインスタンス化して各種パラメータを調整しやすくしてある

といったところ。

Share +

[Tutorial] 横スクロールゲームのスターターキット(ソース付き)

UDKのドキュメントに横スクロールゲームを制作するチュートリアルが追加されました。
http://udn.epicgames.com/Three/DevelopmentKitGemsPlatformerStarterKitJP.html

ソースと解説もあるので、新たにゲームを制作される場合の参考例として最適です!

UDKでも結構簡単にいろんなジャンルのゲームを制作できちゃうんです。

Enjoy UDK!

Share +

[Tutorial] レーシングゲームのスターターキット(ソース付き)

UDKのドキュメントにレーシングゲームを制作するチュートリアルが追加されました。
http://udn.epicgames.com/Three/DevelopmentKitGemsRacerStarterKitJP.html

ソースと解説もあるので、新たにゲームを制作される場合の参考例として最適です!
UDKでも結構簡単にいろんなジャンルのゲームを制作できちゃうんです。

Enjoy UDK!

Share +

[Video] Unreal University @ MIGS 2011 ビデオ

先日の MIGS 2011 での Unreal University のビデオが、Youtube の UnrealDevelopmentKit’s Channel にて公開されました!

サイドスクロールゲームやレースゲームやRTSを作成する方法、UDKを使いこなす方法等沢山のビデオがアップロードされています。ぜひご覧ください!

http://www.youtube.com/user/UnrealDevelopmentKit

Share +