【UE4】mobile実機確認でLevel上のActorが真っ黒になったときに行ったこと

こんにちは。

先日、UE4でmobile向けのゲームを制作中に実機デバッグを行った際、Level上のActorが真っ黒になってうまく表示されませんでした。

f:id:tyojugiga:20191206181151j:plain

 

色々試してみて効果があったと思われるものを紹介します。

 

1.マテリアルを軽いものに変える

 もともと時間で点滅するようなマテリアルを使用していたので軽いものに変更しました。

f:id:tyojugiga:20191206182844p:plain 

  ↓

f:id:tyojugiga:20191206182905p:plain

 

2.LightingをStaticに変更する

 

各Levelの以下のものをStaticに変更しました。

・Atmospheric Fog

・Sky Light

・DirectionalLight

f:id:tyojugiga:20191206184024p:plain

 

3.open levelで同じLevelを連続で読み込まない

GAMEOVERになった際にどうしてもリトライで同じLevelを連続で読み込まなくてはいけませんでした。そこで工夫をしてステージLevelを読み込む前に必ずLoadingLevelを読み込むことにしました。

 

以上の3つを実行した結果問題が解決し、真っ黒な表示が直りました。

ここまで読んでいただきありがとうございます。

【UE4】project名を変更する(Blueprint project)

こんにちは。

今回はBlueprint projectのproject名を変更する方法を紹介したいと思います。

 

まず、下の画像のようにmainディレクトリにはuprojectファイルがあると思います。最初にこの名前を変更します。

f:id:tyojugiga:20191130155423p:plain

 

次にこのディレクトリにあるConfigを開きます。すると下の画像のようにDefaultEngine.iniファイルがあるのでこれをテキストエディタなどで開きます。

f:id:tyojugiga:20191130155728p:plain

開くと下の画像のようになっているので、[URL]の下の行に
GameName=新しいproject名

という一文を追加します。

f:id:tyojugiga:20191130155849p:plain

次に先ほどのmainディレクトリからintermediate/Sourceに移動すると、下の画像のように三つのファイルがあります。この3つのファイル名には、古いproject名が付けられていると思うのでこれらを削除します。これを削除しないとパッケージングするときに新しいproject名のファイルと競合してエラーが起きます。

f:id:tyojugiga:20191130160209p:plain

 これでproject名の変更作業は終わりです。project名はパッケージングした時のexeファイルにも名前が引き継がれるので名前の変更手段を知っていても損はないと思います。

 

ここまで読んでいただきありがとうございました。

 

【UE4】Androidアプリに広告をつけてリリースするときのプロジェクト設定

こんにちは。

今回は、Androidアプリに広告をつけてリリースするときのプロジェクト設定について特に重要な点について紹介していきます。

 

Androidプラットフォーム

 これは、「今すぐ設定」を押します。

・Accept SDK Licence

 クリックします。

・Store Version offset(arm64)

 1にします。これについては後述。

・Target SDK Version

 29(Android10)にします。最新のものにしておきます。2019/11/22現在、Google play consoleではAPIレベル28以上にしておかないとapkファイルをアップロードするときにはじかれます。そのため、最新のSDKプラットフォームをインストールしておきましょう。

f:id:tyojugiga:20191122184504p:plain

 

・Support arm64[aka arm64-v8a]

 チェックします。これについても、2019/11/22現在、Google play consoleでは64bit対応版しか受け付けてくれないので注意です。

・Extra Tags for <manifest> node

com.google.android.gms.games.APP_ID="@string/app_id" com.google.android.gms.appstate.APP_ID="@string/app_id"

を追加します。

・Extra Permissions

com.android.vending.BILLING を追加します。

・Key Store

 デジタル署名のために作成したKey Storeを追加します。

・Key Alias

 Keyの名前を追加します。

・Key Store Password

 パスワードを追加します。

・Key Password

  パスワードを追加します。

f:id:tyojugiga:20191122185416p:plain

 

・Enable Google Play Support

 チェックを入れます。

・Games App ID

 Google play consoleのゲームサービスのアプリ名の下に書いてあるIDを追加します。

紛らわしいですが、AdMobのApp idではありません。

・include AdMob support for ads

 チェックを入れます。

・AdMob Ad Unit IDs

 AdMobの広告idを追加します。

Google Play Licence Key

 ライセンスキーを追加します。

f:id:tyojugiga:20191122190611p:plain

 

あとは、SDKなどのディレクトリパスを追加します。

f:id:tyojugiga:20191122191238p:plain

 

以上です。

 

他にもチェック項目はありますが重要なもののみ抜粋してみました。

 

皆さんももしよければ自作のアプリを公開してみてはいかがでしょうか?

ここまで読んでいただきありがとうございます!

【UE4】キーボードの入力とWidgetのボタン入力を両立する

こんにちは。

UE4ではplay画面(新規エディタウィンドウなど)でWidgetのボタンを押すとキーボードからの入力を受け付けなくなります。

そこで今回は、キーボードの入力とWidgetのボタン入力を両立する方法を紹介したいと思います。

 

使うBPのノードはこちらです。

f:id:tyojugiga:20191115190904p:plain

このノードをかませることで二つの入力が両立できます。

 

・Player Controller

 これには、get player controllerをつなぎます。

 

・in Widget to Focus

 これには、表示させている対象のWidgetのreturnからつなぎます。

 

・In Mouse Lock Mode

 これはこのままで大丈夫です。

 

・Hide Cusor During Capture

 このチェックは外します。これは重要でmobile向けの開発をしているときは、mobile previewでスワイプが利きにくくなります。

 

これで、キーボードの入力とWidgetのボタン入力を両立できるはずです。

ここまで読んでいただきありがとうございます!

【Blender2.8→UE4】exportするときの注意点

今回はこの自作キャラクターをBlender2.8からUE4にexportする際の注意点をまとめていこうと思います。

f:id:tyojugiga:20191108093204p:plain

 

 ・面の法線を外側にそろえる

 これをやらないとUE4で一部の面が表示されないことがありキャラクターがかわいそうなことになります。

 やり方としては、編集モードで面を選択して「メッシュ→ノーマル→面の向きを外側に揃える」で設定します。

f:id:tyojugiga:20191108093719p:plain

 

・boneのスケールに気を付ける

 全選択してスケールを100倍→拡大縮小を適用→0.01倍にします。これはBlenderUE4でスケールが違うために設定する必要があります。これを行わないとアニメーションなどがうまくexportできない場合があります。

f:id:tyojugiga:20191108094617p:plain

 

・export画面での設定

 まずジオメトリのスムージングを面に設定します。

f:id:tyojugiga:20191108094927p:plain

次にアーマチュアでデフォームボーンのみに設定します。

f:id:tyojugiga:20191108095021p:plain

 

 

これで設定は完了です!

 

UE4にimportできた!

全体像

f:id:tyojugiga:20191108095227p:plain

 

走るアニメーション

f:id:tyojugiga:20191108095246g:plain 

 

ジャンプアニメーション

f:id:tyojugiga:20191108095311g:plain

 

素人なので拙いキャラクターですが自分で作成して愛着があるので、UE4で動いているのをみると感慨深いです・・・。

 

ここまで読んでいただきありがとうございます!!

 

 

 

【UE4】particleのspwanに合わせてcollisionをON・OFFする

こんにちは。

今回はparticleのspwanに合わせてcollisionをON・OFFにする方法を紹介していこうと思います。

 

ちなみにこの記事はUE4の内容を扱っていますがUnityちゃんが登場します。

f:id:tyojugiga:20191103161946p:plain

 

やり方としてはとても簡単です。

まず、particleをspawnさせたらbool変数でON・OFFするスイッチを作ります。

f:id:tyojugiga:20191103162409p:plain

 

次にこのスイッチに合わせてあらかじめ作っておいたcollisionをON・OFFします。

f:id:tyojugiga:20191103162515p:plain


これで完成です!簡単ですね。

 

ちなみにこれを実行すると以下のようなmap上で以下のような演出を作ることができます。

 

 

f:id:tyojugiga:20191103172053g:plain

f:id:tyojugiga:20191103172122g:plain


 ここまで読んでいただきありがとうございます!

【UE4】外部ファイルを含んだprojectをpackagingするときの注意点

こんにちは。

今回は外部ファイルを含んだprojectをpackagingするときの注意点について書いていこうと思います。

外部ファイル(.txtや.csvなど)をprojectで読み書きする場合、そのままpackagingすると外部ファイルが除かれた状態で出来上がってしまいます。

そのため、以下のような設定が必要です。

まず、対象の外部ファイルをprojectのContentディレクトリの中にある任意のディレクトリに入れます。

次にc++のコード上で以下のようにパスを記述して組み込みます。

FPaths::ProjectContentDir()+"/外部ファイルのあるディレクトリ" 

最後にプロジェクト設定のパッケージ化にあるAdditional Non-Asset Directories to Packageに、対象の外部ファイルのあるディレクトリのパスを設定します。
f:id:tyojugiga:20191025112827p:plain

これでpackagingした後も外部ファイルを読み書きできるはずです。

ここまで読んでいただきありがとうございます。