アルゴンUE4&アプリ開発日記

UE4のモバイル開発やアプリ開発をメインに紹介します!主に初心者から中級者向けに紹介していく予定。

【UE4】クロスツールの使い方とやり方まとめ

クロスツールの説明

UnrealEngineではNvClothソルバーという形で、

布などの表現の設定が出来る仕組みがあります。

下記リンクのリファレンスにて詳しく記載されています。

※今回はUE4.18で試してみました。

docs.unrealengine.com

クロスツールを使用するにあたっての準備

クロスツールを試す前にまず準備するものがあります。

  1. スケルタルメッシュ(ボーンとウェイト・UVをつけておく)
  2. スケルタルメッシュにクロスシミュレーションをしたAPXファイル

上記2つを必要とします。

スケルタルメッシュの作成

Blenderでボーンを入れて、ウェイトも入れておきます。

UVは一面だけつけています。

右の画像がウェイトをつけたときの画像です。

f:id:yoshikata1990:20171104170733p:plainf:id:yoshikata1990:20171104170814p:plain

今回はこちらの説明はメインではないのではないので割愛します。

あとはFBXファイルで書き出せば完了になります。

APEXのClothToolPROFILEでAPXファイルの作成

行う作業の順番は下記の通りです。

  1. 先ほど作成したFBXのモデルデータを読み込む
  2. シミュレーションする面・頂点をペイント
  3. シミュレーションを実行して、ファイルを書き出す

まずAPEX-SDKをダウンロードします。

https://developer.nvidia.com/gameworksdownload#?dn=physx-apex-sdk-1-3-0

ダウンロードが完了したら、zipファイルをどこに書き出すか指定します。

f:id:yoshikata1990:20171104174038p:plain

作成されたZipファイルを解凍して、

そのフォルダ内のbin→vc10win32-PhysX_3.3のフォルダまで移動します。

その中のClothingToolPROFILE.exeを起動します。

起動したら右上のFile→Load Meshを選択します。

f:id:yoshikata1990:20171104190206p:plain

 そうすることで、モデルを読み込むことができます。

PaintingをMax Distanceを選択します。

Edit → View → Painting Visibleを選択しておくことでブラシを適応した箇所を分かりやすくします。

Update Tangent Spaceもクリックしてください。

最初はワイヤーフレーム紫色で表現されています。

f:id:yoshikata1990:20171105080904p:plain

最初自分でやった時カメラを回せなかったり、いろいろ苦労したので、

操作方法だけ軽く説明します。

  • Paint:ペイントする際の適応する強弱
  • Scale:シミュレーションする強度
  • Falloff:範囲の絞り
  • Radius:適応する円の広さ
  • Alt+ドラッグ:カメラ回転
  • Alt+右クリックドラッグ:拡大・縮小

f:id:yoshikata1990:20171105074001p:plain

 シミュレーション用のペイントを施すことで白くなります。

白い部分は布の表現を適応されることになります。

白い円はマウスオーバーすると表示される、

シミュレーションペイントの範囲になります。

f:id:yoshikata1990:20171105073534p:plain

問題なければSingle Layerd Clothタブを選択してStart Simulationを選択

f:id:yoshikata1990:20171105080710p:plain

下記のようにシミュレーションが正常に動作していれば問題ありません。

f:id:yoshikata1990:20171105081923p:plain

シミュレーションの設定も各種あるので、そちらも紹介します。

  • EnableWind:風の設定。下のパラメータで方向と強さを変える。
  • Groundplane:最初の状態だと地面が生成された状態になります。

問題がなさそうならSave Selectedを選択してAPXファイルを作成します。

f:id:yoshikata1990:20171105085242p:plain

UE4でClothツールを使ってみる

 UE4に先ほど作成したモデルをインポートします。

すべてをインポートでボーンなどすべてインポートします。

f:id:yoshikata1990:20171105100858p:plain

それが完了したらスケルタルメッシュの編集画面を開き、

APXファイルを適応します。

+ボタンからインポートできます。

インポートが完了すると下記のようにClothingDataに反映されます。

f:id:yoshikata1990:20171105101049p:plain

設定ではこれで完了ではなく、

LODの部分にAPXファイルを適応してあげます。

これでスケルタルメッシュにクロスのデータを付与することが出来ます。

f:id:yoshikata1990:20171105101559p:plain

UE4のほうでActive Cloth Paintで布ができます。

Clothingタブのウィンドウの一番下にある、Brushで可能です。

一つ上のToolSettingで塗る濃さを変更して、

赤枠で囲っている箇所で塗る箇所の大きさ、強さを変更します。

f:id:yoshikata1990:20171105101353p:plain

設定が完了したら、

Active Cloth Paintを再度選択し解除してから保存します。

※解除しないとメッシュが正常に表現しなくなります。

それから、布っぽい表現になっているか確認するために、

wind Directional SourceをLevelに配置します。

f:id:yoshikata1990:20171105103453p:plain

風の角度は横に向けると分かりやすくなります。

方向を斜め右にしています。

f:id:yoshikata1990:20171105105416p:plain

動かすと下記のTwitterのように動けば動作はできているかと思います。

以上がクロスシミュレーションの対応になります。

今後もう少し実用的に作ってみようと思います。

【UE4】アセットOver9000Swordを改良して斧を作る

簡単なアセットの改良の紹介

今回はOver9000のアセットを少し改良して、斧を作りたいと思います。

※有料のアセットで、アセットを購入した人だけが対象です。

アセットのリンクはこちら↓

www.unrealengine.com

1.プロジェクトにアセットを追加

プロジェクトにアセットを追加します。

EpicGamesLauncherのライブラリ、

マイダウンロードから「プロジェクトに追加」を選択して追加します。

f:id:yoshikata1990:20170928225216p:plain

プロジェクトに追加が成功すると

「ModularWeapons」というフォルダが追加されます。

これでプロジェクトへの追加は完了です。

f:id:yoshikata1990:20170928230859p:plain

1.アセットの中身の改良

ModularWeaponsのフォルダ内にまた数々のフォルダがあります。

Dataフォルダの中にあるWeaponDataブループリントを改良します。

f:id:yoshikata1990:20170928231351p:plain

WeaponDataでは「武器のパーツ」・「マテリアルのセット(色)」

「マテリアルインスタンスデータ」配列として管理しています。

まず斧の武器パーツを追加して斧を表示します。

詳細にWeaponDataという項目の中のWeaponParts配列にデータを追加する。

f:id:yoshikata1990:20170929070111p:plain

データの中身は下記のようになっています。

・WeaponTypeName → 作成する武器の名前

・PartPrefix → WeponTypeNameで集約されるパーツの名前

・Mesh → パーツで表示するスタティックメッシュ

・WeaponParts配列で武器の原型を作成しています。

次にマテリアルインスタンス用のデータ配列を作成します。

「WeaponParts」・「MaterialSets」・「WeaponTypes」の中にある、

WeaponTypesがマテリアルインスタンス等の制御をしています。

追加である+を押してWeaponTypeの配列を追加します。

f:id:yoshikata1990:20170930022434p:plain

追加が完了したら下記の形でマテリアル情報を追加します。

WeaponTypeNameは変わらず「axe」を選択

その下の「MaterialSlotType」と「MaterialSlotParamName」

を下記の画像と同じように設定します。

MaterialSlotTypes → 各マテリアルのタイプ

MaterialSlotParameterName → 各マテリアルインスタンス用のパラメータ

※こちらの設定をしないと斧が表示されません。

f:id:yoshikata1990:20170930021659p:plain

2.テストで配置してみる

ここまでできたら一旦実際にそれを置いてみます

武器を実際に表示するのはModularWeapons→Blueprints

のフォルダを選択します。

その中にModularWeaponドラッグアンドドロップで表示します。

ModularWeaponというブループリントが武器を表示するものになります。

f:id:yoshikata1990:20170930011608p:plain

ドラッグ&ドロップすることでレベルに配置されます。

詳細パネルのModularWeaponので斧が表示されるように設定します。

f:id:yoshikata1990:20170930012921p:plain

WeaponDataのWeaponCodeを設定することで表示します。

形式は下記になります。

※ WeaponTypeName:PartsName[配列番号]_PartsName[配列番号]:マテリアル名_マテリアル名

:でパーツとマテリアルの区切りを作成しています。

今回はWeponTypeNameをaxe、各パーツ名をbladeとhiltと設定しているので下記のようになる。

※axe:blade0_hilt0:iron_iron

WeaponCodeを生成できたらGenertionOptionalにチェックマークを付ける。

これでレベルのほうに反映されて表示されるようになる。

f:id:yoshikata1990:20170930015904p:plain

無事、斧として表示するかと思いますが、

マテリアルが最初から設定されていないので斧が出ただけになります。

あとはマテリアルを斧のスタティックメッシュに登録すればいいです。

3.マテリアルの設定・最終確認

斧のパーツにマテリアルを適応していきます。

斧のパーツは、ModularWeaponsのフォルダ内にある、

GameExample(サンプル置き場)→ Meshs → Axesに格納されています。

f:id:yoshikata1990:20170930024617p:plain

こちらのスタティックメッシュにマテリアルを対応します。

スタティックメッシュのファイルをダブルクリックして、

編集画面を開き、MaterialSlotにマテリアルを適応します。

下記は斧の刃になる箇所のマテリアルを選択します。

Ml_Sword_blade_01を選択します。

f:id:yoshikata1990:20170930025227p:plain

持つ場所にはMl_Sword_Hilt_06を選択します。

f:id:yoshikata1990:20170930025428p:plain

これで準備はすべて完了です。

再度ビルドしてみて、マテリアルが適応されれば完成です!

お疲れさまでした!!

f:id:yoshikata1990:20170930025944p:plain

【UE4】第8回ぷちコンを応募してみての感想

初めてぷちコンに応募させていただきました。

今回下記の作品?と言っていいのか・・・応募させていただきました。

斧を投げて競うスコアアタックゲームです。


【第8回ぷちコン応募作品】ThrowinAXE

今回参加させていただいた感想について

いろいろああでもないこうでもないと試行錯誤しつつ制作ができたので、

とりあえず今年中に参加できたのはよかったと思っています。

ただ・・・・あまりにも作りこみが無く、ゲームとしての流れだけを作っただけで

終わってしまったので、次参加するときはもっと「動画だけでも楽しめる

ようにしてみようと考えています。

今回はいったん基礎だけ突っ込んだだけというので次回は遊びに特化できたらと思います。

主に今回時間を割いた箇所

  • キャラクター動作すべての自作
  • Over9000Sowrdsアセットの改造?
  • UMGでいろいろ頑張ってみた。。。

上記部分を少しここで説明します

キャラクターの自作

今回キャラクターはモデリング・UVマッピング・アニメーションすべて自分で作成しました。

使用したソフトはBlenderとZbrushCoreの2つです

f:id:yoshikata1990:20170920223806p:plain

アニメーションは全4種類です

立ち・歩き・斧投げモーションになります。

どうやって作ったのかは別途記事を作ります。

しばらくお待ちください_(._.)_

Over9000Sowrdsアセットの改造?

今回下記アセットを改良して投げる斧を生成していました。

www.unrealengine.com

少し改良するだけで斧も作れちゃいます!!

f:id:yoshikata1990:20170920225949p:plain

こちらも改めてやり方を書こうと思います。

少々お待ちください・・・・OTL

今後の課題とやりたいことについて

 今後の課題としては、

販売できるレベルのゲームを作成できていないので、

まず一つ販売できるゲームを一つ作ろうと思います。

すでに構想がいくつかあるのでそこいら辺を実現していけたらと思います。

それから、ブログも合わせて更新していきますのでよろしくお願いします!!

【UE4】VisualStudio2017でUE4を動かす(Windows)

今回紹介すること

  1. Visual Studio2017のダウンロード
  2. Githubのアカウントを連携しUE4のソースを取得
  3. エンジンをビルドする

今回はUnrealEngine4のソースコードをダウンロードしてVS(Visual Studio)2017でビルドする所を紹介します。

1.VisualStudio2017のダウンロード

下記リンクからVisualStudioをダウンロードします。

www.visualstudio.com

一番下のリンクの箇所から自分のインストールしたいものを選択します。(Community版で行いました。)

ダウンロードしたVisualStudioのファイルを起動します。

インストールの際に気をつける部分はC++によるデスクトップ開発を選択してインストールしてください。

(VisualStudio2015のツールも必要かもしれないです・・・・)

f:id:yoshikata1990:20170430085803p:plain

インストールが完了したらVisualStudioの設定は完了です。

2.Githubのアカウントを連携しデータを取得

次にGithubと連携してソースをダウンロードしていきます。

UE4のアカウントにGithubのアカウントを設定します。

f:id:yoshikata1990:20170430164444p:plain

上記のところにアカウントを設定すると、EpicGamesから

organizationの招待が来るのでJoinを選択します。

f:id:yoshikata1990:20170430164803p:plain

 ここまで来たらEpicGamesのUnrealEngineのリポジトリからダウンロードします。

リポジトリを指定しない場合は最新の4.15.1になります。)

f:id:yoshikata1990:20170430170557p:plain

3.エンジンをビルドする。

zipからダウンロードしてきたら、C:に持ってきて解凍します。

解答が完了したら、batファイルを2つ起動します。

順番はSetup → GenerateProjectFilesの順番です。

f:id:yoshikata1990:20170430173036p:plain

Setup.batについては、時間がかかるので注意してください。

GenerateProjectFilesを起動するとUE4.slnが作成されます。

UE4.slnをダブルクリックして起動します。

起動時にプロジェクトの再ターゲットが聞かれますが、

こちらはキャンセルにします。

f:id:yoshikata1990:20170430183959p:plain

 VisualStudioが起動したらUE4のビルドを行います。

これも10分~40分ぐらいかかります。

スタートアップビルドはUE4(VisualStudio2015)になります。

f:id:yoshikata1990:20170430184803p:plain

成功すると正常終了します!!やったね!!

f:id:yoshikata1990:20170430184806p:plain

最後にデバッグしてエンジンの動作を確認出来れば完了です。

お疲れ様でした!!

f:id:yoshikata1990:20170430185215p:plain

【UE4】映像をレンダーテクスチャーで投影する方法

今回行ったこと

今回はカメラで投影された映像をTextureにして書き出す処理を作成してみました!そのやり方とかを紹介してきます。

工夫すれば使い所があると思うので是非活用してみてください!

※ドキュメントやサンプルもちゃんとあります!!

実装の手順の紹介

1.SceneCapture2Dを配置して投影する映像を設定する。

2.TextureTargetを作成し、SceneCapture2Dに適応する。

3.TextureTargetからマテリアルを書き出す。

4.マテリアルを設定して壁などに合わせる。

以上の工程で勧めていきます。

カメラの映像を取得してマテリアルを作成する

まずはSceneCapture2Dのカメラを配置します

モードタブから『2D』で検索すると出てきます。

f:id:yoshikata1990:20170311144507p:plain

 次に描画ターゲットのファイルを作成してSceneCapture2Dに当てはめます。

描画ターゲットを新規作成するには、コンテンツのマテリアルから選択出来ます。

f:id:yoshikata1990:20170311164123p:plain

 描画ターゲットを作成したら、先程設定した『SceneCapture2D』の詳細に、『TextureTarget』に当てはめます。

f:id:yoshikata1990:20170311165515p:plain

当てはめると描画ターゲットの情報が更新されキャプチャーされるようになります。あとは描画ターゲットから新規マテリアルを生成して完了になります。

f:id:yoshikata1990:20170311170741p:plain

マテリアルを適応してみる。

今回は例としてジオメトリにテクスチャを適応して表示してみます。

見やすい感じで設定しておきます。

f:id:yoshikata1990:20170311173159p:plain

 マテリアルを適応すると同じ画面が何個も表示される形になるので、

サーフェスプロパティで、一枚で表示するようにします。

・適応前

f:id:yoshikata1990:20170311173853p:plain

・適応後

f:id:yoshikata1990:20170311174808p:plain

ここまで出来ればあとは動作を確認して完了です。

動きに合わせてレンダリングしてくれるのでだいぶ使い勝手がいいです。

f:id:yoshikata1990:20170311175357p:plain

少しわかりにくいですが動かしたものをtwitterであげておきました。

カスタマイズ例や使い所・注意点について

・マテリアルから改良することができる。

マテリアルエディタから編集ができるので便利( ・`д・´)

f:id:yoshikata1990:20170311180518p:plain

・投影してるカメラもブループリントで動かせる。

カメラのほうをブループリントから動作させたり出来るので便利(゚∀゚)

回転させたり移動させたりとか出来ます!!

 

説明はこれで以上になります。わかりにくいところがあればコメントお願いしますm(_ _)m