aodama の紹介

Unity始めました。 ちょっと前から自転車(ロードバイク)に乗り始めました。

キャッスルバーニア反省会(5)

今回はDLカードについてです。

キャッスルバーニアの頒布はDLカードで行いました。
カードはこんな感じです↓

裏面にはシリアルナンバー等を印刷したラベルが貼ってあります。
ラベルはシリアルナンバーを流し込める印刷ソフトを使うと楽です。
(あ、シリアルナンバーとシリアルコードが混在してますが同じモノです)

今回はカード自体は自作してシリアルナンバーの発行のみconca様の「コードオンリープラン」を利用するかたちです。

conca
https://conca.cc/

DLカードを採用した理由は

  • 前日のDVD焼き作業から解放される!
  • ギリギリまで作業できる!
  • 会場への輸送が楽!

です。

特に今回は作業時間の確保が難しかったので、前日(実際はコミケ当日にやってますが)のDVD焼き作業から解放されるのは非常に助かりました。マスターアップ作業はzipにしてサーバーにアップするだけなのでギリギリまで作業出来ます。

あくまで個人的なデメリットは

  • カードサイズが小さい
  • 今回のような体験版を配布するには1枚あたりの単価が割高に感じる
  • (ギリギリまで作業できてしまうw)

ですが、これは頒布内容や数量次第で変わると思います。

今回はカード自体を自作するにあたり、カードも大きくL版にしてポストカード的な意味合いを持たせるようにしました。

ちなみにカード1枚あたりの材料費はだいたいこれぐらいです。

シリアル ¥32 ¥1,598/50個
カード(L版) ¥16
ラベル ¥1.6
¥2.5
印刷 ¥10
合計 ¥62.1

今回使ったL版の用紙はちょっと贅沢に「ピクトリコプロ・セミグロスペーパー Lサイズ」なのでやや価格が高めですが、普通の用紙にすれば¥5/枚ぐらいなので1枚¥50ぐらいに出来ます。

参考までにDVD-R+プラケースだと1枚あたり¥64ぐらいだったので、実は費用的にはあまり変わりませんでした。

最後に、がんばれーるのDLカードも作りDVD-Rメディアと同時頒布を行ったところ、DVD-Rを選ぶ人の方が多かったです。頒布にどちらを使うかはまだまだ難しいところかもしれません。

各ゲームの開発状況について

たまにはキャッスルバーニア以外の話題でもと思い、備忘録を兼ねて開発中の各ゲームの開発状況の報告です。

「ダストシューターズ」はUnity2017.1系に移行していますが、さすがに 5.x 系からの移行なので色々問題が出ています(例えばAsset StoreのAssetの一部はUnityのバージョンアップに追随していないので、使えなくなったAssetの機能は代替or自作で対応等)

同時にルン子さんはUnity標準にToonからUTSに切り替え中です。
技術的なところでは大量に出現させるゴミの処理はECS対応してみたいですね。
あと操作系をゲームパッドメイン(キーボード操作も可)にしてもいいと思っています。今はゲームパッドで遊ぶプレイヤーも多いと思いますし。

「がんばれーる」は5.x系から2018.1に移行中です。
未使用のタンク部品(砲塔・車体)が数多く残っているので、それらを出すためゲームシステムも含めて改修中です。ゲームシステムは従来通りのシューティングでもいいんですが、この際RTSっぽいものに変えてみても面白いかなと思っています。

がんばれーるもUTS移行の予定ですが、キャラカスタマイズの都合(特に色替え)もあるのでまだ検討段階です。

「ドラスティースピア」は2017.2で作り始めたので、今のところ最新のUnityに追随するのはそれほど難しくありません。が、レールシューティングなのでステージデザインが非常にコスト高のため続きの作業が滞っています。

技術的な部分ではレール移動処理を自前パス処理からUnity標準機能のTimeline+Cinemachineに置き換えたいですね。
例えば↓の後半のシューティングゲームのTimelineでの実装方法とか面白そうですし

「キャッスルバーニア」については反省会で書いていますので割愛ということで。

あくまで全体の方針としては

  • 出来るだけ最新のUnityで開発
  • 主役級キャラはUTSに移行
  • イベントやカメラワークはTimeline+Cinemachineに統一
  • ShaderForgeからShaderGraphに移行
  • Aseet Store依存度をちょっと下げる

という感じです。

ただ、それぞれの完成時期については相変わらず未定です…

なにせ↓も完成していませんしorz

キャッスルバーニア反省会(4)

登場キャラクタ紹介です。

キャラクタのシェーダーは基本Unityちゃんシェーダーを使ってます。
(一部Standard Shaderを併用しているメッシュもあります)

※画像はUnityのScene Viewのキャプチャのため、ゲーム画面とは見え方が異なります

【ササリーヌ=NaNa=RB=アストロ】

このゲームの主人公。通称ササ姫、ササ子。
ササとかナナとかアストロとか気になるワードが…

実は夏コミのPOPに説明文が書いてあったりします。

ゲーム中では操作キャラ以外にゲームの説明も兼ねて自らVTuber的なことをやっています。残念ながらしゃべりませんが。

参考までに実装はVTuber用のカメラでRenderTextureに描いてからuGUIで描画です。
なお、ゲーム中にテンキーではない方の[1]~[8]を押すとVTuberササ姫のモーションが切り替わります。デバッグ機能が有効なままリリースしてもうた…

注目すべきは手に持っているモノです。一見ゲームパッドに見えますが、じつは…?

今回揺れモノはUnity-chan SpringBone を採用しました。
(ドラスティースピアの主人公ドラ子はDynamic Boneです)

【ホーリーバーニア】

ササ姫の移動手段であり攻撃手段でもあるスペシャルな兵装。
動力源等全てまだ考えてない不明で、今後明らかになる予定です。

【ゴースト】

今回のやられ役です。よく燃えます。
もっと大量に出してガンガン燃やしたかった…

【サッカーボール&ゴール】

ゲーム開始直後のフリータイム時に置いてあります。ボールはササ姫の体当たりで動かせます。ちゃんとゴール判定を入れてミニゲーム的な感じにしたかったんですが、時間切れで実装ならず。

【???】

悪魔城ドラキュラに出ていそうなアレですが、時間が足りず登場ならず。

ボスの巨大コウモリはドラスティースピアで登場したモデルなので省略。
小コウモリに分裂して移動する予定でしたが、時間が足りず(ry

 

以上、登場キャラクタの紹介でした。
今回も魅力的なキャラに助けられ、まだ未完成なゲームながらも何かしらの可能性を感じられるような内容になったと思っています。

なにせ、これが

これになるんですから!

 

 

キャッスルバーニア反省会(3)

キャッスルバーニアの一番特徴である「バーニアアクション」を支える技術についてです。

バーニアの出力はスティックの倒す量で小・中・大の3段階に切り替わります。

本当はスティックの倒した量でパーティクル自体のエミッション量を制御したかったんですが、ちょっと難しそうだったので3段階用意しました。

そしてパーティクル自体に当たり判定を付けることでバーニアの出力=パーティクル数=攻撃力としています。例えば出力が大のときはこんなコリジョンが発生しています。

ちなみに出力が大のときは中と小、出力が中のときは小のパーティクルが同時に出ています。

パーティクルのコリジョンを有効にするにはParticleSystemのCollisionを有効にし、さらにSend Collision Messageを有効にする必要があります。

これでOnParticleCollisionが入ってくるのでスクリプトで処理するだけです。
キャッスルバーニアではヒット数のみカウントして、実際のヒット処理はUpadteで行っています。イメージとしてはこんな感じです。

void OnParticleCollision(GameObject other)
{
    hitCount++;
}

void Update()
{
    if( hitCount != prevFrameHitCount)
    {
        prevFrameHitCount = hitCount;
        // ヒット処理
    }
}

全てのColliderに対して判定する必要がなければCollisionWithで当たり判定対象のレイヤーを設定できます。

とりあえずParticleSystemを正しく設定すればこのような防火シャッターみたいなのはすぐに作れます。シャッターになる方にもColliderを入れることをお忘れなく!

なおゲーム中ササ姫に炎が当たらないのは炎除けのSphere Colliderが入っているから炎は友達だからです、きっと。

 

OnParticleCollisionは結構前からあったと思いますが使ったのは今回が初めてです。もしOnParticleCollisionが期待動作しなかったらキャッスルバーニアは誕生しなかったかもしれません。

ただ、パーティクルの量を出すとそれなりに処理負荷も高くなりそうですし、パーティクルシステムの仕様に依存するので(動的にエミッション量を変えられないとか?)、今ならECSで独自実装するのも面白いかもしれません。

ちなみに最初は扇形で判定してました。バーニア出力に合わせて半径を変えれば出力に対して当たり判定を取ることもできますが、OnParticleCollisionを使えば見た目と当たり判定も一致しますし遮蔽処理も簡単です。

と、色々書きましたが、キャッスルバーニアはUnityの標準機能に支えられていますw

あ、バーニアでの移動については単にAddForceしているだけなので特に書くことはないかな…

キャッスルバーニア反省会(2)

今回は本当に反省というか解決しないといけないネタです。

同人で作るゲームではできるだけ新しいことにチャレンジするようにしていますが、闇雲にチャレンジすれば当然失敗します。
例えば今回はやたらとEmissionするオブジェクトが多いのでDeferred Renderingに挑戦したんですが、Deferredにするとキャラの描画に問題が。なお普段Deferred Rendering使っていないためノウハウゼロです。

Deferred時は背景の有無で描画結果が変わってしまいます。
(そもそもこれがUnityちゃんシェーダーのマテリアル設定の問題なのかDeferred Renderingの問題なのかもわかっていなかったり…)

もちろんDeferredで描画した方がバッチ数はかなり削減されます。G-Buffer生成や合成負荷は発生しますが、Deferredの方Forwardより+18FPSぐらいになります。
↓はタイトル画面(ほぼゲーム中画面と等価です)のバッチ数になります。

まぁこういう症状はFrame Debuggerで追えばわかるような気がしますが、時間がなければ問題が出ない方を選択するしかないので公開しているゲームはForward Renderingです。そのため描画はそれなりに重いです。

またCPU処理も負荷が高いことをやっているので重いです。CPU処理についてはまた別の機会に書きます。

なおこの描画問題は今も未解決です。解決次第改めて投稿する予定です。

キャッスルバーニア反省会(1)

キャッスルバーニア反省会~
第1回はキャッスルバーニアが完成するまでの流れです。

当初の予定はダストシューターズかドラスティースピアの続きを作るつもりでしたが、今年は元旦から修羅場が続いてしまい、全く時間が捻出できないままコミケまであと1ヶ月という状況になってしまいました。

そのため、急遽2~3週間で作れる何かを考えることに。まぁこれでまたPILOT Editionが増えることになるんですがw

07/09

コミケまであと一ヶ月しかないので、とりあえずなんとか半日時間を捻出してプロトタイプを試作。コンセプトは「ツインスティック操作」「ドリルでど突く」
ちなみに赤いタンクはがんばれーる 2nd のプロジェクトより友情出演!

07/14

ツインスティック操作でど突くのが結構難しいため、一度オートショットによるバルカン+ミサイル攻撃を入れてみる(ミサイルは画面に出てませんね…)
なおキャラはUnityちゃんシェーダー移行中のルン子さんです。

同07/14

やはりショットだと面白みがなかったので、この際ジェット噴射自体で攻撃してみようと試作。これがキャッスルバーニアのベースになってます。

07/24

正式な主人公が入りました。コードネームはササ子(もしくはササ姫)
背景はスウィンぐるんだったりします。
タイトルが「キャッスルバーニア」になったのもこの頃だったかな。

07/25~08/07までは別件の出張+修羅場突入でほぼUnity作業は何も出来ず。

この間に背景モデルが届いたり曲発注(多忙な中、引き受けてくれた kaz さんには毎度感謝!)を行いました。なお作曲にあたりゲームのイメージは「悪魔城ドラキュラ」+「アストロロボササ」と伝えましたw

また、デザイナー自らUnityのTimelineでカットシーンを作るという超ありがたいことがあったんですが諸事情によりゲーム本編に反映できませんでした。PVにあってゲーム本編にない演出はほぼこれです。どうして反映出来なかったのかは別の反省会で。

08/07修羅場終了後、

08/08:フェーズ構成、VTuber機能・効果音追加
08/09:曲到着、PV作成
08/10:デバッグ、マスターアップ(8/10の4:26頃)

のような感じでとりあえずの完成を迎えました。

まだかなり荒削りの状態ですが、気持ちのいいツインスティック操作+魅力的なキャラ&世界観で開発は継続中です。

とりあえず第1回反省会はここまで。第2回に続きます。

キャッスルバーニアPILOT Edition公開しました

C94お疲れ様でした。

今回もEasyGameStationさんのところに置かせてもらいました。

新作といってもまだ開発途中の「キャッスルバーニア」ですが、 以下でC94で頒布したものと同じものを公開しました。

http://aodamatei.sakura.ne.jp/castlevernier/

また、恒例の反省会も近日中に始めたいと思います。

C94は新作「キャッスルバーニア」のPILOT Editionになります

本日のC94で新作「キャッスルバーニア」のPILOT EditionをEasyGameStationさんのところで委託販売して頂きます(場所は1日目 西ら-27a)。


ゲームはこんな感じですが、実際のゲームはここまで作れていません…特にUnityのTimelineで作った演出はゲームに反映できませんでした。この辺については恒例の反省会で詳細(いいわけ)を書く予定でいます。

そして今回はDVDを焼かずDLカードにしました。
これでギリギリまで作業できます!

GEIOが届いた

GEIOが忘れた頃にやって来た!
とりあえず開封&動作確認だけ。

あれ?スマホとGEIOをWi-Fiで接続しようにも接続先のGeio_xxxxxxが見つからない…だと!?

解決策を探していたらKickstarterのコメントで同じ症状で困っている人が質問をしていて、どうやらWi-Fiが見つかるまでGEIO側を再起動するのが当面の回避方法らしい。確かに数回再起動したら見つかった!質問した人&返答してくれた人ありがとう!

https://www.kickstarter.com/projects/1085341127/geio-a-fps-battle-bot-with-visual-recognition/comments

なお電源を入れると目(顔?)が表示され、バトル開始すると本体の数ヶ所が識別カラーで発光します(赤or青)
発光すると元々カッコイイボディがさらにカッコ良くなりますよ!

小気味よく動く頭部の動作は気持ちいいんですが、どうしてもFPVの遅延がそれなりにあるので、FPVのみでバトルするのはちょっとしんどいかも。かといってドローンの5.8GHzのFPVだと免許必要になってしまうし難しいところ…

でも今年に入ってからほぼ暇なしなのでGEIOもMirage Solo同様しばらくお預け状態かな…

Mirage Solo買いました

まだまだ休みなしで身動き取れない状況なのですが、その反動で「Mirage Solo」を買ってしまいました。まだしばらくはお預け状態ですけどね。

購入の決め手は

  • 完全ワイヤレス
  • 外部センサーなし6DoF
  • Chromecast 対応
  • Unityでゲームが作れる

でしょうか。

これはPCVRで感じる「ケーブルが邪魔」「準備が手間」から一気に解放され、まず使用機会が増えると思います。デバイスの起動も速いしね!

もちろんPCVRと違ってスペック固定(Snapdragon 835)なので、ゲームを作る時はスマホVR基準で作らないとです。アオダマテイのゲームを動かすのはちょっとキビシイです(そしてどのゲームも3DoFで十分だったり…)

とりあえず初期不良とかあると怖いので、動作テストとして↓を参考にさせて頂いて「Unity-Chan “Candy Rock Star”」をMirage Soloの6DoF対応で動かすところまではやってみました。元々Androidのビルド環境が入っていたので15分程度の作業でした。

Mirage Solo の6DoF 対応コンテンツをマッハで Build する – ギャップロ
https://www.gaprot.jp/gaprot-x-chogiken/xr/mirage-solo

ただ、ポジショントラッキングの範囲が1.5m程度と制限されているので、周囲の安全を確保した上でEnable safry graphicsのチェックを外して移動無制限にすると外部センサーなし+ワイヤレスの恩恵が!ステージ上をどこでも移動出来ますよ!

とりあえずわからないことはハッシュタグ #MirageSolo で Twitter を検索すると色々出てきます。ホント助かります。