しまふくろうのブログ

ゲーム開発の進捗や考察を書いています。

Dive in2 the PastというローグライクアクションRPGを1年かけて作っています。

自分で勝手にunity1yearと題して、Dive in2 the PastというタイトルでローグライクアクションRPGを作っています。

 

この度unityroomで最初のダンジョンを遊べるように公開しましたので、

ゲームデザインについて少し書きたいと思います。

完全に筆者の考えを書き殴っただけなので、読みづらいと思いますが、誰かの参考になれば幸いです。

実装面はなかなか文章にし辛いため、機会があれば少しずつ。

 

1.コンセプトについて

抽象的なコンセプトから初めて、少しずつ具体化していく方法で、最終的にはアクション要素を強めたローグライクを目指すことにしました。

 

・第一次コンセプト

アーケード的なプレイスタイルで何度も遊べるゲームにしよう。

コアゲーマー向け(自分向け)のデザインにしよう。

 

・第二次コンセプト

League of Legendライクなプレイ感を目指そう。

ヒット&アウェイやコンボによるアクションゲーム要素を強く出そう。

キャラクターやゲームの展開に応じて、適切な装備ビルドを選択するゲームにして、最後のボスを倒すゲームにしよう。

 

・第三次(最終)コンセプト

ガーディアン(クラス)を選ぶと、基礎パラメータとスキルが固定されるようにしよう。

ガーディアンはダンジョン中で変更することはできない。

ダンジョン内では敵を倒すことで装備品を入手することができる。

装備品を売買したり合成したりして、ガーディアンに合ったビルドに近づけていく。

 

2.スキルについて

本作ではガーディアンを選択すると3つの基本スキル+1つのゲージ消費スキルが手に入り、スキルは上下左右のフリックに割り当てられます。

 

ガーディアン毎にスキルは全く異なりますが、基本的な方針として下のような割り当てになるようスキル構成を考えています。

 右:短いクールダウンで連発できる攻撃スキル

 下:シールドなどの防御的なスキル

 左:コンボの要となり、クールダウンが長めのスキル

 上:ゲージを消費する大技

例外はあれど、それぞれのガーディアンでこの構成を共通化させておくことで、どのガーディアンを選択した場合でも操作感に違和感なく導入できると考えています。

  

3.操作方法について

このゲームでは下記の操作方法を基本にしています。

 移動:WASD

 ターゲット:左クリック

 通常攻撃:ターゲットした敵を自動で攻撃

 ダッジロール:Qキー or Eキー

 スキル使用:マウスフリック(4方向)

 

移動をWASDにしている理由は、敵の攻撃を回避することをゲームの主軸に置いた場合、プレイヤーの移動速度が速く、マウスクリック移動ではうまく制御できなかったためです。

 

WASDキーを移動に割り当てると、必然的にスキルや通常攻撃はマウス操作に割り当てられることになります。

仮にWebGLで動作させることを想定すると、右クリックを利用した操作はマウスジェスチャーを誤動作させてしまう可能性が極めて高いため、必然的に左クリックのみに限定されてしまいます。

 

そうするとできる操作は「クリック」「フリック」「溜め押し」くらいに限定されてしまいます。

それぞれ試行錯誤しましたが、溜め押し→リリースの操作感があまり良くなかったため、マウス操作はクリックとフリックのみで操作を完結させることにしました。

代わりにQキーとEキーにダッジロールを割り当てていますが、操作性は良くないです。WebGLにおける操作性の多様化にはまだ課題が多いです。

 

4.ゲーム内リソースについて

ゲーム内でリソースが正しく循環するゲームはいいゲーム(のはず)なので、

本作でももちろんそれを目指します。

 

このゲームではゲーム内リソースとして

 「お金」「経験値」「装備品」

を用いることにしました。

 

それぞれの関係は下記の様な感じです。

・戦闘→「経験値」+「装備品」

・「装備品」→分解→「お金」

・「装備品」→合成→「装備品」

(ただし、武器からは武器しか合成できない。未知の装備品も合成できる)

・「お金」→ショップ→「装備品」

(お金を経由することで防具→武器の変換ができる。

 ただしショップの品揃えは一度入手したことのある装備品に限定される)

 

この関係性の面白いところは、ショップと合成の役割を明確に分けられたところです。

どちらも装備品を入手するためのメカニズムですが、

 ・合成:未知の装備品を手に入れる → ショップへ

・ショップ:

  合成元になる装備品を入手する → 合成へ

  既知の装備品からコアビルドを入手する

という相互作用を表現できたところが気に入っています。

 

6. とりあえずのまとめ

本作はunity1yearと自分の中で銘打って、今年に入ってからちまちまと作成してきたゲームになります。将来的にはPCプラットフォームでどこかに完全版を公開できたらなと思っています。

 

最期に使用しているアセットをまとめて記事の〆とさせていただきます。

 

設定したプロファイルに基づいてダンジョンを自動生成してくれる驚異のアセット。

とっつき安い上に自分でコードを書くことで、各フロアの一部屋だけに階段を設置したりでき、柔軟性も高い。

定価で買う価値のある素晴らしいアセットです。

 

 

Post Processing StackはUnity公式のカメラエフェクトとしてとても有名ですが、Post Processing Stack専用のプロファイル集が売っています。

中には奇抜過ぎて扱い辛いプロファイルもありますが、多くは適用するだけで画面を大いにきれいにしてくれます。

安いのでジュース一本を我慢して買うといいと思います。

 

 言わずと知れたUnityちゃんですが、公式のモデルは結構容量が大きく、WebGLやモバイル向けにビルドすると容量が気になってきます。

このアセットはSD Unityちゃんのモデルを簡素化して容量を削減したものです。簡素化したといっても見た目に遜色はなく、気兼ねなく使えるクオリティと思います。

 

サムライソードを振りかざすアクションアニメーションです。

定価だと少し高いと感じるかもしれませんが、しっかりとゲームらしいアクションをしてくれるのでおすすめです。

 

本作ではトゥーン調のモンスターやアイテムがたくさん使われています。

トゥーン素材は異なる作者の者であっても親和性が高いところが利点です。

逆にデメリットは細かい世界観の演出が苦手なところでしょうか。

 

 ガーディアンのアイコンに利用しています。枠に収めると見栄えがぐっと良くなるため、枠のアセットと合わせて買うといいと思います。

最近のソシャゲから学ぶと、キャラクターの立ち絵、アイコンの良し悪しがキャラクターの人気に直結するため、こだわりポイントですね。

 

 これらのアセットはスキルやアイテムのアイコンに使用しています。

イラストレーションはアセット作者による違いが大きく、画面の雰囲気を統一するのが難しいです。探求の予知は大いにあります。

 

 キャラクターの上に出てくるミニアイコンとして利用しています。

種類も多く、抽象的なので多少本来の意味とは違う使い方をしても、なんとなく意味が伝わるのが利点です。

 とても使い勝手が良いローポリのマップアセットです。

値段の割にボリュームがすごいと思います。

UI全般に使用しています。

UI系のアセットは圧縮せずに使うと容量を圧迫するため、必ず適度に縮小して使うようにしましょう。

トゥーン調のスカイボックスです。

スカイボックスの色に合わせてライティングも調整すると雰囲気がでていい感じです。

UnityちゃんRPG 進捗170930


UnityちゃんRPG 進捗170930

ロングレンジ通常攻撃主体のキャラを実装してみる。

 

 通常攻撃4回毎に通常攻撃が必ずクリティカル(ダメージ2倍)する。

 

という効果を軸に、

 

 敵を罠にかけると次の通常攻撃が必ずクリティカルする。

 クリティカルが発生するタイミングでスキルを使用すると、通常攻撃の代わりにそのスキルがクリティカルする。

 

というバリエーションを考えた。

そうすればプレイング的にはクリティカルゲージを管理してタイミング良くスキルを打つ必要が出てくる。

装備ビルドの面では通常攻撃速度を増加させることに必然性が生まれる。すなわちキャラクターに個性が生まれる。

 

発想の元はLoLのケイトリンというチャンピオン。

unity1weekに参加しました

unity1weekという一週間でゲームを作る企画に参加しました。

その報告。

 f:id:androcoffee:20171120143146p:plain

テーマは「space」だったので、とりあえず宇宙をテーマにしつつ、空間を扱うゲームにしようと決めた。

 

1.テーマの決定

太陽系の惑星を使ってビリヤードをすることに決めた。

ビリヤードはゲームが進むにつれて盤面がすっきりしていくゲームだが、今回は落ちた惑星の種類(色)に応じて盤面に影響を残すことで、逆に複雑さが増大していくことをコンセプトにした。

 

 2.具体的には

登場する星は曜日に合わせて「水星」「火星」「金星」「土星」「月」「木星「太陽」の7つとした。

 

それぞれの効果は

水星:減速

火星:加速

金星:穴を大きく

土星:穴を塞ぐ

月:球を止める(凍らせる)

木星:障害物を設置(木を生やす)

太陽:最後に落とす必要がある

 

というバリエーションを用意した。

このゲームで使えるデザイン空間はかなり狭く

「速度のコントロール」「障害物発生・除去」「穴の変化(大小)」「自機の変化(大小)」

くらいしか有用なデザイン空間は見つけられなかったが、使える空間はフルに使えたと思うのでその点はかなり満足している。

ただ、全体的に見て金星以外の全てがプレイヤーに不利に作用してしまうのは良くなかったと反省。

 やろうと思えばプレイヤーの体力や玉の重さもデザイン空間として使えるが、直観的にわかりずらく余計な複雑さを増すだけかと思ってやめた。

 

完成したゲームはこちら。 

https://twitter.com/hapi_izland/status/932207262562521088:embed#一週間ゲームジャムで作ったゲームを公開しました!カオスなビリヤードです!小宇宙にて乱反射 | 無料ゲーム投稿サイト unityroom #unity1week https://t.co/CE275Olrax]

 

使用したアセットはこちらです。どれも便利で扱いやすい。

シーケンス処理があまりに便利

そのままの大きさと解像度だと大きすぎるので、必ず小さく圧縮して使おう。

フロアのメッシュがちょっとだけでこぼこしているため、光を反射させるとかなりきれいに見えます。

Unityの標準プリミティブ形状にない、ちょっと複雑な形状がたくさん入ったアセット。Blenderを扱える人には不要だが、扱えない人には重宝する。

本作では発生するエリア表現、四隅の落とす穴の表現に利用。

癖がなく扱いやすい。

説明不要のカメラエフェクト。以外と重くならない。

フリーの宇宙アセット。

UnityちゃんRPG進捗 170903

ダメージ表示のポップアップについて試行錯誤。

ダメージ表示はゲームの華と思っているので、こだわらなければならない。

動画の最後のやつがお気に入り。あとはダメージの属性や特性に合わせて動きに変化をつけるのもいいと思う。


UnityちゃんRPG進捗170903

チャージ攻撃を実装

 

現在の操作方法を整理

左クリック:通常攻撃・スキルのターゲットを変更

右クリック:メニューを開く

左フリック:ダッジロール

左長押し:チャージ→離してスキルキャスト

 

これは…複雑じゃな?

そもそもチャージスキルを実装した目的は、

メニューオープンによっていちいち時間が止まるため、

それを介さずにスキルをキャストできるようにしたいことだった。

 

しかしチャージに時間がかかっているのでは意味がない。

 

そもそもメニューを開いたときに時間を止める必要があるのか?

これはプレイヤーに与えられた選択肢の数に依存する。

戦闘中に使えるスキルの数が5つを超える場合時間を止める必要があると考える。(4つまでなら即座に判断できるはず)

 

今は回復ポーションなどのアイテムをすべてごちゃまぜにしているため選択肢の数がその分増えてしまっているが、例えばポーションを体力が減った時に自動使用するようにしておけば、選択肢の数を減らすことができる。

 

アクションRPGとしてゲームを考える場合、そのほうが適正であるような気がする。要再考。

UnityちゃんRPG 進捗170719

装備システムを実装した。

形式は武器・防具・靴・アクセサリーから1つずつ装備を選択して組み合わせる方式とした。

 

現状キャラクターは一人しかいないため、その中でビルドの多様性を出すために、装備によってスキルが変化する仕様にしてみた。

 

具体的には武器では通常攻撃と攻撃スキルが変化し、

防具では防御用のパッシブスキルが一つ手に入り、

靴はダッジロール時に追加効果を付与するような仕様だ。

 

各装備のシナジーによって攻撃的な戦略、アウトファイター的な戦略などが提示できれば良いが、少し難解かも。。

 


UnityちゃんRPG進捗 170719