グリッド移動処理実装やZenjectなど
散策フェーズ内ユニットのグリッド移動処理などを作成中。
グリッド内の移動は地味に操作性がこだわれそうな場所。
ローグライクゲームやシミュレーションゲームのカーソル移動など、 既存のゲームでどういう動きがシックリきていたかを探りながら確認。
自分の要求仕様はこんな感じ
・1回の移動キー押下で1グリッド移動。
・但し連打は排除。
・n秒間移動キーを長押ししていたら連続グリッド移動。
・長押しを離すと連続移動終了。
この辺りの移動仕様は実に面倒くさい。
UniRxがなければキツい。
そしてDependency InjectionのZenjectを使い始めている。
単純なコンポーネントBinding程度でしか使っていないが、付属しているテストツールが結構良さげ。
ユニットテストに使うかと思います。
フロア配置用エディタ拡張など
散策フェーズをマス目(グリッド)移動の仕様に変えたので、
移動フロア配置用のマスターデータを残したいもの。
これもScriptableObjectで保存・利用したい。
というわけで、Hierarchyで設置したフロア配置についての情報をScriptableObjectに変換するUnityエディタ拡張を作っていた。
これで設置したフロア配置をScriptableObjectとしてエクスポートする。
UXとか微妙な部分もあるが個人利用するもので、エディタ拡張はゲーム本編そのものの開発ではないので程々に。
ScriptableObjectをエクスポート。
いや、配置したフロア用のObjectをPrefabとして保存すれば?
と思われそうだが、座標データ等をScriptableObjectとして変換し持つことで、ユニットを移動する処理の際に楽ができる。
散策フェーズの仕様変更など
クリスマスですが輝夜月ちゃんを摂取しながら開発中。
現在製作中のゲームでは幾つかのフェーズシーンをプレイしていく流れで、そのうちの一つが散策フェーズ。
散策フェーズでプレイヤーを操作して獲得したアイテム・イベント等を別のフェーズのリソースとして利用するイメージ。
プレイヤー操作は当初、3人称視点の自由移動でフィールド内のあちこちを探索してもらう仕様を考えていた。(クロックタワーやDetention風)
しかし、ゲームの肝がそこではないに関わらず、プレイが間延びしてしまう可能性がある点と開発リソースの辛みから、移動や画面仕様を変えることに。
新たな散策フェーズではフィールドがマス目状になり、移動コストの概念を導入。
その画面だけを見るとADVというよりはSLGのように見えるが、色々解決しそうなので良しとしよう。
文字だけで書いても分かり辛いので、近いうちに画面を載せたい。
イベント用マスターデータ管理
拙い手で3Dモデリングをしている傍ら、エディタなコードも書く。
イベント用のマスターデータを外部ファイルから取得してScriptableObjectとして管理する処理とか。
外部データの形式はjsonとかyamlとか考えたが、外部に翻訳を頼んだり等を考慮して昔ながらのcsvにした。(スプレッドシートから吐いてもらう)
イメージはこの記事にあるような管理にしたい・・・
といっても、ほとんど自分くらいしか使わない気もするので、時間をかける所ではない。程々に作る。
他にはこのイベントデータに紐付けた、複数のシナリオデータのような構成も作成予定。
セリフだけではなく、カメラ操作やNPCアクションといったオブジェクト操作も行いたいが、
Unityのお作法的にはどう作ったほうが良いのだろうか。
今のところ、舞台の脚本みたいなテキストデータをScripptableObject化して、
イベント発生時に順番に処理するような方法を考えている。
Shop1
ステージ用素材をつくっています。
Shop in Tokyo. #gamedev pic.twitter.com/qF3aroGgMx
— arket (@arket) 2017年12月11日
かお2
twitterは透過入れないとドット絵が凄い荒れる・・・
ゲームキャラ思案 / Prototype game character. #gamedev #pixelart pic.twitter.com/61BHcPUquq
— arket (@arket) 2017年11月29日
かお1
ゲームキャラ思案中・・ 少尉です。#gamedev #pixelart pic.twitter.com/gGsVIG5L79
— arket (@arket) 2017年11月25日