投稿記事

VRの記事 (22)

satofumi 2021/02/12 20:00

VR の PV 作成ツール(その 24)

前回の作業からだいぶん日数が経過してしまいましたが再開します。
VR で演じたモーション編集や字幕表示なんかができる、ショートムービーというか プチ PV 作成ツールを作ります。作る理由は「自分でも作ってみたかったから」です。

開発の予定

・モデルは VRM を読み込んで使うようにします。
・まずは動いて利用できるレベルにします。後回しにできるタスクは後回しにします。
・ちょっとずつでいいので開発します。

VRM モデルの読み込み

UniVRM の最新版パッケージをインポートします。
https://github.com/vrm-c/UniVRM/releases
動的な VRM 読み込みを行いたいので、付属サンプルの VRMRuntimeLoaderSample を動かしてみます。読み込むモデルはみんな大好き Alicia Solid ちゃんです。


動いた! やったぜ!

このスクリーンショットとソースコードより、なんやかんやすれば頭を非表示にできるのも良い感じです。

今後の予定

今回はサンプルを動かしただけですが「なにかを行った」という意味では大変よい進捗だと思います。「無理しない」「なんでもいいので着手する」「自分を褒める」を合言葉に今後もやっていこうと思います。

次回の具体的なタスクとしては
・動的ロードしたモデルを VR コントローラで動かすサンプルを作成する。
・現バージョンのアプリに VRM を動的ロードする。
を考えています。がんばります。

次回の更新: 月曜日の 20時

satofumi 2020/12/16 20:00

ツールを最初から動作確認してみる

今回は雑多な機能を実装したり、「体験版リリース」に向けてこのツールの初回起動からの動作を確認したりしています。

今回実装したこと

バーを描画する処理を共通のコードにして、メッセージ表示に適用した


バー同士が重なっているのは後でなんとかします。後は左側に顔や手といった何の操作なのかを示すアイコンを適用すべきですね。

出力の動画ファイルがデスクトップに出力されるようにした

使っている Evereal.VideoCapture クラスの saveFolder にデスクトップのパスを設定するだけでした。
VideoCapture.saveFolder = System.Environment.GetFolderPath(System.Environment.SpecialFolder.DesktopDirectory);

VRM モデルを取り込むための UniVRM をインポートした

今回は Unity Editor 上で UniVRM を用いて VRM ファイルを prefab に変更して取り込みました。いずれ VRM ファイルを動的に読み込んで変更できるようにします。

保存データをクリアして最初から動作させてみた

とりあえずアプリ起動直後の画面がこれです。


気付き
・ツール名をそろそろ決めよう。
・背景はもう少しなんとかしよう。
・「終わる」ボタンは違う色にしよう。

今、このタイトル画面で1番目立っているのが「終わる」なのはなんとかしたいです。

そして、「新しく始める」ボタンを押したのですが、画面が切り替わるまでに 10 秒くらいかかってました。ロードの進捗表示を行わせる必要がありそうです。

そして、ロード直後はこんな画面でした。


気付き
・モデルとミラーとが原点にあって何が描画されているかわからない。
・建物が暗い。
・左上のボタンの何を押せばいいのかわからない。
・新規プロジェクトの開始時にはチュートリアルを開始すべき。

いっそのこと、新規開始であってもデモプロジェクトを読み込ませるべきかもしれません。いきなりモデルとボタンがあるだけの画面を見せられても意味不明ですし、何をしていいのかわからないと思います。

上記を踏まえると、新規プロジェクトのときは
・ボタン一つで動画出力できるデモプロジェクトをロードしておく。
・編集の UI を表示した状態にする。
・チュートリアルとしてヘルプを表示する。
・ヘルプを再表示するためのボタンを追加する。
・各ボタンに Tooltip で説明を行う。
などが行われた状態で開始させたいです。

編集のための UI 実装もまだですが、それ以外にもいっぱい実装すべきことがありますね。

次回の予定

今日の記事を書いているのが当日の 19:56 なのは良くないなと思っています。もう少しコツコツ進めたいです。そして次回ですが、体験版リリースに向けて1つずつ編集 UI を実装していったり、VRM モデルを変更する機能のデモなんかを実装したいです。がんばります。

次回の更新: 金曜日の 20時

satofumi 2020/12/14 20:00

ハンドサインを変更できるようにする

今回は UI 実装を後回しにして、ハンドサインの変更まわりの動作確認をやろうと思います。

ハンドサインの動作デモ

部分的にアニメーションを変える方法を調べたところ、Unity では Animation Layers という仕組みを使うみたいです。
https://docs.unity3d.com/ja/2019.4/Manual/AnimationLayers.html

今回の動作デモでは、右手をパーとチョキとを交互に切り替えさせてみます。
さっそく、右手のみ動かすための Avatar Mask を設定して右手のみ動くように設定し、

パーとチョキとを切り替えるスクリプトを作成して動かしてみた結果がこれです。(手を隠してしまうのでスカートは非表示にしてあります)

右手以外は指定した Idle アニメーションを再生してゆらゆらしつつも、右手はちゃんと別アニメーションになってますね、良いです。

まとめ

今回の進捗はなんか少ないような気もするのですが、今まで使ったことのない機能を試せたので最高だった思います。(趣味開発は心がつらくなると開発を継続できないので、些細な進捗でもこんな風に自分を褒めていこうと思います)

次回は UI 実装の続きをやるか、座っている用のアニメーション作成をしようと思います。がんばります。

次回の更新: 水曜日の 20時

satofumi 2020/12/11 20:00

作りたいと思っているゲームの案とか

寒かったり週末が近づくとコーディングする元気がなくなってしまいます。というわけで今回はコーディングする元気を確保できなかったので「いずれ作りたい」と思っているゲーム案を記述していきます。ゲーム案を考えるのはコーディングより労力が少ないし楽しいので良いです。

VR 格闘ゲーム

人モデルの使い方とか VR コントローラの処理方法がわかったので、VR 格闘ゲームのデモ部分を作って自分で体験してみたいです。私が持っている VR 機器はヘッドセットとコントローラだけなので、主に手で攻撃する系のゲームにします。

考えていること
・パンチで攻撃する
・自分の頭への攻撃をかわす
・相手のパンチを防ぐ
・相手のパンチをさばく
・相手の腕を掴んでひきよせる
・相手の腕を掴んで投げる
・必要に応じて時間の流れをスローにする
・パンチを連打させるよりは正確に打たせたい(連打は疲れるので)

まだおぼろげに考えているだけで、1vs1 なのか 1vs多 なのかとかも未検討です。まずは VR 空間に立たせたモデルにパンチするデモを作りたいです。
相手か自分を女性モデルにして胸部を揺らす件については検討中です。

VR シューター

Zero Caliber VR というゲームを遊んでいて「あ、VR シューターもいいな」と思って作りたくなってしまいました。VR 空間だと対象との距離が離れると思った以上に弾が命中しなくて斬新な気持ちになれたのも良い体験でした。

ただ、このゲームを遊んでいると私は VR 酔いするのがわかったので酔いにくいゲームを作りたいと思います。なので加速度が変化しない「狙撃」とか「一定速で動く何かの上から撃つ or 相手が寄ってくる」というシチュエーションで遊べるデモを作りたいです。

考えていること
・敵はゾンビ
・塔の上から下を歩いているゾンビを狙撃する
・等の上から襲われそうになってる人を撃たずに襲っているゾンビのみ撃つ
・等速移動している馬車に乗っていて、寄ってくるゾンビを撃ちまくる

話は逸れますが、敵をゾンビにするだけで導入のほとんどの説明が省略できるのすごいと思います。良いです。

クエリちゃんのバグ退治の VR 対応

以前に作ったフィールドにユニットを配置するタワーディフェンスゲーム「クエリちゃんのバグ退治」を VR 対応させたいと考えています。


「ユニットを VR コントローラで掴んで配置すべき位置で離す」という処理は VR 向きだと思うのですが、ユニットのアップグレードや攻撃先の建物の指定など、マウス操作で行っていた操作を VR の操作やボタンにどう割り振るかが大変そうで悩ましいです。

考えていること
・VR 版は要素を削って開発コストを減らす(シナリオの削除など)
・ヘルプやメッセージの VR 空間での表示方法を決める
・フィールドとユニットの操作方法を決める
・システム操作のボタン割り振りと操作を決める

VR 格闘や VR シューターは「デモ作成」が目標なので開発コストは低いのですが、ちゃんと最後まで遊べるようにするアプリの開発コストは高いので、このゲームの VR 対応に着手するかは正直悩ましいです。

まとめ

月曜日と水曜日は VR PV 作成ツールの記事を書いていますが、それがリリースできるか開発中断したときに着手したいゲーム案を書いてみました。金曜日の記事はこんな感じでコーディング要素少なめになるかもですが何かしら書いていきたいです。コーディング要素が少ない記事を書くことで「本当はもっと実装した記事を書きたいんだよな、また月曜日にがんばるか」と思えるのは良いです。がんばります。

次回の更新: 月曜日の 20時

satofumi 2020/12/09 20:00

モデルの表情を変更する

今回はモデルの表情変更を実装していきます。

表情変更のデモ作成

とりあえず、笑顔にするアニメーションを作成してスクリプトで制御するデモシーンを作っていきます。モデル付属の目パチ用のアニメーションをコピーして笑顔用のアニメーションに変更しました。

そしてスクリプトで笑顔とデフォルトとを切り替えさせてみたのがこれです。

動作してますね。良いです。

表情変更の設定をプロジェクトに保存するあたり

動画の編集 UI から表情を変更できるようにする必要があるのですが、とりあえずはプロジェクトのセーブファイルに笑顔にするデータを直接編集した上で、データを元に再生するあたりを実装します。

そして、動作したものがこれです。首を傾げながら笑顔になると少し怖いのがわかりました。動作テスト用のモーションは記録し直したいと思います。

さて、今回はこれくらいにします。
週3回の更新はめんどいと思うこともあるのですが定期的に「あぁ、開発しなきゃな」という気分になれるのは良いです。こんな感じで今後も実装していきます。

あと、作っていて「時間の幅の箇所を左クリックしたときのみカーソルラインをそこに移動させる」に機能変更しようかと思いました。こうすると左クリックを他の操作に割り当てられるので。

次回の更新: 金曜日の 20時

« 1 2 3 4 5

月別アーカイブ

限定特典から探す

記事を検索