投稿記事

かゆ 2019/07/12 18:49

キャラクター系のシステム

ということで、システム作りから始めます。

当面は地味なやつが続くと思います。
なお、具体的なスケジュールはちょっと立てられないです。
本業の合間にやるので、進み方は不規則になります。
リリースできたアプリでも年単位はかかっているので、
気長にお付き合いいただけたら幸いです。

キャラクター系の概要

まずはキャラクター系から。
ハコだけの状態で作っていく。

画面上にあって背景でないものはキャラクターである。
キャラクターは1つのGameObjectであり、
基本動作系・キャラクター固有系・攻撃系のcsがアタッチされている。
キャラクター固有系が他を制御する。
固有系には今のところPlayer、Enemyの2種類がある。
マップ上の壊れる岩や、アイテムが拾える場所など、もう何種類か増える。
モンスターのAIなどは固有系に含まれる。

キャラクターは固有系の指示によって、攻撃系を使って、ウエポンを生成する。
ウエポンは1つのGameObjectであり、
ウエポン系のcsがアタッチされていて、当たり判定を持つ。
ウエポンはそれを生成したキャラクターの情報と、
当たり判定に当たったキャラクターの情報を持つ。
生成時と当たり判定時に処理の起点となる。

作ってみたのがこれ。
AIはまだ入っていなくて、キーボードで操作している。

緑がプレイヤー機。
プレイヤーは近接攻撃と遠隔攻撃を持つ。
飛んでいく白いのが遠隔攻撃で、プレイヤーの前に出る白いのが近接攻撃。

赤はモンスターで、とりあえず「索敵」と「体当たり」を作った。
「索敵」は大きな当たり判定を出して、範囲内にいるキャラを取得する。
「体当たり」は取得したキャラの座標まで突っ込む。
プレイヤーと同じ遠隔攻撃・近接攻撃を持つこともできる。

攻撃は全てウエポンであり、
「サーチ」はダメージ処理のないウエポン、
「体当たり」は自分と同じ位置・大きさの当たり判定を持ったウエポンと考える。
ウエポンの処理はそれぞれ独立していて、
順に繰り出すことで戦闘AIが作れる。
例えばこの動画では、Aキーで「索敵」+「体当たり」を順に実行するようにしている。

あとは「掴み」「防御」のウエポンを作れば、
このゲームのモンスターの動きはある程度表現できると思う。
実際、「サーチ」と「体当たり」の組み合わせでいろいろできる。

A:ランダムに1動く
B:距離10の範囲にプレイヤーがいたら、そっちに1近付く
C:距離3の範囲にプレイヤーがいたら、3動いて体当たり

という動きを作って、どちらも1秒に1回判定するようにすれば、
「にじり寄って来て体当たりしてくる」
というAIになる。
「1回体当たりしたら3秒間は動かない」という風にすれば、
いちおう戦闘っぽくなるだろう。

四角に乗っている数字はHP。
今は数が減るだけだけど、0になったら死亡処理が必要だし、
プレイヤーには気力減・ピヨリ・即死処理などの拡張が必要になる。
そのあたりとかレバガチャはもう少し後に作ろうと思ってたけど、
「掴み」との関係もあるし、先に作ってもいいかもしれない。

あと、いま4方向になっちゃってるので8方向対応する。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

かゆ 2019/07/06 18:36

超・大まかな予定

超ざっくりで工程を考える。

まず、今回は絵を後回しにして、システムから作る。
絵から作ると、早い段階から細かいところに目が行ってしまって、
モチベーションを使い果たしがちだから。

画面のイメージを固めておくことも大事だけど、
ドット絵だから、やれば何とかまとまるだろうという安心感がある。
ドットというだけで一応の統一感は出るし、旧版のイメージもある。
安心して後に回す。

どんなシステムが必要か

1.キャラクター系
 モンスターやプレイヤーの挙動を規定する系。
 攻撃手段やダメージ処理、特殊技などを作っていく基盤。
 なるべくいいコードを書く。
 モンスターは、
 「スポーンさせたら、あとは種族に応じて勝手に動く」という形を目指す。

2.アニメーション系
 たぶん難所。素材を作るのではなく仕組み作り。
 Unityにアニメ管理機能があるので、それの使い方を覚えるところから。
 やられアニメでプレイヤーとモンスターをうまく同期できるのか、
 体内描写はどうしたらいいか、あたりを検証しておく。

3.進行管理系
 プレイヤーのライフや残機、アイテム欄、武器欄、
 モンスターのスポーン、ゲームオーバーなどを規定する系。
 レバガチャ演出が挟まるタイミングとかも決めておく。

 このゲームは総合進行役がおらず、
 ライフの状態と、プレイヤーとマップ上のものとの関わりによって
 それぞれの担当者を呼び出す形になる。

4.マップ上のもの系
 落ちてるアイテムとか壊れる岩とかに関わる方法と、
 管理する仕組みを作っておく。
 それに伴って、汎用のメッセージウインドウとかも作り方が決まる。

5.マップ系
 マップ用のエディタを作ることはしない。
 プレイヤーの上に重なるもの以外は一枚絵で作る。
 チップを打ってイラレに並べて作る。
 ぶつかり判定はあとでコライダーを置いていく。
 小さいマップだから可能だろう。
 レイヤー分けとざっくりした仮MAPまで作る。
 あとスクロール表現。

6.音系
 とりあえず鳴るようにしておく。

7.セーブ系
 暗号化とかはしなくていいと思うので、csvで簡単に作れる。
 どちらかというと、何を保存するかを決めておく感じ。

そこまでできたら絵へ

1~7はたぶん重い順に並んでいる。
1,2が試行錯誤多くて大変だろう。
3~5はかけた時間に応じて進むタイプの作業だと思う。
6,7は一日でできる。

ここまでできれば、仮素材で一通り動くようにはなっている。
マップやモンスター種類をfixして、絵作りへ。

テキスト作業はほとんどないと思う。
音は、アニメ作りと並行して入れないといけないだろう。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

かゆ 2019/07/05 19:31

どういうのを作るか

どんな内容にするか。
2Dゼルダ風の見下ろしアクションで行こうと思います。
内容はなるべくミニマムに。

理由は大きく二つあって、
「ドット絵で完結するゲームにしたい」
「フラグ管理の少ないゲームにしたい」
が主な理由になる。

ドット絵で完結するゲームにしたい

旧版はCG集を兼ねるつもりだったけど、
結局最後まで「どのタイミングで絵を入れるか」が曖昧だった。

voreゲーの場合、
マップ上で死んでからCGが改めて始まるのは変だし、
かといって、マップ上で死亡フラグを踏んだら即CGに移行するというのも、
いまいちテンポが変な気がする。

ならいっそ、CGは排除して、
ドットで全部が完結する形にした方がすっきりする。
その代わり、ドットアニメーションはかっちり作って、
そこがメインになるようにする。
CG描く労力をそっちにつぎ込む。

フラグ管理の少ないゲームにしたい

これは、

「マップの中にキャラを放り込んで、あとは勝手に動いてもらう」

というような設計にしたい、という意味。
そういうのがUnity向けだと思うからだ。

ぶつかり判定とかダメージ計算とか、個々のオブジェクトが持つようにして、
各自が状況を判断して動くような形にしたい。

演出的にはオープンワールドというか、
ミニマムな中で自由に動ける感じにしたい。
すると、イメージは2Dゼルダだ。
 

ゼルダかマリオか

近い路線で、マリオ風の2Dアクションにする手もある。

アニメーション的には、多分そっちの方が扱いやすい。
方向が前後2方向だけだから、正面素材とか作らなくて済む。

でも、ゼルダ風で行こうと思う。
そっちの方が元企画に近いので。
やっぱり、元企画の続きを自分で見たい。

元企画の素材を原形にできるのも大きい。
サイズが変わるので、そのまま流用はたぶんできないけど。

あと、マリオ風は名作が既にあって、その影響下で作るので、
似たものになり過ぎる恐れもある。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

かゆ 2019/07/04 19:29

前回の反省

反省会

ウディタで作っていた旧版がなんで完成しなかったか。

旧版では、戦闘がないシンプルなRPGを作ろうとしていた。
子供向けのゲームブックのように、
所持アイテムやフラグ管理だけで勝敗を決めたりストーリーを進めたりするやつ。
戦闘がない分、バランス調整などが要らなくて、速く作れるだろうと思った。

しかし、戦闘がないということは「普通のRPG」から外れることだった。
私のような初心者にとっては、
ウディタはまず「普通のRPG」を作るためのツールであって、
そこから外れたことをするにはテクニックが要る。

戦闘がないということは、voreゲーとしては結局、
「マップ上で戦闘を表現しないといけない」ということを意味していた。
ウディタでそれをやるのは、煩雑かつ管理しづらく、
そのわりに出来は微妙だった。


煩にして雑

そんなわけで、マップやキャラの絵はおおむね出来てたんだけど、
モチベーションが切れて、リリースできる状態には至らなかった。

Unityに移行

その後、仕事(アプリのパーツ作り)でUnityを使うようになって、
自作ゲームを一個リリースした。
内容は全然別のミニゲーム。
そっちも、最初に風呂敷を広げ過ぎて苦労したけど、
内容を切り詰めて何とかまとまった。

その際、UnityのPC用ビルドは思ったより手軽で、
PCゲームを作るのに普通に使えることが分かった。

シンプルゲームなら、ウディタの枠に合わせて作るより、
Unityでシステムから組む方が簡単そうだ。

そう思って、Unityで再始動することにした。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

1 2 »

月別アーカイブ

限定特典から探す

記事を検索