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

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

【その他】銀座VR(銀VR)行ってきた(*'▽')

今更ですが明けましておめでとうございます。

もう一月中旬ですが明けましておめでとうございます。

このブログを始めてもう少しで1年が経過しますが、

引き続きやってみたこと皆さんの参考になるようなことができたらと思います。

本年も宜しくお願いします!!

銀VRに行ってきました!!

ということで今回はVRゲームの知見を広げるために銀座VR(銀VR)に行きました。

実際にプレイしたゲームと特徴・思ったことなどを紹介していきます。

※詳細は下記リンクにてイベント情報が紹介されています。

JapanVR Fest 2018銀座 世界一地代の高い場所で行われるVR体験会 – JapanVR Fest.

なっつーさん・LoginOverWorld

f:id:yoshikata1990:20180114112946j:plain

LoginOverWorldをプレイさせていただきました。

主人公のキャラクターはOculusで操作します。

キャラクターは剣と遠距離攻撃を駆使して敵を倒す。

キャラクターの視点を変化してキャラを移動させるというのが、

他のVRゲームにはなく楽しめる要素としてあるのがよかったと思いました。

このゲームはいったんこれでという話でしたので、

今後のゲームを楽しみにしています!!

作者のTwitterは下記になります。

twitter.com

ごんびぃーさん・Star Bullet Refrain

Star Bullet Refrainをプレイさせていただきました。

Twitterで製作状況とかは見ていたのである程度知っていた状態でプレイ!

コントローラーを銃に見立てて飛んでくる球体を撃つゲームです。

PerfectとExperfectのタイミングが難しい部分がありましたが、

細かい調整が可能になればもっと楽しめる作品になるかと思います!

作者のTwitterは下記になります。

twitter.com

株式会社ワンドブイ・SEIYA


VR Rhythm Action SEIYA's ”放課後はSecLet's” Playing Movie

SEIYAと呼ばれるVRをプレイさせていただきました。

前方から音や歌詞の星マークが飛んでくるのでそれを叩いて、

たたいた強さに応じてポイントが変化する音ゲーです。

結構強くふらないと高得点にならないので、

結構大変でしたが完成度はとても高く、ステージ上のエフェクトが、

とても凝っていて臨場感を楽しめてとてもよかったです。

VR IMAGINATORS・中二病VR (or AR)


中二病VRオンライン TGS2017版 -デモPV-

中二病VRオンラインをプレイさせていただきました。

このゲームは剣を振ることで斬撃を飛ばし敵を倒す、

または左手で剣をなぞることで、必殺技の状態にして剣を振ると、

敵を一撃で多く出せるというものでした。

斬撃を出すのにプレイヤースキルが結構必要で苦労しましたが、

斬撃が出せると敵が倒れるエフェクトがきれいなので爽快感がゲームでした。

開発のお話とか聞けてとても参考になりました。ありがとうございます!

株式会社ケイズデザインラボ・ナマコVR

f:id:yoshikata1990:20180114155936j:plain

ナマコVRを体験させていただきました。

個人的にはこれが一番驚きました。

ナマコのザラザラ感や硬さの変化がとても素晴らしく

表現されていて感動しましたw

もう一度あの感触を体験したいと思わせてくれるサービスでした。

どういった原理か細かく聞いてみたいです。

はさき玩具・クッキングVR


クッキングVR Ver 1.0

クッキングVRをプレイさせていただきました。

ごはんを炒めている音や卵をVR空間でもって割るなど、

要所要所できちんと作成されているという印象を受けました。

他の料理もバージョンアップされて登場したら体験してみたいと思います。

透明少女

f:id:yoshikata1990:20180114165924j:plain

透明少女をプレイさせていただきました。

私は左下の戸沢舞さんという方の動画を体験しました。

動画としてコンテンツにストーリーがしっかり出来ていてよかった。

VRでも動画でも楽しめるものだと思います。

若草なずなさん・VRダンジョンゴルフ


ダンジョンゴルフ(仮)制作 part2

※動画は自分がプレイしたものではなく制作中の動画です。

ダンジョンゴルフをプレイさせていただきました。

VR内でゴルフは広い空間を使えて、なおかつ気持ちよく

球を飛ばせた時の爽快感がとてもよかった。

ボールを飛ばす方向は自身で選択できます。

方向を決めるのをもう少し微調整できるようになると

スムーズに楽しめそうかなと思いました。

作者のTwitterは下記になります。

twitter.com

Mark-on・CastleVicinityRepel

f:id:yoshikata1990:20180114181409j:plain

CastleVicinityRepelというゲームをプレイしました。

巨人となって城の門を守るというゲーム。

VIVEトラッカーで足の位置を取得して敵を蹴飛ばしたり、

投石器が飛ばす岩をつかんで投げたり独特なアクションを楽しめる。

トラッカーを使う発想が素晴らしいと思った作品でした。

全体的にプレイしてみて感じたこと

どのゲームも空間の使い方がゲームに合う使い方がされていた。

空間やそのゲームに合う雰囲気・どのようにプレイヤーに楽しんでもらうのか、

上記のことに気を付けて私が作成するときに参考にしようと思います。

VRの分野での知見がとても広がりまたとても勉強になりました!

ありがとうございました!!

【UE4】iOSのTestFlight・LeaderBoardを試してみる

AdventCalenderの記事

Unreal Engine 4 (UE4) Advent Calendar2017の記事になります。

qiita.com

軽い気持ちでiOSの配布用ビルドからiOSベータテスト機能であるTestFlightのテストとLeaderBoardまでやったら結構つまづいてしまったのでそちらの方法を紹介します。

UE4.18.2とWindows・iTunesConnectへのアップロードはMacで行いました。

※iOSDevCenterからアカウントを登録する必要があります。

これ個人登録で12700円ぐらい(2017/12/1時点で)かかります。

まあアプリ配信して元を取ればいいんですよ( `ー´)ノ

Appleの開発者登録

ここの部分に関してはUE4とは関係ないので割愛します。

下記のリンク先を確認しつつ登録していただければと。

i-app-tec.com

登録でわからないことがあればコメントを頂ければお答えします(^^)/

ProvisioningProfileと証明書(Certification)の設定

iOSアプリで避けて通れないのが、ProvisioningProfileとCertificationになります。

原理としては証明書登録してAppIDを登録して、

そのApplDを証明書と関連づけて対応する端末を選択することで、

ProvisioningFileを作成します。

証明書をPCに登録・Provisioningを端末・PCにも一応格納して、

アプリを動かすというのが主な流れになります。

Certificationの設定からAppIDの部分は他のサイトを見てもらったほうが早いと思いますので今回はUE4用のProvisioningFileを作成して登録するところまでやります。

配信・TestFlightで使用する場合はDistributionのAppStoreを選択します。

f:id:yoshikata1990:20171217093638p:plain

その後AppIdと適応する証明書とファイル名指定して配布用のプロビジョニングファイルを作成します。

f:id:yoshikata1990:20171217095822p:plain

作成が完了したら、UE4のプロジェクトに適応していきます。

WindowsUE4でProvisioningと証明書を登録する。

プロジェクトのほうに作成したProvisioningファイルと証明書を登録します。

先に証明書を登録します。

Import Certificateボタンから証明書をインストールします。

成功すると追加されます。

f:id:yoshikata1990:20171217105046p:plain

プロジェクト設定→プラットフォームのiOS→MobileProvisionから登録します。

f:id:yoshikata1990:20171217101226p:plain

ここで注意したいのがTestFlightでは右側にある、

「配布」のチェックが入っていないとTestFlight配信が出来ません。

それから、ステータスで「No Valid」になることが多々ありました。

Windowsはプロビジョニングファイルが下記ディレクト

C:\Users\ユーザー名(個別のユーザー名)\AppData\Local\Apple Computer\MobileDevice\

に保存されます。こちらで「No Valid」になっているプロビジョニングファイルを、

削除して再度インストールしなおすとValidになりました。

 次にAppIDを登録するときに決めたBundleIdを適応します。

f:id:yoshikata1990:20171217140951p:plain

BundleIdentifier(黒塗りの選択欄)にAppIdを入れてVersionを指定します。

VersionInfoについては配信時、AppStoreに表示されるバージョンになります。

ここまで完了したら、パッケージ設定をして配布用ビルドを作成しましょう!

プロジェクトのパッケージ設定とパッケージ化

プロジェクトのパッケージ設定をします。

パッケージ化する際にはDistributionを必ず選択してください。

f:id:yoshikata1990:20171217154005p:plain

あとは指定したフォルダにパッケージングして、

Distribution用のIPAファイルが作成されれば完了です。

f:id:yoshikata1990:20171217154534p:plain

IPAのアップロードとTestFlightからのインストール

ここからはMacのパソコンが必須です・・・

というより、iTunesConnectへのアップロード方法がXcodeから、

Archiveを作成してのアップロードまたは、

ApplicationUploaderからのアップロードしかないのです(#^ω^)

Windowsからはどちらもできない・・・・

というわけで今回はApplicationUploaderを使って作成したIPAファイルを、

直接アップロードします!!

ApplicationUploaderの使い方は下記に掲載されてます。

一つ一つの手順まで記載されていましたのでわかりやすいかと思います。

makotton.com

実際にアプリのアップロードが完了するとTestFlightタブのところに追加されます。

f:id:yoshikata1990:20171217164131p:plain

テスト中までいくと開発者用登録したアカウント宛にTestFlightの準備が出来たことを、

報告してくれるメールが届きます。下記の画像が実際のものになります。

 

f:id:yoshikata1990:20171217165207p:plain

メールのリンクをタップすることでTestFlightアプリをインストールして、

TestFlightのアプリからベータテストアプリをダウンロードしてテスト出来ます。

ここまでがTestFlight配信までの流れになります。

もう少し細かい説明が欲しいところがありましたらコメントいただけると幸いです。

GameCenterにログインしてLeaderBoardを表示させる

iOS特有の機能でランキングを競うLeaderBoardの表示してみます。

LeaderBoardに表示する手順は下記の流れになります。

1.iTunesConnectにLeaderboard設定を登録をする。

2.GameCenterにログインする動作の追加

3.leaderBoardを表示する動作の追加

iTunesConnectにLeaderBoard設定を登録する

iTunesConnectにLeaderBoardの設定を登録します。

機能→LaderBoardの横にある「+ボタン」から追加します。

f:id:yoshikata1990:20171217172947p:plain

LeaderBoardからどのようなスコアボードなのか参照名、

LeaderBoardを呼び出すID・フォーマットタイプ(これはInteger)

などなど必要情報を記載します。

f:id:yoshikata1990:20171217174343p:plain

それが完了したら、次にそれの言語フォーマットを登録します。

f:id:yoshikata1990:20171217174535p:plain

言語・スコアの最大値の設定・スコアの呼び方を登録すれば完了です。

GameCenterへのログイン処理

UE4のプロジェクトからGameCenterする処理を作ります。

まずログインしているかどうか「Is Logged In」で確認します。

f:id:yoshikata1990:20171217175431p:plain

ログインしていなければ「Show External Login UI」でログイン画面を表示します。

どちらもGetPlayerControllを渡します。

f:id:yoshikata1990:20171217175721p:plain

LeaderBoardを表示する

あとは「Show Platform Specific LeaderBoard Screen」で呼び出すだけです。

f:id:yoshikata1990:20171217180317p:plain

※LeaderBoardにプレイヤーのスコアを送る。

スコアボードなのでデータの登録します。

データの扱いがIntegerのみなので送信するデータは数値になります。

f:id:yoshikata1990:20171217181002p:plain

ほしい人がいるかどうか分かりませんがサンプルはGitHubに公開予定です

これまで設定したアプリを動作させたのが下のツイートです。

気になる方は見てみてください。

最後にここまでやってみて思ったこと。

WindowsIPA作成して確認できることは本当にすごいことです!!

Xcodeで40行ぐらい書かないとできないことが4つぐらいノードつなげば可能だったりとか!!上げだしたらきりがないけど・・・

ただ・・・アプリ関係の情報が少ないのとあんまり更新が・・・(´・ω・`)

モバイルの情報も説明出来たらと思います。

23日目はるめらやきさんになります!!

 

 

【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

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

 今後の課題としては、

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

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

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

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