aodama の紹介

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

キャッスルバーニア反省会(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 を検索すると色々出てきます。ホント助かります。

ドラスティースピアPE2反省会

まさかドラスピPE2の反省会がこんなに遅れるとは…
(元旦から昨日までほぼ休み無しになるとは思わなかった)

そんなわけで

ドラスティースピアPE2反省会(今更なのでダイジェスト版)

になります。

ざっくりですが良かったところ

  • 専用の曲とボイスが入った!(楽曲提供のkazさん及び声優のあおのいさんに感謝!)
  • スキルの実装が間に合った
  • やっぱUnityちゃんシェーダーいいね!

悪かったところ

  • 追加したものの当てづらく存在意義の問われる非誘導弾
  • 常に進行方向しか向けない貧弱なカメラワーク
  • 敵を含む登場キャラ全てがUnityちゃんシェーダーなので描画負荷が高め
  • 単調なステージ構成
  • 曲・効果音・ボイスのボリュームがバラバラ

でしょうか。まぁ急造したゲームシステムは未成熟ですし、ステージ構成はまだまだ見直す必要があります。この辺は今後に期待してください。

今回も技術的に特筆すべき所はありませんが

プロトタイプ(1vs1の対戦タイプ)

PE1(レールシューティング化)

PE2(複数ステージ+演出)

と短期間で色々追加したのもありソースコードがかなりよろしくい状態なので、スクラップ&ビルドの精神で最新のUnityで作り直すつもりです。その際、何か新しい実装方法で出てくれば発表していきたいと思います。Unity 2018 になれば「C# Job System」「ECS」等色々チャレンジ出来そうですし。

Unite 2018のタイミングでUnity 2018 のβが取れるといいんですが、Unityが新しくなる度に使っていたAsset StoreのAssetが対応してくれるか心配になったりも。まさか Shader Forge がサポート終了になるとは…

あ、毎年参加していたUniteですが、今年はスケジュールの都合がつかず不参加です。

ドラスティースピアPE2を公開しました

おまたせしました!
ドラスティースピアPE2を公開しました!

こちらからダウンロードできます

※公開当初はPVを同梱していましたが、現在はPV抜き版に差し替わっています

また、キャラデザの方がLINEスタンプと着せ替えを公開中です。

かわいいキャラで使いやすい日常会話 – LINE スタンプ – LINE STORE
どらすてぃースキン – LINE 着せかえ – LINE STORE

まだゲームは完成していませんが、是非こちらもどうぞ!