投稿記事

προφε 2021/10/31 23:08

きょだいむすめしみゅれーたv2.0.3リリース

お久しぶりです。youtubeの方では少し前に動画で予告していましたが『きょだいむすめしみゅれーたv2.0.3』をリリースします。



GTS_Simulator_Alpha_20211031.zip (363.89MB)

ダウンロード


なお説明動画もリリースするつもりでしたが見事に間に合いませんでした(;'∀')。今後のロードマップと合わせて来週には再び記事にするつもりです。ちなみに前回記事(きょだいむすめしみゅれーたv2.0.2)から10ヵ月経っていますが根幹のシステムにはほぼ変更はありません。今回のアップデートは主に『GUI関係の構築』と『キャリブレーションシステム』の導入だけですので目に新しいところはありませんがご了承ください。

ps
例によって突貫工事部分もありますので動作しなかった場合はコメントなどでご報告ください。

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

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

προφε 2021/06/11 19:00

きょだいむすめしみゅれーたVer.1.0をOculusQuest2で動かしてみた(ゲーム配布あり)

どうもです。いや、お久しぶりでしょうか(°▽°)。少し期間が空いてしまいましたが近況の報告をしたいと思います。

https://youtu.be/ggIRICqOkZ8


さて、今回はタイトル通りOculusQuest2用のゲームをビルドしたお話です。一番最初にapkファイルを置いておきます。下記のファイルをインストールした後、SideQuestを通してインストールしてください。注意点としてはゲームの起動には20秒ほどかかるのと、キャリブレーションができていないのでゲームを起動したらOculus側で一旦『正面のリセット』を行ってください。詳細というわけではありませんが手順は記事後半に記してあります。



(まさかのリリースです)

GTS_Simulator_VR.zip (101.37MB)

ダウンロード

…ところで「いや待てよ、お前きょだいむすめしみゅれーたはどうしたんだ」…って顔をしている事でしょう。申し訳ありません。最近まとまった時間が取れなくて製作は中々進んでいません。動画でも書いたのですが、タイトルまで作ったところで製作は一旦中断しています。


(フォントとかフレーム素材とか調達するのって結構大変…)

というのも、最近家に帰ってからの時間がめっぽう無くなってしまいましてね…(Oculus買ったからという訳ではないぞ)。チマチマ作っているとどうしても非効率になってしまうのです。そんなわけでまとまった時間が取れる7月後半までは別の事をしようって思いたったのが先月の中ごろでした。そしてそこで思い付いたのが今回のOculusゲームになります。


遡ること二ヶ月前__。実は4月の初めにVRHMDの乗り換えを行いました。今まではOculusRiftを使っていたのですがそろそろボロっちくなったということで昨年発売したOculusQuest2を買うことにしたんです。スペックと値段と噂を聞いてほぼ即買いでした。


(ちなみに誕生日プレゼント)

まぁ今更紹介するまでもないでしょうがこのOculusQuest2はスタンドアロンで遊べるVRゲーム機で、つまるところPCがなくてもそのまま遊べるのが売りのVRゲーム機になります。とはいえSoCの性能は当然スマホクラスなのでQuest2単体の性能は決して高くはありません。例えばQuest版のバーチャルキャストはPC版に比べて描写の制約があるなど、モバイルでも動くように工夫が凝らされています。また同じOculusでもPC版のゲームがQuestで遊べなかったりします(まぁVRっつっても根はAndroidだからね)。


ただOculusQuestにはそこを補う機能がありまして。それがOculusLinkと呼ばれるものです。OculusLinkはPCとOculusをUSB3.0で繋ぐことによりPCのVRゲームをQuestでも遊べるようにするオプション機能です。つまり、OculusQuest2はスタンドアロン型のVRHMDでありながらもケーブル接続をすることによって『ガジェット型VRHMD』にもなるというゲーム機というわけです。おまけに実は4月の終わりからは更に進化したOculusAirLinkと呼ばれるものも追加されて、既にPCとOculusは無線で繋がっており…いわば夢のケーブルレスVRHMDと化しているのが現状なのです!もちろんセンサーも不要!母艦の後ろに何本もケーブルをぶっさしていた時代は終わったわけですね。しかもそれがたったの4万円じゃないですか。こりゃ買って損はないですねw。


まぁ興奮気味に書いてしまいましたが、とにかくすごいって事ですw。ただOculusとPCを無線ということは当然遅延関係を気にすることでしょう。正直に言えば遅延は0.1秒前後発生しています(120FPSだと10フレーム前後かな?)。個人的な感想で言うと、OculusAirLinkに接続した状態でワイヤレスイヤホンをつけたら違和感があってゲームはできません(Aptxが解禁?されたらわからないけど)。しかし本体側のステレオミニプラグで接続していれば音ゲーじゃない限り十分遊べるものでした(H3VR程度の発砲音なら全く問題なし)。ちなみにPCとOculusは現状『200Mbps』で接続できるので(でしかできないので)、別段10GEのLAN環境などを構築する必要はなく、ルーターも11acならばOculusQuest2が内蔵しているアンテナ分(2本)があれば十分そうです。ただしルーターの置き場所は重要で、Oculus公式によれば同じ部屋で高さ1mの場所に置くのが最適みたいですね(部屋がルーターから遠い場所にある人は部屋にAPを設置するのがいいと思います)。


__話を戻します。


去年チラッとYoutubeの方でVRゲームの動画をあげたのですが、実は今回のゲームはそれをOculusQuest版に移植したものになります。
https://youtu.be/dCSPfKy8_Ms
そうです、つまり今回のゲームは『きょだいむすめしみゅれーたーVer1』のVR版になります。まぁそんなに早くゲームを作れないしね。というか、そもそも正直に言えばここまでトントン拍子に上手くいくとは思っておらず、リリースの予定も完全にありませんでした。


移植にあたっては二つのハードルがありました。一つは『Unity側のバージョンアップ』で、GTSしみゅれーたはUnity2019.3fで作っていましたが、Questのゲームを作るには2019.4f以上にする必要がありました。こういうのってなるべくバージョンアップってしたくないんですよね(動作しなくなるから)。最初はUnity2021でやってみたんですが…案の定エラー祭りでしたw。次はUnity2020…これもダメ(Editor関係が全部ダメになっちゃうみたいです)。で、最後に2019.4fでやったら上手くいったというわけです。まぁビルド項目を出るようにしたというだけですかね。そんなこんなでバージョン問題はクリアしました。


二つ目はGTSしみゅれーたが『OculusQuest2』の性能で動くかどうかの問題でした。あれだけのオブジェクトがあるのだから無理だろうなー…と思っていましたが思いのほか動いてしまいました(マジかよ…。)。むろんビルを一斉に爆破すると重くなりますが、通常時なら70フレーム前後は出ている気はしますね(正確に測ってはいません)。ちなみにQuest2の最低フレームレート数は72Hzです。今回のゲームはまだ移植しただけなので最適化はしていません。なので改良次第では十分快適に遊べるレベルまで持っていけるかもしれませんね。ということで、案外コチラも大丈夫でした。


…と、こんな具合に二つの課題は思いのほか簡単にクリアしてしまいまして。構えていたよりもあっけなかったです。実は最後にリリースの問題もあったですが、そこもSideQuestを使用すれば問題ありませんでした。


まぁこんな感じに上手く出来た(?)ので今回記事にしたという訳です。上記で書いたように、現状は移植しただけでなので未完成な部分が多いです。例えばキャリブレーションができていなかったり、コントローラーも不十分という事が挙げられますね。万年雰囲気ゲーで終わってるのですが…まぁ赦してください。そんなわけで今後の改良については暇と反応を見て行うつもりです。


さて、簡単にインストール方法について紹介しておこうと思います。現在OculusQuest2にゲームを入れる方法は三種類ほどありますが、配布のしやすさを考慮して今回は『SideQuest』というものを使ってインストール行います。SideQuestはOculus公式のものではありませんが、世の中に出回っているサードパーティ製のアプリを入れるには最も適した(?)導入方法と言えるものです。

なぜSideQuestを使用するのかというと、Oculus公式ストアは個人開発者にはハードルが高いことが理由だったりします。確かに最近は審査が緩くなったOculus公式のAppLabというものも出たのですが、それでも審査のハードルはまだ結構高そうです(あと時間もかかるみたい)。他にもデリケートな問題なのですが、こういうゲームだとレーティングの問題も発生する気がしまして…。そんなわけでこれらを考慮した結果、SideQuestが一番だと判断したわけです。ただ非公式なのでインストールは自己責任という事になります。自分のQuestで試しているので大丈夫だとは思いますが、突然Oculusが文鎮化する可能性はゼロではないという事を踏まえてインストールしてください。(←ここ重要)


それでは手順を書いておきたいと思います。まぁ詳しくは下記のネット記事をご覧ください。ここでは書くのはあくまでチェックリストだと思ってください。
(参考元:https://newgadget3mai.com/archives/post-12115.html)



前提・ハード面で用意するもの

Oculus Quest2
PC(android版も出たみたいですがこちらは割愛します)
USB AtoCケーブル

①SideQuestをPCへインストール
②Oculus開発者団体の登録をする
→Oculusで開発者モードを選択できるようにするために必要
③Oculus ADB Drivers 2.0をPCにインストール
→PCでOculusを認識させるためのドライバ
④スマホのOculusアプリから開発者モードを選択
⑤PCとQuestをUSBケーブルで接続
⑥用意したApkファイルをSideQuestにD&Dする
⑦OculusQuestのアプリ一覧から「提供元不明アプリ」を選択する
⑧GiantessGame_2021を選択する
⑨起動まで少し時間がかかるので画面が暗くても20秒ほど気長に待ちましょう
⑩Oculus側で「正面のリセット」を行う。
→キャリブレーションだと思ってください。
⑪アプリ終了は通常のOculusと同じです。


操作説明

移動:左コントローラースティック
巨大:左Yボタン
縮小:左Xボタン

方向転換:右スティック
武器オンオフ:右B


こんな感じでしょうか。未実装な部分は以下の通りです。

「カメラの描写距離の不具合」
→1/1サイズに近づくにつれて近くにあるものが描写されなくなってしまいます。これはスクリプトを作ってないだけなので早めに修正します。

「ライブ映像の切り替え」
→PC版ではライブ映像を取得することは簡単なのですがQuest版ではアプリから確認できるのはどうしてもストリーミング映像になってしまいます。ここの差し替えができるのかは正直わかりません。もう少し調べてみます。ちなみにPC版のリリースはもう少しお待ちください。というのもUnityのプラットフォーム切り替えが凄くめんどくさくてですね…。Quest版がある程度進んでからリリースしたいと思います。

「コントローラー系」
→ジャンプとか射撃武器や物を投げるアクションとか追加してみたいですね。暇があれば追加します。


以上、簡単な説明でした。



最後にこのゲームのネーミングについて。GTSとか巨大娘っていうのはココで書いている分にはいいんですが、一般向けになればどうしてもアウトな気がするんですよね。実際このゲームって純粋に爽快系のゲームとしてもできそうな気がするので今後は名前を変えようかと思っています。…やっぱりアレかな?デモリション・マン(トイレに貝殻があったり車がシュークリームになるやつ)が好きなんでデモリション(demolition:解体)とかにしようかなぁとw。まぁ一般向けに出すかはわからないんですけどね。


それでは今回はこの辺で。

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

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

προφε 2021/02/18 19:00

アンケートに答えてくださった皆様、ありがとうございます。ということでVRMモデルを配布。

どうもです。きょだいむすめしみゅれーたのアンケートに答えてくださった皆様、本当にありがとうございました(*‘∀‘)。おかげさまで今回の集計では、自分では気づかなかった問題点も出てきたのでとても参考になりました。


さて回答結果の公表の有無については明示していなかったので公表するとプライバシーの問題に抵触するかもしれません(まぁ、とくにそんなモンはなかったのですが)。そんなわけで、とりあえず答えられる範囲のものにのみ回答をしておきます。



まずゲームのパフォーマンス性については大多数の人が「普通」と答えていたので、大方問題はないと判断します。逆に言えばもう少し重たい処理でも可能という見方もできるでしょう。現状破壊された建物のテクスチャはショボいのですがこれで改善できそうですねw。まぁもっとも遊んでいただいたステージサイズは見事に「四等分」されていたので、この四つのサイズ選択機能は継続するつもりです。ロード時間長いしね…サクッと遊びたいときは小さいほうが自分も好きだったりします。


次に入力デバイスについては「キーボード・マウス」の方が中心だったので「ゲームパッド」の入力方式については余裕があったら行いたいと思います。ただそんなに難しいことではないので気が向いたらといった感じですね。


次にゲームの方向性について。とくに問題なさそうだったので継続します。ただ実は「マルチプレイが欲しい」という意見が結構ありました。「自分も正しく欲しいな!」…って常々思っていますが、明らかに技術力不足なので現時点では到底不可能です(すまぬ)。PUN2の記事は沢山あるので少しずつ勉強したいと思います。


次はバグなどについて。「巨大化しすぎると奈落に落ちる」という問題なのですが、これは中々難しい課題です。巨大化しすぎると小さなモーションでさえ足場を貫通してしまうのが落下する原因で、早い話動作そのものがネックになっています。解決の方法としては動作が不安定になる200倍以上の場合はキャラクターの制御方式を変える等が考えられるのですが、こちらには暫く手が付けられそうにありません(コライダー制御そのものが問題となるので試行錯誤が必要)。なのでこの問題については現状見送りですね。申し訳ありません。(簡易的な鑑賞モードくらいなら導入できるかも)


また「カメラ制御」についての問題は今回の最大の課題になりました。やっぱりボロが出たかという感じです(._.)。実はカメラはcinemachineとそれを導入以前に作っていた自前のTPSカメラを無理やりくっつけただけなので結構無茶苦茶な制御を行っていたりしました。今回のアンケートを踏まえてここを重点的に修正したいと思います。案外cinemachineじゃなくてもいいかもしれませんね。


最後に興味本位でアンケートに「ゲームの値段」を入れてみたのですが、結構期待してくれていて実は嬉しかったりしました(*'▽')。まぁ自分の欲望優先のゲームなので欲しい素材やツールがあったら大体自前で揃えるんですけど、次回にはちょっとでも選択肢が増やせるようにしたいとは思っていました。ステージを作成するにあたって一番の問題になるのはやはり素材で、今回の街以外にも要素としては「海」「港」「空港」「鉄道」があったら楽しさは増すと思います。…とはいえ、すべてを内包している素材は値段以前に残念ながら存在しませんね( 一一)。確かにCGtraderとか覗いてみればデータとしてはあるのですが、アレをゲームに組み込めるかといえば別問題でしょう。まぁ巨大娘ゲームは必然的にオープンワールドゲームになるのでこういうところの勉強も必要なのだとも感じました。

話がそれてしまいましたが、今回は「フリー版」と「有料版」に分けようかなとは考えていました。もっとも、具体的にどういう住み分けをするかにせよ完成しない限りは何とも言えないので暫しお待ちください。今後ゲームに進展があったら報告していきたいと思います。


それでは今回はこの辺で。アンケートに答えてくださった皆様には重ねて感謝申し上げます。ありがとうございました。


PS

バレンタインデーはとっくに過ぎてしまいましたが、アンケートに答えてくれた感謝を込めてVRMモデルを配布したいと思います。(まぁいつものようにカス子キャラの変換なんですけどね)。前回同様「描写制限なし」「使用許諾不要」「商用自由」「改変OK」「モデルの二次利用OK」です。

VRM_pack.zip (76.14MB)

ダウンロード

今回は新規キャラ(?)を合わせて8体同封しております。BlendShapeProxyには一応デフォルトでついている表情パーツを組み込みました(目線関係は組み込んでません)。以下同封したキャラクターの紹介です。

☆彩子☆



なんどか動画で出てきているキャラ。見た目通り周りからは変質者認定されているw。言うまでもないが名前は「彩子(あやこ)」であり、決して「彩子(サイコ:psycho)」ではないのでお間違え無く。

☆会長☆



某伝説的ゲームのキャラが部長や副部長ならこっちは会長にしようという事で勝手に命名したキャラ。とくに未来人とか未来の技術について研究しているわけではない。

☆警備ちゃん☆



とあるラボの警備員たちをまとめるリーダー。格闘術に長けている。ただ常に入られる侵入者がス〇ークとかル〇ンとかイーサン・ハ〇トとかなので絶対に敗北してしまう不運な娘。

☆プロトカス子(ピンク)☆



モブキャラとして作ったモデル。髪の毛の色を変えれば簡単に増殖できるので今後の暈増しにはうってつけ。ちなみにモブキャラを卒業することを恐れている模様。

☆しっぽちゃん☆



運動神経がいい活発な少女。そのため映画や特撮などでスタントマンとして活躍している。なぜか毎度ヘンテコな作品に呼び出されることを常々不思議に思っているらしい。(ちなみにマテリアル設定を修正しました)

☆横島先生☆



先生と呼ばれているが本当に先生なのかは不明という怪しい人物。漢字表記では「横島」と書かれているが、本当は本人の性格と同じく「邪(ヨコシマ)」であるというのがもっぱらの噂。(なお本ゲームでは表情変更がまだできないためレンズのあるなしで二種類存在します。↓差分)


★おまけ1:オルガ★



サービス終了した某ブラウザゲームのキャラクターをイメージして作成したキャラ。そのキャラはロシア航空隊の祖母とよばれた人物をモデルとして作られた任期のキャラだったのですが…さて誰でしょう。ちなみにオルガとしたのはラテン読みにしたのが理由。

★おまけ2:ニナ★



オルガ同様のゲームから作成したキャラ。口癖は「私の計算では~~」。こっちもモデルはソ連の有名なパイロットから名前を頂戴しているようです。いいキャラでした。

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

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

προφε 2021/01/30 18:32

きょだいむすめしみゅれーたver.2.0.2(アルファ版リリース)

あけましておめでとうございます。今年もよろしくお願いします。(…と言ってももう一月も終わってしまいそうなんですがね。٩( ᐛ )و)


今回はタイトルで題打った通り「きょだいむすめしみゅれーた」のアルファ版についてのお話になります。一応自分が目安にしていたところまで完成しましたので、ひとまずはこれをひと段落として、アルファ版としてリリースしてみました。そんなわけで、今回はYoutubeの方であげた「ゴーストリプレイ機能」の補足や、今後の課題などについて書いていこうかと思います。

きょだいむすめしみゅれーた(アルファ版)ver2.0.2

alpha2021.zip (331.50MB)

ダウンロード

フリーVRMモデル

VRM_Model.zip (9.24MB)

ダウンロード

ファイルを解凍後、「GTS_Alpha」が実行ソフトになります。
本バージョンではお使いのPCのスペックに合わせて四種類のマップを用意しました。
なお、アルファ版になりますのでゲーム画面のヘルプテキストは消せませんのでご了承ください。またSE設定や細かい修正等は済んでいません。こちらもご了承ください。


☆操作方法☆

移動:AWSD
視点移動:マウス操作
ジャンプ:スペース
ダッシュ:左シフト
しゃがむ:左コントロール
ロール:Rボタン
クイックアクション実行:右クリック
クイックアクション選択:マウスホイール(テンキー8or2、アロー←→)


☆アクション内容☆
(*矢印は実行時における派生アクションの有無。格ゲーのような連続技ではなく単発です。)

スケールアップ
スケールダウン

パンチ(←/↑/→)
キック(←/→/ダッシュ時スライダーキック)
フミ潰し(未完成:右クリックを押した後離すと実行)
ロール(←/→)
寝る(実行時左コントロールで寝がえり)

ソードモード(クリック後に移行・解除)
ソードアタック(←/→/↓:ソードアタックは5コンボまであります)
ソードジャンプアタック(ジャンプ中ソードアタック:実用性はあまりないw)
ソードキック
ソードロール


☆レコーダー操作☆

F5:録画開始・停止
F6:巻き戻し
F4:リプレイ再生・停止

F2:リプレイ保存
F1:リプレイ読み込み


☆フリーカメラ操作☆

移動:AWSD
上移動のみ:”「”(レフトブラケット)
下移動のみ:”」”(ライトブラケット)
視点移動:マウス操作
移動速度変更:左シフト
スケールタイムアップ:アロー↑
スケールタイムダウン:アロー↓


☆システム関係☆
シーンリセット:Pボタン
マップ選択:Lボタン
ゲーム終了:エスケープボタン


*現在判明しているバグ
(リプレイ中にタイムスケールを変更したのちゲームに戻るとそれが反映されたままになる)
(ロールアクションの設定ミスで通常時の前方ロールアクションができない)



さて最初に「目安にしていたところまで完成した」と書きましたが、これは

『考えていた機能を全て導入した(実はまだ残ってるけど)』
『できる限りのオブジェクト制作が終わった』

ことを指します。つまるところゲームのコアとなる機能やモノはほぼ実装している状態になるのがこのバージョンになります。


まぁ言ってみればGUIや効果音など細かいところは抜かしてもう完成と言えるのですが…ここまで作ってみてわかったのが「現状、機能を実装しただけで実用面では色々とツメが甘い点」、そして「ゲームの方向性について曖昧になってきた」という問題でした。


以上のことから、とりあえず現状を「ひと段落」とすることで一度自分の考えを真っさらにしようというのが実は今回の趣旨でもあります。そうすることで色々と目に見えなかったものが見えてくるものもあるでしょう。とりわけ建物の破壊演出については手詰まり感を感じています。効果音の種類やタイミング、またスモークなどのエフェクトなど暫く自分でも遊んでみなければ答えが出ないと感じました。


ということで、ウザったいこととは思いますが今回は初回起動時にアルファ版を閉じた際にはGoogleフォームの「アンケート画面」に飛ばされます。バグ報告や要望などがありましたら、今後のために答えていただけたら幸いです。一応こちらにも載せておきます。


アンケート(Googleフォーム)
https://forms.gle/NcxTddSjixnrCBnEA
(*この集計データを今後修正点として反映させます*)





ここからが機能解説になります。…と、まずはその前に未実装の機能について書いておきましょう。アルファ版なので見ての通りGUI関係やSE関連はありあわせの突貫工事で済ましております(苦笑)。その他、実装していない機能は以下の通りになります。


・ロングソードの持ち手微調整機能
・カメラのレンズ調整機能
・キャラクターの表情変更機能
・フリーカメラ中のモーションブラー
・AIM機能(敵がいないので今回はなし)
・SE演出などオーディオ面
・敵AI出現機能


以上が未実装の機能になります。「まだ沢山あるじゃねーか…」いやはや、全くその通りです。ただ、これらの機能はGUIと合わせて機能するものを考えているので後回しにしました。詳細については後ほどお話しします。


さて、それではゴーストリプレイ機能から紹介していきましょう。上で書いた通りGUIは未実装になるのでリプレイ時のGUI描写は経過時間しかありません。見づらいですが画面左下にあるカウンターが録画時間を表す時計で、「左が経過時間」「右が録画時間」になります。カウンターは二桁しかありませんが録画制限はありません。ちなみに録画ファイルは100秒で10MBくらいになります。保存、実行の手順は以下を参照してください。

録画
①F5で録画開始
②録画時にF5で停止
③F6で巻き戻し
④F4で再生
⑤再生中F4でリプレイ終了


保存
F2でファイル保存

ロード
F1でファイルロード


*なお負荷軽減のためにプレイヤー以外のオブジェクトにリプレイ機能は入っていません。またプレイヤーの一部機能はランタイム生成している点もあり、リプレイ後は動作が正常に機能しないものもあります(例:録画時間いっぱいまで行かずにリプレイを終了すると、その時間に入力されていたキー入力がループされてしまう)。そのためリプレイをする際は一度シーンをリセットしてから行うことをお勧めします。また後述しますが、リプレイ時におけるアクション選択はテンキーの8or2、もしくはアロー←→を使うことを推奨します


簡単にリプレイ機能のロジックについて書いておきます。Unityでゴーストリプレイ機能を実装する方法ですが調べてみてもこれはそれほど種類が多いわけではありません。方法としては「プレイヤーの入力を保存する方法」や「モーション自体を保存する方法」等が挙げられますが、自分の場合は前者の方法を採用しております(ランタイム生成キャラでも使えるリプレイ機能を構築する場合はこれしかない?)。この方法で今回使用しているのはEddie Cameron氏がGitHubで公開している「InputVCR」というものを主軸として使わせてもらいました。


この「InputVCR」はプレイヤーの入力を1フレームごとに記録(jsonファイルとして保存されます)し、それを再生することで「プレイヤーの入力を擬似的に再現する」ことが可能になる素晴らしいプログラムでした。おまけに・位置情報・方向・スケールもオブジェクトごと指定して記録することも可能なので、複数キャラでもリプレイが可能になる優れものです(しゅごい)。


ただ位置情報・方向・スケールは保存されると言ってもアニメーションは保存されていないのでリプレイ時にはそれを同期させる必要があります。もっとも「擬似入力に対応したコントローラー」を作れば同期方法は簡単で、Unity側のInputをInputVCRに変更すれば簡単に修正できました。(ちなみに自分はプログラミングが得意ではないのでUnityでは視覚的に把握できるビジュアルスクリプトのPlaymakerをメインとして使っているのですが、ここでもInputVCRは問題なく使用できます)


上の画像はPlaymakerを用いたスクリプトの一つで、一番の根幹であるプレイヤーコントローラーのロジックになります。かなり複雑ですけど視覚的に追えるので問題が把握しやすかったりします。


こちらがInputVCRを用いた入力の一例。InputVCRでは一般的な「Axis」「button」「Key」の入力軸を保存できるので応用は簡単ですね。InputVCRは録画制御を行う「InputVCR Recorder」を指定することで入力が反映されるようになります。

ところでYoutubeやゲーム内の注意書きにも書いたのですが、「プレイヤーの入力を保存する」ことでリプレイ機能を作っている関係上、この機能の最大の弱点でもあるのですが「必ずしも再現率は100%にはならない」問題があります。特に顕著なのは「プレイヤーのアクション選択」でした。


例えば「キック」や「スケール変更」などのアクションを選択するときは利便性を考慮してマウスホイールを使用して選択できるようにしているのですが、このマウスホイールのAxis入力軸は感度の問題でリプレイ時に選択が反映されない場合があります(というかほぼ100%反映できない)。そのため苦肉の策ではありますがアクション選択には複数の軸を使うことで対応しました。それがテンキーの8or2、もしくは「アローRIGHT」「アローLEFT」になります。ちなみに自分の環境ではbutton判定なら問題なく使えました。なので録画をメインで楽しみたいかたは後者をお勧めします。雰囲気的に再現率は90%前後といったところでしょう。また、buttonの入力のみを保存するので録画時のアクションステートと再生時のアクションステートが異なっていると正しく反映されませんのでご注意ください(例:録画時「None」でスタート、再生時「Scale_UP」でスタート。こうするとアクションが一つずれて再生されてしまいます。)


簡単ではありますが、以上がゴーストリプレイ機能の内容になります。また補足ですがリプレイ時のスケールタイム変更はキーボードの「アローUP」「アローDOWN」を使用します(上下ボタン)。スケールタイムは0~2まで変更できるのでリプレイ中には是非使ってみてください。ちなみにこれはグリッチになってしまうのですが、リプレイ中にスケールタイムを変更したままリプレイを終了するとプレイヤー操作時もその速度が反映されてしまいます。今後修正します。。。


それでは最後に今後の展開と未実装機能についての説明です。先ほどあげた未実装機能ですが、すでに形としては出来上がっています。


まずロングソードの持ち手の微調整機能ですが、これはRootmotionのFinalIKのInteractionObjectを使って実装するつもりです(アルファ版でもすでに使用していますが最終的な微調整は手動しかないので後回しにしました。ちなみにアルファ版ではソードモード時にキックをするとInteractionObjectをディアクティブにしていないのでIKが崩れますw)。


次にカメラレンズですが、これはUnity側の機能を入れればいいだけなので大丈夫でしょう。前作同様DoFやFoVの項目を入れるつもりです。


続いてキャラクターの表情変更項目ですが、これもVRMの「VRM Blend Shape Proxy」を変更できるようにすればいいので問題はあまりなさそう‥ですが、アクションに連動させて表情を変えるようにするのか、それとも後付けで自由に変更できるようにするのかで迷っていますね。


カメラ中のモーションブラーはCinamechine側で指定すればすぐに実装できそうです。またプレイヤールック機能も入れられたらと思います。


AIM機能は出来上がっていますが、ボタン関連の操作性に難があるのでとりあえずエイムターゲットを抜かしています。(敵AIがいないのでたぶん機能しません。)


オーディオ関係は種類とタイミングが重要でしょうね。ただちょうどいい感じの効果音がなかなか見当たらないので、何か良いものがありましたら教えてください。


最後に敵AIについては元旦に買ったモデル、クリーチャーのうち1体だけならすでに完成してたりします。ちなみにこんな奴↓


ただ凝ったAIではないのでまだまだ雰囲気だけのものですねー。地球○衛軍みたいにクリーチャーがいっかな〜って思っていたのですが、個人的には戦車とかヘリとかの方が好みのようです。ちなみにテストをかねて20体ほどリプレイ機能を入れてみましたがあっさり動きました。もともとAIの攻撃判定はコライダー制御で行うものが殆どですので、リプレイ時もちゃんと攻撃モーションに移行できました(飛び道具はどうなるかは不明だけど)。ただ手持ちの素材が少ないのがネックですね。

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

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

προφε 2020/12/12 19:00

きょだいむすめしみゅれーたver.2.0.1(コントローラー&カメラ機能テスト用)

どうもです。前回の記事から三ヶ月ほど経ってしまいましたがゲームの進捗状況を報告したいと思います。まずは動画をどうぞ。

https://youtu.be/QLP6iSefh10

Youtubeの動画でも述べましたが前回(ver.2.0.0)からの変更点は以下の通りとなっております。


①プレイヤーコントローラーの変更
②カメラコントローラーの変更
③アクションシステムの変更
④建物が破壊可能


後述しますが、この三ヶ月はマップの作成とシステム系の作成を行っていました。まぁ、見た目はあまり変わっていませんが、中身は多少変わっていると思います。未だに機能テスト段階ですが弄って頂けたら幸いです٩( ᐛ )و


↓↓ダウンロードはコチラから↓↓


きょだいむすめしみゅれーたー/Giantess Simulator(ver2.0.1)

GTS20201212.zip (206.98MB)

ダウンロード

ファイルを解凍後、中にある「Contoroller&Camera_test.exe」が起動アプリになります。注意としては名前が悪かったせいか高頻度でウイルス対策ソフトに引っかかるということですねw。(卑しいソフトかもしれませんが、怪しいソフトではないつもりです。)もちろん、数秒後には問題なしという報告が来ると思うのでご安心を。

なお、使用するキャラクターモデルによっては足音や落下検知など上手く機能しない場合がありますがご了承ください。


また今回は一応VRMモデルを持っていない人向けにモデルを一体同梱しておきました(いないとは思うけど)。カスタム少女から変換したキャラクターです。ちなみに著作権フリー(商用OK、描写制限なし、二次配布可)です。



さて、ここからは簡単ではありますが今回の変更点について説明をしたいと思います。まずは「①プレイヤーコントローラーの変更」について。


前回はVRMインポーターの機能テストがメインでしたのでゲームでは市販のコントローラーをそのまま貼り付けただけのものを使用していましたが、今回からは自分が欲しかった機能(ゲーム中にプレイヤーのサイズ変更を可能にする)をつけるべく新たに作成したコントローラーを使っております。


この「ゲーム中にプレイヤーのサイズ変更をする方法」は大きく分けて二つあります。一つはプレイヤーのスケールを変更する方法(直接的)で、もう一つは周囲のオブジェクトを変更する方法(相対的)です。それぞれメリットデメリットがあります。要約するとこんな感じ。


直接的
・メリット:キャラクターサイズをゲーム中に自由に変更できる。
・デメリット:コントローラーの制御が面倒。

相対的
・メリット:物理挙動やコントローラーの設定が簡単にできる。特定サイズに特化したイメージ。
・デメリット:相対的にサイズ変更する分負荷が高く、キャラクターサイズの変更は基本できない。


…といった感じになりますね。


今までは相対的な方法で行っていました。理由は物理挙動を扱いやすかったためです。‥嘘、ホントはめんどくさかったから(笑)。まぁ、ただやはりゲームプレイ中にサイズ変更させるには現実的に前者を取る方法しかないので、選択はあってないようなもの。ただそうなると既存のコントローラーは全部使えなくなるので結局一から作成することにしたわけです。ポチポチキーボードを押しながら作って行きました。


もっともコントローラーの製作は凝ったものを作らない限りはそれほど難しくはありません。移動量の制御などはrootモーションがあるアニメーションを使用すればほぼスクリプトを書かずに実現できます。幸い使っているアニメーションにはrootモーションがあったのでそのまま流用できました。しかしrootモーションがあるジャンプのアニメーションはTPSコントローラーとの相性があまりよくありません。というのも、rootモーションで移動を処理されてしまうためにジャンプの高さからジャンプ中の移動、ジャンプ後の移動が全て決まっているので自由に設定できないのが理由です。ある程度は自由に飛んだりできる方が都合はいいでしょう。そんなわけでジャンプだけはVector値を弄って制御することにしました。まぁ王道ですね。従って重力もVector値を弄って制御しています。そのためY軸の移動は総じて多少不自然に感じるかもしれません。なかなか難しい。


…ところで、巨大娘作品ではたびたび議論(?)になる問題なのですが、スケールサイズと物理法則(重力)ってどう思いますか?「非現実なんだから何でもいいじゃん」とは思うのですが、ゲームを作っていると度々考えてしまいます。例えば、通常スケールのジャンプが50cmだとして、100倍スケールでジャンプすると難しい話は抜きにして単純計算で50mはジャンプすることになります。50cmの落下時間は0.3秒に対して50mの落下時間は3秒といったところでしょう。つまり動画でも述べましたが、「高く」飛べても「速く」は落ちない、ということです。巨大娘作品では経過時間ははっきりしませんが、高く飛んだら普通は降りてくるのに相当な時間がかかっているハズ。みんなが空を見上げてる時間は長そうですねw。というのはさておき、まぁゲームをやっていて思うのはどれだけでかくなろうともスケールサイズに比例した速度で落ちてくれた方がラクということは言えるでしょう(ただ今回のバージョンでは落下時間は現実寄りにしてあるため落下には時間がかかります)。このようにどこまで物理法則を取るのかは意外と難しい問題なのかもしれませんね。実は相対的方法をとっていたのはこういう物理制御の問題も理由としてありました。


とはいえ、落下速度の変更は計算すれば解決できる問題なので対処は可能です。物理制御関係で一番厄介なのはスケール変更後のボーンの問題だと思われます。Youtubeの動画でも述べましたが、VRMに付いているVRMSpringBoneのスクリプトは意図的に切るように設定しています。これは何かを揺らす機能で使われるものなのですが、スケールサイズを変更すると十中八九ボーンが暴れます。MMDとかでおそらく経験した人はいるでしょうが、スケールを大きくするとスカート部分が暴れ始めます。スクリプト内部の構造がわかっていないので正直お手上げです。まぁ揺らす機能を一から設計できればスケール変更後も機能するものができるかもしれませんが、言うまでもなく私には無理です(無念)。しかし、今回の目的はゲーム中にキャラクターサイズを変更することにあります。なので以前も書いたと思いますが、キャラ演出は多少オミットする方針になりますね。


演出、つまり「見せ方」は難しい問題です。実はよく考えてみればプレイヤーのサイズを変更していようがいまいが、ゲームプレイ中のカメラ映像には変化はありません(そうしてるからだけど)。だとすれば直接的方法をとっても、見てる側には相対的方法のように思えるならキャラ演出を凝る方がいいのでは?というジレンマに陥ってきそうですね( ・∇・)。まぁどちらにも一長一短はあるということでしょう。うん、絵を作ることって非常に難しいですね。


話が長くなってしまいましたが、次は「②カメラコントローラーの変更」についてです。もともとのキャラクターコントローラーはカメラコントローラーとセットで機能するものだったので変更せざるをえませんでした。まぁ大体のキャラクターコントローラーはこんな感じにカメラとセットになっている場合が多いですね。ということで、新規に作るならば機能が多い方がいいと思ったので今回はをUnityの「cinemachine camera」を使用することにしました。


cinemachine cameraはUnityで使えるカメラパッケージの一つで、簡単に説明すると面倒事を「丸投げ」できるカメラだと言えましょう(笑)。このcinemachine cameraにはカメラコライダー(カメラの壁めり込みを防ぐ機能)やシェイプ機能(演出機能)などが簡単に実装できる機能が揃っており、ここら辺のシステムを作る手間が省けます。ただ当然と言えばそうなのですが、普通のゲームは「プレイヤーのサイズを常時好きに変更させる」ことは想定されていないので、ここら辺の制御のみ自作する必要がありました。このcinemachine cameraで使用するバーチャルカメラはスケール変更しても対象との距離は変更できません。なので今回はバーチャルカメラの設定をオーバーライドする必要があります。そんなわけで、プレイヤーのサイズ変更時にはスクリプトからカメラとプレイヤーの距離を逐一変更することでサイズ変更に対応することにしました。しかし恐らくこれは重くなる要因になってしまうので少しでも処理が軽くなるよう現在も考察中です。


また他にも問題がないわけではありません。動画でも述べましたが現状cinemachine cameraの感度が上手く制御できていないのでプレイヤーの移動には癖があります。問題になっているのはカメラが向いている方向(プレイヤーのコンパス的な役割をしている)のLookAtPointに方向転換するとカメラも移動するワケですが、その時のカメラ移動時の方向をコントローラー側が拾ってしまうことが原因でしょう。なのでここを少し無効化できれば多少は改善すると思います。そんなわけでここも今後の課題ですね。カメラについては以上です。


「③アクションシステムの変更」について。今回はクイックアクション的なものを実装しました。前作ではコマンドが多すぎて自分もわからなくなることが多かったので、今回はマウスホイールと右クリックでアクション実行できるようにしております(キーボードからも直接入力はできます)。これならアクションを増やしてもラクにできそうです。また今後はキーボードだけではなくゲームコントローラーでもやりたいなと思っていますので改善していくかもしれません。こんな感じに快適にプレイできるようにしていきたいと思います。


「④建物が破壊可能」について。実は今回の更新に三ヶ月近くかかった理由の大半はコレになりますw。建物は全部で250種類ほどありました(まぁ使っているのは半分だけだろうけど)。自動化しろよって話ですが、結局確認作業は必要なのであまり変わらなかったりします。ちなみに1オブジェクトを作るのには早くても3分はかかりました。破壊可能なオブジェクトにするのに1オブジェクトあたり平均して5分は必要でした(メッシュ生成する時間)。休憩も入れれば1オブジェクトを作るのに合計10分かかるんじゃないですかね。後はお察しください٩( 'ω' )


ところで、完成したオブジェクトを見て感じたことはもう少しエフェクト(パーティクル)が欲しいなというところでした。「地球防衛軍」だったり「進撃の巨人(ゲーム)」を参考にするとやはり煙が重要ですね(いや一番はアニメーションで建物をキレイに崩壊させることなんだが…)。実は煙関係の良さそうなアセットがあったので予算と相談しながら買う時期を調整しています。


こんなところですかね。以上が今回のバージョンの主要な変更点になります。


さて、最後に今後の予定を少し書いておきましょう。実現するかは別として取り入れたい機能が二つほどあります。一つは「リプレイ(ゴースト)機能」です。自分が遊んだ軌跡を自由な視点から観察するにはこれがもってこいだと思います(上から眺めたり、下から眺めたりと)。ただどこの参考サイトでも上がっていますがゴーストを作ると位置補正が難しくなります。とりわけキャラクターのサイズを変更しなければならないこのゲームでやろうとするのはかなり致命的のように思えます(苦笑)。だって位置補正している時にビル壊しちゃいそうだしw。まぁ、できる限り頑張ります。


もう一つは「複数キャラを入れられるようにする」ことです。やるのは簡単だと思います…が、問題は「どう動かすの?」ってことになるでしょう。てっとりばやく「Navmesh」を入れてやるとしてもその先に何ができるのかがイメージが湧きません(DQ的に付いてくだけになりそうw)。つまり、こっちは何をしようか先が見えない状況ですね。


そんなわけで、今回書いた改善点を含めれば完成は来年以降でしょう。毎度のことですが気長にお待ちください。またバグ等がありましたらコメント欄に報告してくれると助かります。


それでは今回(今年?)はこの辺で。


PS

ゲーム内にはちょっとした隠し要素を入れてみました。包帯の娘の近くで右クリックをすると…?是非探してみてくださいw。

ヒント


(制服ちゃん。どこかの公園に潜んでいる。包帯ちゃんを見つけていくと…?)

(包帯ちゃん1。これはすぐ見つかるでしょう。)

(包帯2。少し難しい。橋付近のビルの中庭。)

(包帯3。包帯2の近く。2はこれを目印にしたほうがいい。)

(包帯4。ノーヒントだけど簡単だと思います。)

(包帯5。橋の反対側にいます。方向はビルの日光陰がヒント。)

(包帯6。ビル街の端。外周を走れば気づくかも。)

(包帯7。ちょっと難しい。ビルの隙間に潜んでます。)

(包帯8。無理ゲーw。どこかのビルの中に潜んでいます。見つけた人は暇人認定。)

(本体9。太陽の位置で特定しましょう。__って、どこかのスパイ機関かよ…。)

(包帯10。これは楽勝でしょうね。)

以上になります。なおイースターエッグなし版も一応あります。少しでも動作を軽くしたい場合は下の奴をどうぞ。

GTS20201206.zip (174.38MB)

ダウンロード

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

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

3 4 5 6 7 8 9

記事のタグから探す

月別アーカイブ

記事を検索