エディトリアルデザイナーのアプリ制作日記

Unityで遊ぶ個人開発者のメモ書き

UnityのPost Processing Stackを使ったらApkサイズが11.3Mb増えた話

 地味~にシステム内部を更新したり、アイテムバランスの調整したりと目に見えた進歩のない昨今、無計画に処理を適当に実装しているため、日々動作が重くなるアプリにちょっとだけブルーになりつつ作業を進めていました。同時に動作だけでなく、色々ぶっ込みすぎてアプリの肥大化が止まらないなぁとも思っていたのですが、ふとApkファイルを見てみるとサイズが90Mバイトを超えている! この間まで70だか80Mバイトだった気がするので、おかしーなーとビルド後にログを確認してみると……

f:id:hamazakifactory:20171227212557j:plain

なんかでかいのが居座ってる!(NotoSansさんは了承済み)

 パッと見て、Post Processing Stackで使ってるシェーダーだよね、というのは分かるのですが、ここまで大きな理由がわからない。スマホでPost Processing Stackなんか使うなよーという話もなきにしもあらずですが、iPhone6sなら、アンチエリアスにブルームとブラーをONにしてもゲームは動くので、動く機種を持っている人は、オプションで切り替えられるようにはしておきたいものです。

 つーことで単にPost Processing Stackを外すのではなく、どうにかサイズを小さくできる方法がないものだろうかと、Google先生に聞いてみました。

github.com

 ありました。

 要は、Uber Shader内の#program~の部分で、使わないものをコメントアウトしちゃえば、サイズ小っちゃくなるよ! ということなので……

f:id:hamazakifactory:20171227213654j:plain

BLOOM以外の場所を、バッサリとコメントアウト

f:id:hamazakifactory:20171227213520j:plain

f:id:hamazakifactory:20171228114955j:plain

 これで無事、11MちょっとがApkから去りました。一応問題なく動いているようですが、本当に無事なのかどうかはこれから気を付けておかないといけませんけどね。ひとまず、危機は去った!

 あと、この解決方法以外にUnityのフォーラムで「V2にするとResorcesフォルダを使わなくなっているから解決しているよ!うんぬん」のようなことも見つけたのですが、V2ってなんだろう?(※Post Processing Stack V2について下に追記しましたー) アセットストアから再インストールしようとしても更新されない……ので、ひとまずシェーダーの中身を書き換える方法で対処しました。

 ということで、何か問題が起きて戻すときに困るので、忘備録として残しておきました(戻す方法を確実に忘れる)。リリースまであと少し、あと少しなんだよなぁ……がんばろ、うん。

>追記

 コガネブロクでおなじみの@baba_s_様からメッセージをいただき(ブログ見てます! いつもお世話になっています!)、Post Processing Stack V2を教えていただいたので、ちょっとだけ試してみました。まだβ段階のようですが、オブジェクト単位でエフェクト掛けられるようになっていたりだとかするみたい(Google翻訳で読んだ限り)で、すごい人が使うとすごいことができそうだなぁと、頭の悪い感想を抱きつつ、インストール。使い方がV1とちょっと変わってて戸惑いましたが、クイックスタートガイドに丁寧に書いてあったので、Google翻訳様の力を借りてお試し! んで、結果!

●Post Processing Stack V1(そのまま使用)

f:id:hamazakifactory:20171228120001j:plain

●Post Processing Stack V2(BLOOMのみ使用)

f:id:hamazakifactory:20171228120052j:plain

●Post Processing Stack V1(Uber Shderを書き換えて、BLOOMのみ使用)

f:id:hamazakifactory:20171228120114j:plain

……減ってはいるけど、V1に比べて中途半端というか、こんなもん? 使い方も正しいのかどうかも怪しいので、とりあえず、まだβなV2はいったん保留にして、V1に戻すことにしました。サイズだけでなく実行速度もちゃんと検証しなきゃいけないしね。

 てか、なんで私は本番プロジェクトでこんな検証やってんだろ……と、すべて終わってから気づく馬鹿。ま、動いてるからいいや。

Unityアクションゲーム制作記 その32 ゲーム起動からチュートリアルの流れ

 いまさらですが、ようやくゲーム起動からチュートリアルまでの流れが、ほぼ確定しました。すでに前半部分はできていて「残りはどうとでもなるだろう」と、後回しにしていただけなんですけどね。最終的に決まった全体の流れは下の通りです(下から上に流れているのでちょっと見づらいですが)。

f:id:hamazakifactory:20171123182358j:plain

 丁寧にやるとどこまでも手間がかかるチュートリアルですが、今回やりたかったことは以下の3つでした。

1.ゲーム初起動>チュートリアル開始

 タイトルとかメニューとかの余計なことは一切経由せずに、アプリ初回起動後、即チュートリアルへという流れを考えていました。ですが、最終的にチュートリアルそのものをやりたくないプレイヤーのために、チュートリアル選択メニュー>操作説明開始という流れに修正。

2.最短手順で実戦投入

 ゲームとしての魅力、特にバトルの楽しさを可能な限り早くプレイヤーに体験してほしかったため、必要最低限の「移動」「攻撃」を教えたら、ボスクラスの敵とのイベントバトルを用意しました。イベントバトルとはいえ、ゲームオーバーありの通常戦闘です。

 プレイヤーの死亡ナシ、もしくは、プレイヤーor敵が死亡したら勝手に進むというパターンも考えたのですが、緊張感がないし、わざわざ戦ったのに意味なしかよ、と思われるのも気持ち悪かったので、死んだらきっちりゲームオーバーにしました。

3.いつでもチュートリアルを終了できる

 チュートリアルは、各部屋に入ると自動で説明が始まり、説明通りの操作ができると次へ進めるようになっています。説明を受けている時以外はプレイヤーが操作できるので、「かったるいなぁ」と思ったら、ポーズメニューから「ステージ終了」を選べば、いつでもチュートリアルを終了できるようになっています。イベントバトル後にも、続けるか、終わるかの選択ができるように移動ポータルを複数用意したりしています。ただ、次へ続く移動ポータルの前に宝箱を置いたりして、さりげなく「続けていくといいことあるよ?」と思わせるように誘導してありますけどね。

 こんな感じでチュートリアルが終わると、一息入れてもらうために晴れてオープニングシーンへ。じっくり鑑賞してもいいし、スキップしてもOK。なんとか、可能な限りストレスなくゲーム本編への流れができたかなぁと。

 しかし、冒頭で行ったチュートリアルは、操作説明のみの簡単なもので、バトルの仕方やらゲームの流れの説明も適宜行っていかないといけません。プレイしながら、イイ感じのタイミングでゲームルールの説明を入れていかなきゃいけないのですが……ま、そのうち思いつくだろうということで、粛々と実装作業を進めていきます。うん、がんばろ。

 

 

 

 

 

Unityアクションゲーム制作記 その31 unityroomアセットキャンペーンへの応募&デジゲー博へ出展してきました!

f:id:hamazakifactory:20171115141011j:plain

BLACK BLOOD BREAKER ver.0 | 無料ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう

 デジゲー博後、思いっきり体調を崩し、ようやく復帰しつつ状態でぽちぽちと久しぶりのブログ更新です。今回も体験版の公開でお世話になったunityroomで、使用したアセットを登録するとバウチャーがもらえる豪気なキャンペーンをやっていることを思い出し、一通り使用しているアセットを登録してみました。雑感ですがアセットを使ってみた時のコメントも入れておきました(購入アセットをどうゲームへ実装したかは、いずれブログネタの1つとしてやりたいなぁ)。

 今回のゲームを作るにあたって、多数のアセットを購入しているわけですが、闇雲にあれもこれも手当たり次第に購入したわけではありません。心がけたのは、ゲーム内でどう使う? これは本当に必要なアセットなのか? を具体的にイメージすることでした。やはり具体的なイメージを持っていないと、購入したっきり使わないとか、アセットの数は多いけどほとんど使わなくて無駄ばかりとなりかねませんからね。

デジゲー博の反省

 さて、もう1ネタの11/12に行われたデジゲー博です。これまで参加した試遊会やイベントとは、比べ物にならないくらいの人と熱気に圧倒されてきました。結論から言えば、「楽しかった。参加してよかった。来年も出したい!」と大満足の結果だったといえます。

 特に21インチのディスプレイを使ってのデモは効果的だったかなぁと。デモを遊んでいる人がいる間も、後ろで足を止めて画面を見ている人がそこそこいたし、垂れ流しのオープニングも目立つた形になったしで、いいことづくめ(帰りの荷物が多くなった以外は…)。手間をかけてPC版をわざわざビルドしたかいがありました。

f:id:hamazakifactory:20171115153320j:plain

 問題があったとすれば、展示スペースが意外に狭かった点ですね。今回1枠(机の1/2スペース)で参加したのですが、これが微妙な広さでした。モニタを置いた残りのスペースにノートPCと試遊できるスマホ×2を置いたのですが、かなりキツキツ。一人試遊しているだけでも余裕はあまりなく、横に2人並ぶとスペースギリギリな状態でした。せっかく遊べるものを用意しても、手に取ってもらう機会を逸していたなぁという感じでした。

 あと、配布物はもったいないことをしたと反省。今回用意したのは、余り物のチラシとネームカードだったのですが、チラシは前回の使いまわしだし、ネームカードはただの名刺だしで、せっかく体験版を置いたunityroomへの導線もなく、ただの紙切れを配っていたも同然でしたね。もったいなかった……。

 多少問題があったにせよ、わざわざスペースを訪ねてくれた人には感謝しかありませんし、たくさんの人に触ってもらえて、しかも感想をいただけたりもして大満足、制作のモチベーションをたくさんいただきました。リリースまであと少し(多分)、頑張るしかない! 

Unityアクションゲーム制作記 その30 デジゲー博Ver ボスラッシュ!

youtu.be

 今回の映像は、Unityエディタからキャプチャしたデジゲー博Verのお試しステージの1つです。以前あったボスラッシュのド派手バージョンって感じです。まあ、デジゲー博Verなんて言ってるけど、テンポのいいステージを見繕い、コンパクトにまとめましただけなんですけどね(現状4ステージ分)。

 制作の手を止めてまで、わざわざ専用Verなんて作る時間がもったいないなーと思い、これまでイベントで展示したり、試遊会で遊んでもらったときには、ほぼ実際のゲームと同じ状態のフリープレイのものを出していました。しかし、限られた時間の中、こちらの見てほしいところ、遊んでほしいところをプレイしてもらうのは難しいという、当たり前のことにいまさら気づき、パッと触れて、パッと終われるゲームプレイの流れと、売りとなるポイント、制作者として遊んでほしいところをすぐ体験してもらえるようなものを用意するようにしたということです。

 ただ、慣れに慣れた人間のセレクトなので、かなり難易度が高い物に……。単純に敵の攻撃を減らしたりするといったパラメータ調整でも対応できなくはないですが、もう1アクション、気持ちよさを加速させる脳汁がドバドバ出るような仕掛けというか調整を入れていきたいなー……あそこをああして、判定をなくすとガンガン戦えるかも……ブツブツブツブツブ…あとでやってみよう。

 イベント専用Verついでに展示のPCでデモ映像だけでなく、パッドを使ってプレイしてもらえるように対応してみました。スマホゲーなので、実機でプレイしてもらえればいいと言えばいいのですが、やはりプレイしている映像がほかの人に見えないのが難点。ふらりと通過した人の目にも入るようにノートPCのモニタでプレイの様子を見せられれば、よりアピールできるんじゃないかという目論みです。

 実装自体は、もともと1タップ操作で遊ぶものをスティック&ボタン操作に変えるだけ、らくしょーと思っていたのですが意外にめんどいものだと実感(根本的な実装方法がダメって話もありますが)。とりあえずスマホ実機でのタッチ操作と、ちょっとだけ操作感覚が違うけど一通り遊べるようにはなったのでヨシとします。

 とにかく無計画、成り行き設計のツケがきついですが、とにかくゲームとして遊べる形へと仕上げるために手を動かすしかありません。年内リリースに向けて……希望は捨てちゃいかんな。うん、がんばろう。

Unityアクションゲーム制作記 その29 Tokyo Indesに参加してきました!

youtu.be

 「プレゼン枠が余ってますよ」という甘い言葉(?)にそそのかされ、申し込んだらプレゼンOKよーんの連絡。まぁ、てけとーに宣伝させてもらえればいいやと軽い気持ちで行ってきましたTokyo Indies。

f:id:hamazakifactory:20170920230526j:plain

 早めに会場に着いて、まばらな様子に少し安心していたら、あれよあれよと人が増え、気づけば店内ぎっちりと人人人で埋め尽くされることに……TGS直前でいつもより多めに集まったということなんだけど、集まりすぎじゃね? 主催の方に「プレゼン、トップバッターなので」と言われるわ、さらにプレゼン前、会場に来ていた〇nityの人に「今回のプレゼン、結構な倍率だったみたいですよ」とプレッシャーをかけられるわで……心の中でちょー後悔してました。

 結果、景気づけに1杯呷って挑んだプレゼンでは、何を話したか全く覚えてないけど、無言で過ごすことにならずになんとか終わらせることができました(用意した映像は冒頭のリンクにあるものです)。

 プレゼンが終わった後は、緊張のあまり変なテンションになってしまい、どっと疲れが出て早々に退散。家に戻って落ち着くと、知り合いの方がいたはずなのにちゃんと会えなかったなぁとか、もう少し、他の方々のゲームを遊びたかったなぁと、反省。

 とはいえ、会場の雰囲気とかいろいろわかったので、次はもうちっと余裕ある気分で参加できそう。今回のゲームが進んだり、新しいものを作ったら持ち込んでみよう。うん。

Unityアクションゲーム制作記 その28 リリースに向けての山積みの宿題

 夏の間、某試遊会に向けてがんばったり、メインマシンをwindows環境に変えたり、ちょっとやる気が折れたりしている間にずいぶんと間が開いてしまった……ということで、久しぶりの更新だけどほぼ泣き言w

 さて、なんか更新する気にならなかった&作業の進みが遅れている原因は、ゲームとしてだいぶ形になってきたとはいえ、細かいところが詰め切れてなかったり、そもそも仕様そのものを考えてないものもあったりして、なかなかゲームとしてリリースできるまでの道筋が見えてなかったことがあります。

 「個人でやってるんだから、適当に思いついたことをまとめてけばなんとかなるっしょー」と進めてきたものの、プロジェクト自体がお気楽対応ができる大きさを超えていることもあり(個人の力量不足だけど)、ここにきてようやくタスクリストというか、リリースまでになにをすべきかを洗い出して優先度を付け、少しは計画的に事を運ばなければ終わらないと気付くハメに……。

f:id:hamazakifactory:20170909094805j:plain

 ということで、ざっと洗い出してみると……多いなぁ。これでも書き出したのは、基本的な体裁を整えるために必要なことだけ(それも気付いていない抜けがあるはず)。さらに演出などの細かいところのクオリティアップまで含めると、考えたくないくらいの作業が残ってると気付かされます。でも、やらないと終わらない。

 10月7日には、名古ゲ部主催の試遊会(https://nagogebu.connpass.com/event/65085/)、11月にはデジゲー博(受かれば)と締め切りだけは設定したので、そこに合わせて粛々と進めていこう。うん、がんばる。

Unityアクションゲーム制作記 その27 アイテム・合成メニューの作成とゲームの流れを整理する

youtu.be

 延々と続くUI作業……ようやく目標の一つとしていた、アイテム管理と合成関連のメニューの骨組みが出来てきました(今回の映像です)。システム自体はシンプルですが、なにしろ基本的になりゆきで進めているため、作り散らかしていたシステムの改修にも時間を取られて、かなり時間がかかってしまいました。これで、いろいろなステージで敵を倒し、アイテムを集めて強化したりしながら、さらに強い敵と戦っていく、という基本的な流れがようやく見えてきました;

 しかし、いろいろとごてごて追加したせいで、初めて触るユーザーにはきちんと説明なりしないとゲームの流れ、進め方がわかりにくくなってきているのは事実。後々作らなければならないチュートリアルや、ナビゲーションメッセージのために、ゲームの内容を今一度、整理してみることにしました。 

ゲーム全体の流れ

 現状、搭載予定のゲームモードは2つ。

1)タワーモード

 ダンジョン内を探索して最終エリアにいるボス敵を倒せばクリア。

 複数の部屋で構成されているエリアが、いくつか集まったダンジョン(タワー)を探索していく。

2)アリーナモード

 間断なく襲いかかってくる敵をひたすら倒し、最後に登場するボス敵を倒すとクリア。フィールドは1つの部屋のみ。 

プレイヤーの成長

1)メインレベル

 敵を倒すと得られるSPによって勝手に上がるようになっている。

 レベルが上がると、攻撃力と生命力がアップしていく。

2)武器・防具レベル

 武器・防具工房などで、SPを使いレベルを上昇できる。

 ただし、武器・防具ごとにグレードが設定されていて、グレードによって強化できる上限のレベルが決まっている。

 強化上限は、合成工房で装備再生を行うことでアップすることができる。

f:id:hamazakifactory:20170716010824j:plain

武器・防具の入手

 どのグレードの武器・防具が入手出来るかは、基本的にランダムとする。入手出来るタイミングは、以下の3つ(1のみ実装済み)。

1)ボス敵を倒す

 ボス敵を倒した後に入手出来る報酬アイテムとして入手。一番ベーシックな入手手段とする。

2)特定の宝箱から入手

 フィールドに置かれた宝箱から入手。ただ、フラグ管理をしたくなくなったらボツにするかも。

3)ログインボーナスなどイベントで入手

 実装予定? 特別な報酬として用意。

 ボーナス的に入手出来るSPコインを使って、装備ガチャを回すとかもありかも。

武器・防具工房

 いまのところ出来ることは、レベルを上げ下げすることのみ。

 これは、合成工房でも可能なので、統合してしまった方がいい? 要検討。

f:id:hamazakifactory:20170716005053j:plain

武器・防具の合成工房

 より強い敵に対応するために必要な作業。高レベルになればなるほど重要性が増すようにする。いまのところ、グレードそのものを上げる手段は用意していない。高いグレードの武器を使うためには、ドロップ運が必要となっている。

1)武器・防具の再生

 武器・防具を再生することで、強化上限レベルを上げることが可能。

 再生すると武器・防具のレベルは1へと戻る。

 武器のレベル上げ>再生>武器のレベル上げ…のループでどんどん強くしていく。

 強化上限を上げるためには、武器・防具のグレードに応じた装備結晶が必要。

f:id:hamazakifactory:20170716004534j:plain

 2)武器・防具の結晶化

 武器・防具の再生に必要なアイテム。

 ゲーム中の宝箱からの入手の他に、上限まで強化された武器・防具を装備結晶へと変化できるようにして、不要な武器・防具の消化手段としても機能させる。

f:id:hamazakifactory:20170716004701j:plain

3)追加効果合成 (実装予定)

 2つの装備を使って合成することで、それぞれの武器に追加効果がランダムに付与される。

・追加効果

 回復効果アップ、ダメージ減など、ゲーム中に自動発動する特別効果。

 武器・防具の入手時にランダムで付与される。

 …ようにしたい。

 

 企画書というかネタ出しのメモをちょいちょいとまとめたため、いきなり文体変わってますが、まぁ直すのもめんどいのでほっておきます。あとは、消費系のアイテムを入手出来るアイテムショップ、装備やアイテムを入手出来るガチャっぽい要素、アリーナモードの攻略進度を競うようなランキングあたりを入れておきたいところです。

 あくまで希望ってところで、どこまでできるか改めて考えなきゃだ。ちょっと疲れてきたけど、とりあえず前へ進めるっきゃない、うん。