もんしょの巣穴blog

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

[UE4] UE4を配置ツールとして利用する

今回のネタはUE4ネタではあるものの、UE4でゲームを作る人にはあんまり意味がない内容となっております。
もしかしたら業務で利用する人が嬉しいかもしれませんが、多くの人にはどうでもいい内容でしょう。
特にエピックさんは一銭の得にもならないので、最初に謝っておきます。ごめんなさい。

UE4を使ってゲームを作れる環境にある方はそのままUE4を使えばいいのですが、誰もがUE4を使ってゲーム開発をする業務に携わっているわけではありません。
もちろんUnityを使う業務であればそれを利用すればOKなのですが、UE4やUnityといったゲームエンジンを使用できない業務の方もおられるでしょう。

具体的にはPS3、Xbox360、WiiU、3DS、Vita、X68、MSXといったハードウェアで開発している方々ですね。
PS3、Xbox360は海外ではマルチプラットフォームから外されてきていますが、日本ではPS3がまだまだ現役で、PS4の売上も十分とはいえない状態ではPS4とPS3のマルチはまだまだ発売されそうです。
WiiUはまあ置いとくとして、3DSは日本では主戦場の1つですし、Vitaも日本では無視できないハードと言えます。
X68とMSX? ま、それはそれ。

これらのハードでゲームを作成する場合、ゲームエンジンに頼れない場合もありますし、マルチプラットフォームの対象になると対応ハードではUE4を、それ以外では自社エンジンを、といった作りはあまりしないでしょう。
金銭的な問題やゲーム内容がゲームエンジンに合っていないなどの理由からゲームエンジンの採用を見送る場合もあります。

ですが、このような場合でもUE4などのゲームエンジンを使うことは可能です。
以前UE3を使っていたという同僚は、UE3のエディタが非常に良く出来ているので配置ツールとして使っていたそうです。
そう、つまり、レベルデザインツールとしてUE4を使う、というのは有効な手段でもあるのです。

というわけで、今回はUE4でレベルデザインを行い、そこで配置されたアクターの情報を外部ファイルに出力するプラグインの簡単な作成方法を紹介します。
今回は配置されたアクターの名前とトランスフォーム情報のみを出力していますが、やろうと思えばメッシュアセットの名前や自身のゲームに必要な情報を取得することも可能でしょう。

というわけで、続きからで簡単な作成方法を見て行きましょう。

[[UE4] UE4を配置ツールとして利用する]の続きを読む
スポンサーサイト
  1. 2015/05/30(土) 21:33:21|
  2. UE4
  3. | トラックバック:0
  4. | コメント:0

[UE4] エンジンを改造してLUTテクスチャを使ったトゥーンシェーダを実装する方法

前の記事

[UE4] エンジンのシェーダコードを変更する 基礎編

の応用編と言っていいのかな?という内容です。

前回の記事ではシェーダコードのみを変更してトゥーンシェーダを実現しましたが、完全な2値化しか実装できていません。
トゥーンシェーダを実装する場合、影の強さを何階調にするのか、境界部分でリニア補間をするのかなどの調整をアーティストさんに任せるのが一般的だと思いますが、前回の方法ではアーティストさんにシェーダを修正させる必要があったり、調整時にシェーダを何度もコンパイルし直す必要がありました。
この階調で行く!というのが完全に決まってしまえば前回の実装でも問題ないのでしょうけど、そこに行くまでに十分な検証をしづらいというのも事実です。

たいてい、トゥーンシェーダを実現する場合はルックアップテーブル(LUT)テクスチャを利用します。
LUTテクスチャというのは主に1次元、もしくは2次元のテクスチャで、UV座標をシェーダで計算した何らかの数値で代用してテクスチャをサンプリング、そしてその結果を利用する手法です。
UE4ではカラコレのLUTがありますが、あんな感じですね。

トゥーンシェーダではたいてい、256階調の1次元テクスチャ(横256、高さ4くらいの2次元テクスチャが一般的?)を用います。
以下のようなテクスチャですね。

ToonLut.png

このようなテクスチャであればアーティストさんは簡単に作成し、調整もできます。
複雑なカーブを用いるような色調でもテクスチャに落とし込むならサンプリング1回程度の手間で済むので簡単です。

しかし、ライティング時にこのテクスチャを読み込み、利用するようにさせるのはシェーダコードの修正だけではどうしようもありません。
そのため、今回はC++コードの修正を行います。
残念ながら、非プログラマの方にはチンプンカンプンかもしれませんが、手順に従えば大丈夫です。
ただし、UE4のバージョンが上がった場合はどうなるかわかりませんのでご注意ください。

まずはコードを修正する前の下準備として、GitHubからエンジンコードを取得、セットアップを行ってVisual Studioでエンジンのビルドを行ってください。
前回も紹介したヒストリアさんのブログを参考にしましょう。

[UE4] エンジンのソースコード取得とビルド手順のまとめ

ビルドが終わりましたか?
では起動して、何かプロジェクトを作成しましょう。
プロジェクトはC++プロジェクトでなくても構いません。

プロジェクトを作成したら立ち上げて、コンテンツブラウザでエンジン側のコンテンツを見られるようにしましょう。

ue317.jpg

チェックを入れると[エンジン コンテンツ]フォルダが表示されるので、この中の[EngineMaterials]というフォルダを開きましょう。
このフォルダに先ほど提示したLUTテクスチャをドラッグ&ドロップします。
これによってエンジン側のコンテンツにLUTテクスチャを追加することが出来ます。

ue318.jpg

エンジン改造後はドラッグ&ドロップした画像ファイルを編集し、再インポートをすれば調整は簡単にできます。

では、続きからでエンジンの修正を行ってみましょう。


[[UE4] エンジンを改造してLUTテクスチャを使ったトゥーンシェーダを実装する方法]の続きを読む
  1. 2015/05/20(水) 22:52:04|
  2. UE4
  3. | トラックバック:0
  4. | コメント:0

[UE4] 『はじけろ!ブルーマン!の頭』の話

今回は第3回UE4ぷちコンに提出した『はじけろ!ブルーマン!の頭』の話です。
それほど難しいことはやっていないのであんまりおもしろいことは書けませんが、何らかの参考になればと思います。

まず、このゲームを作成する前に実は2作品ほど作ってポシャりました。

1作目はぷちコン開始前にLeap Motionの習作として作成した『きゅっとしてドカーン』をもっときちんとゲームにしてスコアタできるゲームにしようと考えました。
が、うまくいかず。
手慰み程度のゲームとしては悪くないのですが、テクニックが要求されるでもなく、戦術的な思考が試されるわけでもないゲームになってしまい、ただ右手をグーパーして握力を鍛えるだけのゲームにしかならないと気づきました。

2作目はトロッコでブルーマンから逃げるゲームを考えました。
トロッコはLeapで円運動のジェスチャーを検出している間だけ加速し、もう一方の手で爆弾を投げて追いすがるブルーマンを吹っ飛ばして行こうと考えました。
この段階でKiteデモに用いられたアセット群が配信されていたので、これも利用して自然の中をブルーマンから逃げてみようとしたわけです。
しかしこちらもゲームとして面白くなる道が見えませんでした。
とりあえず真っ直ぐな道を作って試してみたのですが、カメラが固定されているため無作為に爆弾を投げるしかなく、円のジェスチャーをしながら別の行動を取るのも難しいとわかりました。

結局、この2作の検証とLeap Motion公式プラグインにジェスチャー検出機能を追加するのに1週間くらいかかってしまい、割と時間を無駄にした次第です。
特にプラグインの修正をするのにLeap Motionのドキュメントを読んだりするので時間がかかった印象ですね。

ただ、ここまでやってよくわかったことが2点ほどあります。
1つはNatural User Interface (NUI) はほんとうに正確な操作をさせるのが難しいという点です。
どうしてもノイズは乗るし、ノイズをどのようにして除去するかを考えないとそれっぽく認識させることは難しいです。
もう1つはパッドはすごいということ。
複数の操作を同時か、ほぼ同時に近いタイミングで連続的に行うことが出来ます。
特に2作目で、両手それぞれを使って別々にアクションさせるということが如何に大変か身にしみてわかりました。
それにもかかわらず、パッドは3~4の操作は同時に行うことが出来ますし、しかも正確です。
直感的にわかりにくい部分があることは否定しませんが、それを押さえ込める程度の利点は存在するわけです。

で、これらの反省点を踏まえて、
  1. NUIの不正確な点を逆に利用する
  2. パッドを利用することを考慮する
という2点に気をつけて企画を練り直し、最終的に出てきたのが今回提出した『はじブル』というわけです。

まあ、NUIを使ったゲームを作成している人にとっては何を今更って話なのかもしれませんが、NUIをゲームに用いる場合の注意点を知るいいきっかけになりました。

では、続きからで、ゲーム内で工夫したかな、という点を書いていきたいと思います。


[[UE4] 『はじけろ!ブルーマン!の頭』の話]の続きを読む
  1. 2015/05/11(月) 21:24:33|
  2. UE4
  3. | トラックバック:0
  4. | コメント:0

プロフィール

monsho

Author:monsho
ゲームプログラマ?

最近の記事

最近のコメント

最近のトラックバック

月別アーカイブ

カテゴリー

ブロとも申請フォーム

この人とブロともになる

ブログ内検索

RSSフィード

リンク

このブログをリンクに追加する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。