UnityAdventCalendar2018はじめにこんにちは!Unityエンジニアの佐藤です。この記事はカヤックUnityアドベントカレンダー2018の4日目の記事になります。Japan」の開発についてお話します。Japan」は、弊社のソーシャルゲーム事業部の「天下一企画会」という制度から生まれたゲームです。Japanは手軽にスピード感と高揚感を体験できるワンタップアクションゲームです。デザイナーサウンドアーティストの5人です。製品版の制作は1ヶ月で行いました。技術的なコンセプト全世界での配信を想定しているので、低スペックな端末でも動作するように短期間で確実に開発を進めるために、シンプルな構造や設計を意識するアーティストがUnityで作業・確認をしやすいようにということを念頭に置きました。Japan」は町並みを楽しむゲームです。キャラが進むにつれて、「背景オブジェクトを配置する・後方で映らなくなった背景オブジェクトを消す」という実装をしています。その際に、Instantiate関数やDestroy関数を用いるとCPU処理に負荷がかかりカクつく原因になり、ゲームの体験を損ねてしまいます。上の図のようにカメラから描画されなくなった街の3DモデルをDestoryせず、前方へ再配置し直すという仕組みにしています。上の図のようにキャラが進むにあわせて、非表示化と配置(再利用)を逐次実行しています。Japanではタイトル画面・ゲームプレイ画面・リザルト画面・スキン一覧画面の4つのシーンでゲームを構成しています。1つのシーンファイルでも作れそうなコンパクトなゲームですが、シーンを分割することで機能の切り分けがしやすい機能の確認を単独でできる複数人で作業した時に変更がぶつからないといったことを実現する狙いがあります。加えて、アプリ起動時に全てシーンをロードし、シームレスに遊べるように努めました。Japan」の総メモリ使用量が約60MBだったため採用できた...という側面もあります。作ったものを確認して調整するサイクルを早くするために、各シーンは単体でエディタ再生しても動作するようにしました。独自のタイムスケールこのゲームには「スーパースロー」という機能が入っています。長押しをするとキャラの移動速度がスローになって着地点が狙いやすくなる...というものです。UnityにはTime.timeScaleというゲーム全体のスピードを調整する機能がありますが、今回は使いませんでした。「キャラの移動やモーションだけスローにして、UIは通常のスピードで動かす」といったように要素毎に調整できる方が柔軟に対応できると考えたためです。Japan」ではTime.timeScaleは使用せず、独自のtimeScaleを定義し、アニメーションインスタンス(DOTween)や、Animator、パーティクルなどスーパースローを適用したい要素に対して同期させる処理を書きました。);}アーティストとの連携アーティストが自ら作ったアートをゲームに組み込んで確認できるようにいくつか工夫をしました。「Header属性でアートの反映方法を書いておく」というものです。Header属性はシリアライズ変数に定義することにより、UnityのInspectorビューに任意のテキストを表示することができます。Inspectrビューでの変数の説明に用いられます。GameSceneを再生するとゲームに登場する")]やや力技な感じですが、プログラマは別途wiki等を用意せずに説明が書けるので手軽かと思います。ScriptableObjectを用いてアーティストが簡単にアートを設定できるようにしました。特定の条件を満たした端末(FPSが一定数を連続で下回り続けた場合など)では、解像度を調整して描画負荷を軽減するという手法をとりました。Japan」は作られました。ハイパーカジュアルゲームはUnityと相性が良く、既存の機能を適切に使うだけでも良いゲームが作れます。Japan」をUnityで1ヶ月で作った話Tweet関連記事2019-12-27アセット参照関係を全部書き出すこんにちは。今日は「あるアセットはどのアセ...2019-12-13Unityで80年代風を表現してみる80年代風作例。ユニティちゃんモデル及びシェーダーを使ってい...2019-10-07UnityEditorからスマホに直転送して確認したいこんにちは。〜懐かしのパレット〜こんにちは。絶対に真似してはいけない。(1)月別アーカイブ検索スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。