ゲームプログラマー暇人日記

プロのゲームプログラマーが技術的な事から、そうじゃないことまで書いていきたいと思います。

ぷちコンで作ったPC用ゲームをAndroid対応してみる

 この記事はUnreal Engine 4 (UE4) Advent Calendar 2017の22日目の記事です。

今回はUE4ぷちコンで作成したPC用ゲーム『60 Seconds Shooting』をAndroidに移植する話です。

『60 Seconds Shooting』はこんなゲームです。

 PC版は無料ダウンロード出来ますので、詳しくはこちらを参照してください。

 

行ったAndroid対応ですが、下記の順番でやってます。

  1. Andoridで動かしてみる
  2. システムとして問題がある部分を修正する
  3. ゲームとして問題がある部分を修正する

 Androidで動かしてみる

もちろん、Andoridで動かないことには話になりません。

ということで、Androidで動かしてみます。

と言っても、昔UE4からAndroidのアプリを吐き出す対応を行っていたため、ここでの作業はあまりありませんでした。

Androidの開発環境が準備できていない場合は

Unreal Engine | Android クイックスタート

を参考にAndroidの開発環境を構築してください。

 

作業を始める前に一応、プロジェクトのバックアップを取って作業を取っておきます。

これは別に必要の無い作業でしたが、バックアップの安心感はありますよね。

 

プロジェクトの設定を変更します。

ハードウェアをモバイル/タブレットに変更する

グラフィックレベルをScalable 3Dまたは2Dに変更する

f:id:hima_zinn:20171215230151p:plain

ETC1フォーマットで出力します。

f:id:hima_zinn:20171215230203p:plain

これだけでAndroid用のアプリケーションファイルが出力されます。

とても簡単です。

マルチプラットフォーム開発環境万歳! 

 

次に出力したアプリをAndroid端末に入れます。

PCとAndroidを接続した後、AndroidがPCで認識されているか確認します。

コマンドプロンプトから

『adb devices』

で端末が認識されていることを確認します。

もし端末が認識されていない場合はドライバが入っていない可能性があります。

『端末の機種名 adb ドライバ』などで検索し、ドライバを入れてください。

adbがうまく動いていない場合は

adbの停止『adb kill-server』コマンドを行った後、

adbの起動『adb start-server』コマンドを行うとうまくいくことがあります。

その後は

Install_SixtySecondsShooting_Shipping-armv7-es2.bat

を実行するとAndroidスマホにアプリが入ります。

f:id:hima_zinn:20171215230223p:plain

あ、もちろんただ確認するだけならデバイスを選んで起動してもOKです。

f:id:hima_zinn:20171215232943p:plain

でも、最終的にはアプリとして出力しなければいけないので、先に正しく出力できるかは試しておくべきかと思います。

 

 システムとして問題がある部分を修正する

Andoridで動いたらゲームを遊んでみます。

しかし、『60 Seconds Shooting』の場合は即問題が発生してゲームが遊べませんでした。

タイトル画面からゲームを開始する方法を

キーボードのスペースキーを押すorコントローラーのStartボタンを押す

しか対応していませんでした。

そのため、タイトル画面から次の画面に行く方法がありません。

 

PCとAndroidで処理を変える必要があります。

プラットフォーム別に処理を変える方法ですが、

『Get Platform Name』ノードを使用します。

Get Platform Name | Unreal Engine

返り値はプラットフォーム名で

WindowsMacIOSAndroidPS4、XboxOne、HTML5Linux

が返ってきます。

IOSが大文字なので注意が必要です。

今だとSwitchとかも返ってきそうですね。

 

今回はGUIWidgetの部分で処理を変えています。

とりあえず、こんな感じです。

f:id:hima_zinn:20171215230238p:plain

PC版では文字を表示してキーボードorコントローラーのボタンでゲーム開始、

Andorid版ではボタンを表示して押したときにゲーム開始にしました。

それぞれ下記の見た目になります。

PC版

f:id:hima_zinn:20171215230303p:plain

 Android

f:id:hima_zinn:20171215231524p:plain

『60 Seconds Shooting』に関してはこの対応くらいで他にシステムとして問題があるところはありませんでした。

もし処理負荷が高い場合は処理負荷の軽減対応なども必要になります。

 

 ゲームとして問題がある部分を修正する

ここまでゲームとして動くようになったので、テストプレイを行いました。

調整を全く行っていない状態でのNexus 5での実機プレイ動画です。

これは難しい。。。

PC版でコントローラーで遊んだら慣れた人なら3分くらい遊べるように調整を行ったのですが、スマホでは操作性が悪すぎて19秒で死んでしまいました。

何回もプレイしたのですが、平均30秒くらいしか生き残れませんでした。

特にタッチパッドになったことによって指の部分が隠れてしまい、

指の下から来る敵に気付いた時には当たってしまいます。

PC版と同じ難易度にしてしまうとかなり難しいゲームになってしまうことがわかったので、Android用に調整することにしました。

 

敵の動きの速度を経過秒数に応じて変更することを試してみました。

敵の動きをゲーム開始時に今までの半分の速度にして3分経過時にPC版と同じ速度になるようにだんだんと早くするようにしてみました。

こちらが難易度調整後のNexus 5での実機プレイ動画です。

90秒ほど生き残れるようになりました。

まだ調整がかなり荒いところはありますが、これでゲームとして遊べる形になったかなと思います。

単純に敵の動きを遅くしたため、ステージ上に敵が想定よりも多く出てしまっています。

PC版と同じプレイ感になるようにするには、敵の出現数の調整もまだまだ必要そうです。

 

 最後に

このゲームは最初の企画段階からぷちコンに提出するためにPC版を作るだけではなく、あとでスマホ版対応を行う予定でした。

初めからなるべく移植しやすいように作っていたので、システムとして変えなければ行けない部分が少なくて助かりました。

PCとスマホの両対応するアプリを作る時はキーボードやコントローラーボタンのみの操作をなくしておいた方が簡単です。

また、処理負荷に関してはなるべく早めに考えておいた方が楽ですね。

ゲームとしての調整は実際にプレイしてみないとわからないところが多そうです。

マルチプラットフォームでの開発では操作性の違いから難易度が大きく変わってしまい事があるので注意が必要です。

このゲームはapkファイル化までは行ってゲームとしては作成できたので、時間があるときに残りの難易度調整を行って署名つけて公開しようと考え中です。

 

明日はじゅる (@xxJulexx)さんのUE4+Arduinoでいろいろとです。

UE4ぷちコン 進捗報告(4)『60 Seconds Shooting』提出完了しました

第8回ぷちコンに向けて作っていた『60 Seconds Shooting』の提出が完了しました。

やっと一区切りついたって感じです。

 

開発記録についてはtogetterでまとめています。

テーマ『60秒』でゲームを思いついたのはもう1ヶ月以上も前なんですね。

早いものです。

ゲーム制作を終えて思ったことは

『早めに動くところまで作ることは大切!』

です。

実は今、仕事がかなり忙しいです。(暇人じゃないです。)

今回、ゲームとして遊べるレベルに作るまでをかなり早く実装しました。

そのことによっていろいろと余裕ができ、調整や機能の入れ込みができたと思います。

 

落ち着いたら初期段階から考えていたスマホ移植についても考えようかなと思います。

ゲーム中の文字をなるべく英語にしたのも世界に向けてのスマホアプリとしてのリリースを考えて作っていたからなんですよね。

 

今回の開発では制作過程をTwitterやブログでオープンにして開発しました。

ぷちコンに興味はあるけど参加したことのない人や、ゲーム作りには興味あるけど作り方がわからない人の参考になればいいなと思います。

ゲームの難易度調整のノウハウやこだわった部分など他のゲームでも応用できそうな内容をオープンにしたつもりです。

誰かひとりでも自分の情報が役に立つことを祈っています。

UE4ぷちコン 進捗報告(3)『60 Seconds Shooting』操作方法・ダウンロード

第8回UE4ぷちコン応募作品

『60 Seconds Shooting』の紹介とダウンロードのページです。

f:id:hima_zinn:20170914004556p:plain

 

紹介動画

 

ダウンロードはこちらからどうぞ

 

【このゲームについて】

60秒間のみ移動できる宇宙船を操作し、できるだけ敵を倒すゲームです。

【起動方法】
ゲームを行うには
SixtySecondsShooting\WindowsNoEditor\SixtySecondsShooting.exe
を起動してください。

 
【操作方法】
ゲームパッド
左スティック …移動

右スティック …カメラ移動
Start    …リトライ
[キーワード・マウス]
WASD   …移動
方向キー …ショット

R    …リトライ
Esc   …ゲーム終了

 

【ルール】
Life Timeが移動可能時間です。初期値は60秒です。
移動を行っている間、Life Timeが減っていきます。
地面が赤色の場所はDAMAGE AREAで、宇宙船が止まっていてもLife Timeが減っていきます。
Life Timeが尽きる前にできるだけ敵を倒してスコアを稼いでください。
紹介動画も公開していますので、こちらもご覧ください。

 

【初めてプレイされる方へ】
Life Timeが減っていくのがもったいないと考えてなるべく動かないようにして、
そのまま敵にぶつかってゲームオーバーになる人が多いです。
敵にぶつかってゲームオーバーになっては元も子もありません。
もったいないと考えすぎないようにしましょう。

 

【ハイスコアを狙う方へ】
敵を倒してから1.5秒以内に次の敵を倒すとコンボになります。
コンボをつなげればつなげるほど獲得スコアが多くなります。
DAMAGE AREAの上を移動してもLife Timeの減りが早くなることはありません。
そのため、DAMAGE AREAの上を移動して青色のエリアまで戻るのはアリです。

 

【制作スタッフ】

暇人 @hima_zinn


【免責】
本ソフトを運用した結果について作者は一切責任を負えないのでご了承ください。

============================================


【BGM/SE】

BGM, SEは下記を使用させていただきました。

魔王魂
http://maoudamashii.jokersounds.com/

UE4ぷちコン 進捗報告(2)『60 Seconds Shooting (Ver0.3)』操作方法・ダウンロード

『60 Seconds Shooting (Ver0.3)』を公開しました。

 

ダウンロードはこちらからどうぞ。

バージョン1.0を公開したため、バージョン0.3の公開を停止しました。

バージョン1.0のDLはこちらからどうぞ。

UE4ぷちコン 進捗報告(1)One Minite Shooter紹介

現在開発中のゲームの動画を公開しました。

まずは動画をどうぞ。

BGMは魔王魂さんを使用させて頂いています。

 

このゲームは株式会社ヒストリアさんで行われている第8回UE4ぷちコンの応募作品です。

今回のテーマは「60秒」。

詳しくはこちらをどうぞ。

 

自分はUE4ぷちコンには初参加です。

1回目から知ってはいましたが、応募したことは無かったです。

今回はやってみようかなと思ってゲームを作ってます。

いや実際は結構面白そうなゲーム案が思いついたので作ってるって感じです。

冗談っぽく書いていますが、マジで60秒くらいで原案が思いつきました。

いや、60秒以内に思いつきました。

それをほぼそのままゲームとして作ったのが公開したゲームです。

 

今回の開発ではいろいろと試しながらやっています。

Twitterで進捗報告をメッチャしているのも試していることの一つです。

いろんな意見をもらっていい案があれば採用しています。

コンボシステムはTwitterで意見もらって採用しました。

今回作ってるゲームの開発記録用ツイートをまとめましたので、開発の進捗報告についてはこちらからどうぞ。

まだ応募期間まで時間がありますので、まだ改良していきます。

応募よりも前に公開とかできないかなと考え中。

いろんな意見をもらって作っていくっていう開発スタイルも面白そうだと思っています。

まだまだ頑張ります。

2016年プレイしたゲームまとめ

今年、自分がプレイしたゲームを紹介したいと思います。

といっても、ゲーム名の紹介くらいです。

自分用の備忘録ですね。

ゲームをプレイした時期は多少前後してます。

あと、多分書ききれてないゲームもあります。

(記憶が曖昧なためですw)

赤字はクリアしたゲームです。

 

1月

STEINS;GATE 0

『STEINS;GATE 0』 シュタインズ・ゲート ゼロ 公式サイト

Downwell

Downwell

2月

Dmc Devil May Cry

CAPCOM:DmC Devil May Cry 公式サイト

3月

朧村正

PS Vita『朧村正』公式サイト

Life Is Strange

Life Is Strange | SQUARE ENIX

DARK SOULS 3

PROLOGUE - DARK SOULS Ⅲ | DARK SOULS official web site

4月

DARK SOULS

PROLOGUE - DARK SOULS Ⅰ | DARK SOULS official web site

5月

アンチャーテッド 海賊王と最後の秘宝

アンチャーテッド 海賊王と最後の秘宝 | プレイステーション® オフィシャルサイト

スーパータイムフォース ULTRA

スーパータイムフォース ULTRA | プレイステーション® オフィシャルサイト

キングダムハーツ

KINGDOM HEARTS -FINAL MIX- | KINGDOM HEARTS -HD 1.5 ReMIX- | SQUARE ENIX

ゼルダの伝説 時のオカリナ 3D

ゼルダの伝説 時のオカリナ 3D

6月

逆転裁判6

CAPCOM:逆転裁判6 公式サイト

カエルの為に鐘は鳴る

カエルの為に鐘は鳴る | ニンテンドー3DS | 任天堂

バイオハザード5

BIOHAZARD 5(バイオハザード5) - PS4・Xbox one - CAPCOM

ひとりぼっち惑星

ひとりぼっち惑星を App Store で

ひとりぼっち惑星 - Google Play の Android アプリ

7月

KINGDOM HEARTS Re:Chain of Memories

KINGDOM HEARTS Re:CHAIN OF MEMORIES | KINGDOM HEARTS -HD 1.5 ReMIX- | SQUARE ENIX

スターフォックス ゼロ

スターフォックス ゼロ | Wii U | 任天堂

ポケモンGo

Pokémon GOを App Store で

Pokémon GO - Google Play の Android アプリ

8月

ゼノギアス

ゼノギアス | ソフトウェアカタログ | プレイステーション® オフィシャルサイト

バイオハザードリベレーションズ2

BIOHAZARD REVELATIONS 2

TIME LOCKER - Shooter

TIME LOCKER - Shooterを App Store で

TIME LOCKER - Shooter - Google Play の Android アプリ

9月

Blek

Blekを App Store で

Blek - Google Play の Android アプリ

囚われのパルマ

CAPCOM:囚われのパルマ 公式サイト

キングダムハーツ2

KINGDOM HEARTS -HD 2.5 ReMIX- | SQUARE ENIX

10月

サマーレッスン

サマーレッスン|バンダイナムコエンターテインメント公式サイト

Rez Infinite

Rez Infinite | ソフトウェアカタログ | プレイステーション® オフィシャルサイト

11月

キングダム ハーツ 358/2 Days

KINGDOM HEARTS 358/2 Days | KINGDOM HEARTS -HD 1.5 ReMIX- | SQUARE ENIX

ポケットモンスター サン

『ポケットモンスター サン・ムーン』公式サイト

FINAL FANTASY XV

FINAL FANTASY XV (ファイナルファンタジー15) | SQUARE ENIX

12月

バイオハザード6

BIOHAZARD 6(PS4®・Xbox one) - CAPCOM

キングダムハーツ Re:コーデッド

KINGDOM HEARTS -HD 2.5 ReMIX- | SQUARE ENIX

スーパーマリオ ラン

スーパーマリオ ラン | 任天堂

人喰いの大鷲トリコ

人喰いの大鷲トリコ | プレイステーション® オフィシャルサイト

Her Story

Her Story

 

2016年ゲームベスト3

2016年でプレイしたゲームは34本、クリアしたゲームは23本でした。

2015年はプレイしたゲーム34本、クリアしたゲーム14本だったのでクリアしたゲームが9本も増えましたね。

 

2016年で最も面白かったゲームは『Rez Infinite』。

前にブログでも書きましたが、やはりArea Xが衝撃的でした。

ぜひ初プレイはVRでやってもらいたいです。

 

2位は『アンチャーテッド 海賊王と最後の秘宝』。

こちらも前にブログで書きました

E3のデモとか凄すぎるし、コレがそのままゲームでできるっていうのが凄い。

 

3位は『人喰いの大鷲トリコ』。

自分はペット(犬とか猫とか)を飼ったことは無いんですが、多分ペットを飼ったらこんな気持ちになるんだろうなと思います。

操作性が悪いとか色々言われていますが、自分はキャラクターに自然な動きをさせたところのトレードオフだと思っています。

そうすることでより世界観を表現しているため自分はこの操作性の方がこのゲームには合っているという考えでした。

 

2016年も面白いゲームがいっぱいでした。

 

2017年に期待しているゲーム

来年は『NieR:Automata』、『キングダムハーツ2.8』、『Horizon Zero Dawn』に期待しています。

 

ニーアは前作を4周するくらい好きです。

↑すべてのストーリーをプレイするには4周必須のゲームです。

ニーアオートマタは自分が好きなプラチナゲームズが開発しているということもあり、体験版でもアクションが気持ちよかったのでストーリーだけでなくアクション部分にも期待しています。

NieR:Automata | SQUARE ENIX

 

キングダムハーツ2.8は最近1.5,2.5HDをずっとやってて、ストーリーがつながっていて面白いので期待ですね。

キングダムハーツ3の方がもっと期待していたりもします。

キングダムハーツ HD2.8 ファイナルチャプタープロローグ | SQUARE ENIX

 

Horizonは発表されたときに『これが真のモンハン』ってネット上で話題になったゲームですね。

体験会で何度かプレイしましたが、背後から気づかれずに攻撃したら大ダメージなどモンハンには無いシステムがありました。

PS4でプレイする新作ハンティングアクションとして期待ですね。

マルチプレイが無いというのがすでに発表されていて、その部分ではちょっと残念です。

でも、ハンティングアクションゲームが好きなのでやってみたいと思います。

Horizon Zero Dawn | プレイステーション® オフィシャルサイト

 

来年も楽しいゲームがたくさん遊べることを期待しています。

UE4のショートカットをカスタマイズして開発効率を上げる

はじめに

この記事はUnreal Engine 4 (UE4) Advent Calendar 2016の19日目の記事です。

今回はUE4のショートカットカスタマイズについての記事です。 

 

UE4を使っていて、プレイ中に一時停止するということがよくあります。

自分は作業の効率化が大好きなので、『一時停止のショートカットキーってなんだろう?』って思って調べてみたのですが、デフォルトでは設定されていないことがわかりました。

そこで、UE4でのショートカットキーの設定について説明します。

 

ショートカットキーのカスタマイズ方法

例として一時停止のショートカットキーを『Shift+F2』に割り当てる方法を解説します。

  1. 編集→エディタの環境設定を選択
    f:id:hima_zinn:20161128215913p:plain
  2. Keyboard Shortcutsを選択
    f:id:hima_zinn:20161128215916p:plain
  3. 『停止』というキーワードで検索を行い、『ワールドをプレイ(PIE/SIE)』内の『一時停止』に『Shift+F2』を設定する

    f:id:hima_zinn:20161209211937p:plain

これだけでプレイ中に『Shift+F2』で一時停止できるようになっています。

UE4では様々なショートカットが設定できるようになっていますので、設定しておけば開発効率が上がること間違い無しです。

さらに嬉しい事にこの設定のエクスポート・インポートが可能になっています。

f:id:hima_zinn:20161209214009p:plain

一度設定しておけば、違うPCで作業する時もすぐに同じショートカットキーを登録できますね。

他の人が設定したオススメのショートカットが入った設定をインポートするのもいいと思います。

 

ショートカットキーのカスタマイズについての公式のドキュメントは下記になります。

Unreal Engine | キーバインディング エディタ

 

カスタマイズできるショートカット一覧

公式のドキュメントはありますが、カスタマイズできるショートカットの一覧を探しても見つかりませんでした。

本当は公式ドキュメントにカスタマイズできるショートカットキー一覧ほしいです。

しかたないので、全部キャプチャして作りました。

(このキャプチャを準備するのにブログ書く3倍以上の時間がかかってますw)

かなりの数になったので、よく使用する機能だけ見てみるといいかもしれません。

Hatena Blogにアップすると画像の自動縮小で文字が読めなくなってしまったため、DropBoxにアップしてリンクを付けました。

必要があれば右上のダウンロードボタンから画像をダウンロードしてください。

f:id:hima_zinn:20161218203438p:plain

 

最後に

明日はnano06126728さんの『UE4でのUMLの使い方、ステートマシン図、クラス図、シーケンス図』です。

よろしくお願いします!