VRChatでworldを作った話
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

VRChatでworldを作った話

2019-03-09 21:55
    この話は 普通の人には何てことない普通の事だが 私にとってはドラマだった

    はいどうも、おはこんにちばんわ
    nikuです。
    最近はVRChatハマりすぎてkuniyanて名前のがしっくりくる気がします。すなわち名前なんてただの名前でしかなくて、本質は私という存在なのです。つまり私はみんなのアイドル。

    先日VRChatにて「How To Use VRoid」というワールドをアップロードしました。twitterでたくさんのRTいいねを頂き、多少なり知名度を持ったワールドになってくれたのじゃないかな?って思います。特にVRoidユーザーは気になったんじゃないかなーと作者は期待しています。
    さてまぁしかし、こいつがまぁ、まぁまぁ、本当に大変でした。アップした日は独りで打ち上げ乾杯しようかと思うほどに、この世界が滅んでももう悔いはないと思うほどに、それはもう大変だったのです。
    「そんなに凄いワールドなのか?」
    いえいえそんなこたーありんせん。public化してごめんなさいと思う程度のものですよ。
    いや!自分の作品をそんな卑下していてはいけないな!凄いんだよこれが!すご!・・もうあれが!・・・そう!あれが凄いんだ!あれ・・あの・・なんだ・・・あれなんだよ・・・

    まぁね!とりあえず経験として、凄く面白かったからその話したいなーって思ったのよ。実際に話を聞いてくれる友達がいないとかそんなんじゃないから!いいから聞け!

    きっかけは友人のツイートだった
    いつも初心者を捕まえてはVRChatの使い方や楽しみ方を教えるという初心者狩りを生業としている他人思いの優しい友人がいるのだが、彼がポッとつぶやいた。
    「誰かVRoidの使い方紹介するワールドつくって~」
    確かこんな感じだった。
    仕事から解放されて無職を堪能していたその時の私はおそらくあくびしてちんちんを掻きながらタイムラインを眺めていた所だっただろう。
    そんな私の目に彼のツイートは強いオーラを纏って突き刺さった。
    「なんか面白そうじゃね?」
    そう思った。
    私はその頃アバターをいじったりしているのが楽しくてそればっかりやっていたのだが、実はかなり前に一度ワールド作りを体験してみた事がある。
    ワールドってどうなっているのだろうという疑問から触ってみただけの全く形になっていないテストワールドだった。数か月放置していたらいつの間にか中身が壊れて進めなくなっていたのがまた数か月したらいつの間にか戻っていた。そんなレベルのゴミのようなワールドだ。
    中身はゴミだったけど、作っている間はそれなりに楽しいものであった。
    だからかもしれない。一度真面目にワールド作りに取り組んでみたいという気持ちがあったからこそ私の目に止まったのかもしれない。

    私の脳内スケジュール表によると数日余裕があった。なので彼に伝えた。
    「おれやってみるよ」

    はじまりのplane
    ワールド作りってどこからやるのだろう、全く知らない人はそう思うだろう。何をどこから着手するのか全く解らないのじゃないだろうか?
    まずはunityで何もない空間に板(plane)を置く。それを床とする。
    勿論、壁から入る人もいるだろうし、いきなり箱(cube)からスタートする人もいるかもしれない。
    とにかく言いたいのは真っ新な無の空間に何かの物をテンッて置くのだ。
    これが中々に気持ちいい。ここから始まるのだと気分を高揚させる。
    プログラムを勉強する初歩で定番の「hello world」を表示した時はなんとも思わなかったけれど、unityでこれを行うとその先が楽しみになってワクワクとさせる。

    ちなみに、Blenderとかのモデリングソフトでワールドの形を作っておいてunityに持ってくるって方法もある(というか凄いワールドはだいたいそうだと思う)ので全員最初はここからという訳ではないよ。

    さて次は・・・次は・・・・どうしよう?
    床は置いたけどえ?どうする?どうしよう?
    ワールドの形どうやって決めよう?
    形は床と壁を並べていけば作れるのは解っているのだが、デザインに困った。

    まずVRoidの使い方を紹介するワールドってなんだ。ググればいっぱい記事あるじゃろがい。
    そう、ググればいっぱいある。解りにくいブログがいっぱいいっぱいある。結局どうしたらいいのか解らなくなるやつ。私も最初経験した。
    しかもVRChat上でワールドとして説明を置いたところで、その人が作業する時はVRChatにインしていないのじゃないか?
    画面見ながら作業するってやっぱりブログのがよくないか?
    ググればあるなんていうのは友人だって百も承知だろうに何故ああ言ったのだろう。
    彼の普段を思い出せばそれを想像するのは容易かった。
    おそらく彼が初心者を案内している時に「VRoidって何?」とか「VRoidに興味あるんですけど」とか言われたりしたのだろう。
    しかしVRChatにログインしながらVRChatの世界の中でそれを説明するのが難しかった。それを説明するのが容易くなるワールドが欲しかったんだ。
    私はそう想像した。想像はできた。
    しかしそれでもそのワールドが真に必要なものか、私は納得できないままでいた。
    よく解らんけどワールド作りの勉強って側面が大きいからとりあえずそれで進めていこう。
    そう思うことに落ち着いた。

    雛形作成
    ではVRoidの使い方を説明するってことはたくさんの文章が必要になるだろう。直感的に使う事ができるVRoidStudioだが、解らない人もいるはずだ。透明の画像のチェック柄が透明に見えるかどうかのようなものだ。
    本当に最低限のところを書かなければならない。
    そしてこういう作業には画面のスクリーンショットがあると解りやすい。なので画像も並べよう。
    じゃぁ壁に画像と文章を書いて並べて歩きながら読み進めていく形にしようか。うん、実にVR空間だ。
    せっかくVRChatのワールドなのだからVRChatにアップロードする方法まで書きたいな。でもそれだと壁がめちゃくちゃ長くなっちゃうな。分野ごとに分けて通路にしよう。

    そうして出来た雛形はメインのハブ的な部屋とそこから5本の通路が伸びていて、上から見るとタコ足構造のようなものだった。
    この状態で友人に一度見て貰おうと思ったのだが、あまりにも何もない。これじゃどういう感じになるかイメージしづらいだろう。
    なのでVRoidStudioをインストールしてからどうやって操作してどうやってエクスポートするのかまでの文章と画像を作った。
    実際に私がVRoidStudioを触ってスクリーンショットを撮って矢印とか書き込んで、地味に面倒だったが、こうすればいいだろうを実践している最中なので楽しかった。
    ワールドに壁に板をつけて、板の画像をスクショの画像に替えて、文字はキャンパスという機能を使って壁に書いた。

    そして雛形ワールドをアップロードして友人達に来てもらった。
    「こんな感じにしようと思うんだけどどうかな?」
    「いいんじゃない?でも廊下を行って戻ってくるのが面倒だな」
    「この廊下は切り離して遠い所においてテレポーターで移動するようにしたらいいよ。距離を離すと画面の描画処理する範囲から出て軽くなるから」
    「文章の癖が強い」
    「画像の位置が高くて上向かなきゃいけないから見づらい」
    そういったアドバイスを貰うことができた。

    そして貰えた意見を反映させていく。通路を切り離して部屋にしてワールド空間の中で遠くに置いた。部屋にすることで説明文を一周させて読み進めたら戻ってくるようにした。私の文章の癖の部分(「好きにして」とか)を消した。画像の位置を下げた。

    たくさんの人から意見を貰いたかったから友達を捕まえて呼び込んで意見を貰いながら文章作成作業を進めていった。この間もワールドが少しづつ形になっていくのが楽しくて勢いを持って作業していた。

    作業を進めていく中で、ふと、せっかくメインの部屋があるんだし、メインの部屋を作業部屋にしたらいいんじゃないかなと思った。思ってしまった。これが後に私を苦しめることになる(そのお陰でクオリティが上がったとも言えるが)。
    まず友人達に話を聞いてみた。
    「この部屋を作業部屋にしたいと思ってるんだけどなんか欲しいものとかあるかな?」
    「アバターテストだと・・鏡は当然だよね」
    「おれウェイト確認の為によくダンスワールドで作業してるからダンスがあると嬉しい」
    「ライティングのテストも欲しいな」
    「後ろから見る為に座ったら後ろから見える椅子とか」
    ふむふむと思いながらメモしておいた。

    説明文の描き直し
    説明部屋達がだいぶ出来上がってきた。アバターのアップロード方法も書いたし、その勢いでアップロード後によくあるトラブルの対処法まで書いた。
    こうしておけば初心者だけじゃなくて使っている人たちにとっても見に来る価値があるワールドになるだろう。
    そうして全ての画像と説明文が壁に飾られた。そこまでで予定をはるかにオーバーして一週間以上かかってしまった。
    しかし頑張っただけにワールドの情報量は相当な物だと自負する。ギミックとかは全然無いけど、情報量は半端ないから!
    書き終わった達成感で少し賢者モードになった。
    そしてアップロード。また誰か友人に見てもらおう。
    そして捕まえた友人を案内しながら見て回ったのだが、友人は渋い顔をしていた(VR空間だけど空気で感じた)。

    「kuniyanこんなとこで言葉選んでも仕方ないからハッキリ言うけど、凄く読みにくい。文章のバランスとか言葉とか大きさとかめちゃくちゃ。」

    これには正直泣きそうになった。上司から説教受けている気分だった。
    ここまで頑張って作ったものが否定されたのだ。おれのワールドなんだからおれの好きにしていいだろ!とも思った。
    でも違う。彼が言っているのは忖度していない心から思った感想であって、否定した事で嫌われるかもしれない人間関係の中でハッキリと言った彼はとても勇敢で尊敬に値するし、ハッキリと言ってもらえたことを感謝しなければならない。
    めちゃくちゃ悔しい気持ちは残っているけど否定した彼から吸い取らないと。
    「じゃぁどうしたらいい?文章とかどう書いたらいい?」

    そしてその友人から具体的な改善方法を教えて貰った。
    文字のサイズを替えて段落を作ったり、改行箇所を替えたり、文章の内容というよりも視覚的に読みやすくなるように修正しなければならない事になった。つまり全部修正。
    指が痛くなる程度にキーボードを叩いて書いた文章だったので正直かなり凹んだ。全部読み直して書き直さないとならない、かなり面倒だ。
    作者のおれがいいって思ったんだからもうこのままでもいいんじゃない?文句があるなら見るなのスタンスでもいいんじゃない?
    でも、でもでも、ここでそうして投げ出したらその程度のワールドになるのだろうな。
    その程度のワールドってこんだけ頑張ってたのが無駄になるみたいで嫌だな。

    直そう。

    腰は重いけど直そう。

    また数日かけて文章を直していった。
    数日後、出来上がったものをハッキリ言ってくれた彼に見て貰うと
    「うん!凄くよくなった!凄く読みやすくなったよ!」
    そう言って貰えた。これには嬉しくて涙が・・・とはならなかったんだけど仕事をひとつ乗り越えたような深い安堵のため息が出るような気持ちだった。

    ギミックの実装
    さて、じゃぁ説明のところはできたしメインの部屋を作業部屋として使えるようにしていくか。
    鏡程度のものは簡単なので隙間時間にペッて置いておいた。

    まずライトテストルーム。
    これは暗い部屋で色つきのライトを並べてその光の下でどう見えるのか解るようにしなきゃならない。どうしよう?Directional Lightを暗くすると他の部屋も暗くなっちゃうし。
    友人に相談してみると「TriggerでDirectinal Lightを消せばいけると思う」との情報を得た。
    なるほど、LocalのTriggerにすればその人だけが太陽光OFFになるんだな。これはいける。
    スイッチを置いてTriggerを引かせるのはイケてないと思ったのでテレポーターをTriggerにしてテレポーターをくぐったら自動でライトをOFFにするようにした。うん、イケてる。
    あとはスポットライトを並べて鏡を置いて・・・うん?
    鏡に映った自分が暗くなっていない。ああ、そうか、鏡で見るとそういうデータが反映されないのか。
    だったらビデオカメラとそれを映す画面を置こう。ビデオカメラだと他の人が見ている映像と同じように見たものを表示しているから鏡とは違って変に処理されたりしない。
    しかもビデオカメラならカメラの位置を変えられるので後ろから見た姿なども見ることができる。よし、これでいこう。

    次にダンスか。ダンスはどうやるのだろう。

    ググった。見付からない。

    ググった。見付からない。

    ググった。やりたいことと違うけどかすっているものがあった。
    それを隅から隅まで読んで内容を理解する。
    なるほどね、VRCの椅子にはanimationをしこむ事ができて、座った時の姿勢をそれにする事ができるのか。そしてそこにダンスのanimationを入れたら座った人を踊らせることができるんだな。
    スタートボタンを押したらobjectと椅子を出してobjectに当たった人は椅子に座るようにしよう。いける気がしてきた。
    そんな作業をしながら友人と駄弁っていたのだが
    「最近ダンス作ってるんだー」
    「あーダンスって曲とかモメたから難しいよ」

    「え”?」

    「一応無償利用OKとか探してやってるんだけど」
    「んー、それでも作者がVRCを想定していないかもしれないし」
    「(そこまで気にするのか)」
    これはまたやっかいな事を聞いてしまった。
    これは悩む。実は昔から大好きなダンス動画があって是非それを躍らせたいなって思っていたのだ。やめておくべきなのだろうか、いやでもあのダンスが踊りたい!ここで諦めたら試合終了ですよ。
    なので曲や振付作者にメールを送ることにした。同人や二次創作では原作に聞くことはダメなことだと言われている。
    わかっている。でも、あの曲であのダンスを躍らせたいんだ!
    そんな熱い気持ちもあって連絡してしまった。
    それぞれの方々は快く許可してくれたので本当によかった。
    そうしてダンスも実装することができた。
    さくっと書いたがダンス実装だけに3週間程度かかった。

    その他ペンやメッシュライト等はそれぞれ一日もかけずに実装できた。

    そう言えば以前友人と駄弁っている時に「英語・韓国語・日本語って書いてあるスイッチみたいなやつを置いておいて、スイッチかと思って押したら持っちゃって翻訳スイッチじゃねーのかよ!っていう意地悪やりたい!」って話をしていた。
    ついでにそれも置いておこう。
    ほいほいとオブジェクトを置いてみる。テストしてみると持ったオブジェクトが謎に湾曲した。なんじゃこりゃ。面白いから残しておこう。
    こうして謎オブジェクトが生まれた。後にみんなから遊び倒される人気のおもちゃとなった。
    原因は床のオブジェクトの子にそのオブジェクトを入れているせいで座標やサイズ情報が親である床の情報に影響されて湾曲してしまうようだ。

    ライト関係
    もうだいぶ出来上がってきたなという所でライトについての話が耳に入った。
    「リアルタイムライトは重くて悪だからライトベイクしなければならない」
    はっ?ベイクって何?焼くの?
    いろんな人に話を聞いてみてやっと解ってきたのが、ワールドの中で動かさないオブジェクトは光の情報を先に設定しておいて影を作っておいた方がログインしている時に処理がいらないから軽くなるということらしい。
    だからライトをベイクするというのか。
    よっしゃ、じゃぁ動かさないobjectをstaticにしてライトをベイクじゃ!
    GPU「まかせろ」
    「たのむわ」
    GPU「・・・」
    「?・・・GPU?」
    GPU「すんませんアニキ、おれはここまでみたいっすわ。おれんことは捨てて先に行ってつかぁさい」
    「何を言ってんだお前は!いっぱい金かけてやっただろう!」
    GPU「アニキにはいっぱい可愛がってもらいやした。だからおれがここで!命をかけてアニキにこうkピーーーーーーーー」
    「GPUーーーーーーーーー!!!!」

    解った事:ベイクする時はできるだけ他の負荷はかけないようにしよう。

    ベイクが終わったワールドを見てみると、そこは闇に堕ちた光の射さない世界であった。
    そんな・・・GPUがあれだけ頑張ったのに・・・。
    光の色やシェーダーの反射等いろいろいじってみるとなんとか見えるようになった。
    でもなんだろう、床のフローリングの茶色が反射して壁も茶色くくすんでいて・・・こう・・・喫煙所みたいな色合いだ。
    あまりにもヤニが酷いので壁とかもろもろ青っぽい色に替えて緩和させた。
    それでも説明画像に反射しているのが少しくすんでいるように見えた。ここまでか。
    友人たちに見てもらったら「え?そーお?そんな気にならないけど」って感じだったのでヨシとしよう。

    ライト関係は難しい。用語も効果もよく解らないし、解説ブログが少ない。

    お洒落改装
    さてさてワールドがほとんど出来上がってきた。
    アップロードして友達を呼びながら回ってみる。
    「いいんじゃない」
    「いいと思うよ」
    ん~そうかなぁ~?

    なんかのっぺりしていると言うか、息苦しい、そう!壁に囲まれているからだ!
    窓!窓が必要なんだ!

    そうして窓をつけると空間の解放感がグッとあがり、天窓もつけることにより更に居心地のよい雰囲気になった。頭の中でビフォーアフターの曲が流れた。
    この勢いで観葉植物なんかも置いちゃおう!いいね!カフェっぽくなってきた!
    じゃぁBGMもジャズにしよう!
    この辺頭がおかしくなっていたのかもの凄い勢いでカフェ化していった。

    public化
    そんなこんな「もういいだろ!」「もうゴールしていいよね!?(威圧」ってぐらいまでワールドが出来上がった。
    最終確認でアップロードしてまた散策する。
    「何かおかしいところないかな?」「何かミスしてないかな?」
    しばらくそうしていたが特に何も無さそうだったのでパブリック化申請することにした。
    申請はちょろちょろっと英語を読んで必要フォームに入力してVRChat公式に送る。
    審査が通ればそのワールドはパブリック化される。
    まぁ、正直蹴られることはないだろうと思っていた。ギミックが少なかったり特に何もないワールドとか蹴られたりしているけど、多少なりワールドとしてのクオリティはできているし大丈夫だろう。

    そしてその翌日、私のワールドは無事パブリック化された。

    一般の人達に公共の場として公開されたのだ。やりきった。
    予定より遥かに時間がかかったけど、形になった。
    これを作る為にVRChatのシステムとかunityのコンポーネントの中身とかたくさん勉強して、その集大成が形としてあるのだ。
    一皮むけたような気持ちである。
    こういうワールド作ったんだよ!ってツイートすると私の過去最高と言えるくらいの反響があった。
    たくさんの人が見にきてくれて感想をつぶやいたりしてくれた。
    とても嬉しかった。

    そして、
    最初にワールドを作ってとつぶやいた友人から

    「作ってくれてありがとう」

    と言われた。
    「いいよいいよ。めちゃくちゃ勉強になったしやってよかった」

    本当にそうだ。めちゃくちゃ勉強になった。
    最初は板を置くだけだったものが、後半は置いたもののコンポーネントの中身の数値ばかりいじっていた。
    この数値がこれの機能を持っているからこれをこうして、こっちのチェックボックスはこういう機能があって、ずっとそういう内容だった。
    この一連の作業は毎日頭をひねって毎日少しづつ進歩ができた。
    辛いこと苦しいことがたくさんあったけど、私のワールドはパブリックなんだという自信と優越感はとても気持ちよい。
    以前ほかのワールドで遊んでいる時に「このワールドパブリックの意味あんのかよ」とか言っている人がいた。うるせえお前程度には解らない難しさがあんだよ。お前作れんのかよやってみろよ。そう思った。
    ワールド作りは難しい。アバター作りより難しいの?とかそういう話じゃなくて単純に難しい。要件を満たすことも難しいし、他人に使ってもらうことをかんがえながらやるのがもっと難しい。
    それが楽しくもあるんだけど。

    みんな、ワールド作りはいいぞ。苦しみを味わえるぞ。
    そしてもしかしたら、ドラマの主人公になったような翻弄され流される充実した日々を送れるのかもしれない。
    一年分の脳のリソースを使い切った気分になれるかもしれない。
    何か案とかこうしたらとか思いついたらやってみてほしい。
    うん?誰か来たようだ。
    「くにや~ん、ワールド見てきたよ~。表記ミスと画像ミス一か所見つけたよ~」

    え”?






    *ver2へのアップデートでリフレクションプローブを導入し、ワールド全体のヤニ感が消え、画質が上がったかのように見やすくなりました。リフレクションプローブ凄いぞ

    広告
    コメントを書く
    コメントをするには、
    ログインして下さい。