おはようございますまたはこんにちはまたはこんばんは。カイヤンです。
最近梅雨にでも戻ったのかという雨ですね。
さて、先週もブログ更新をすっぽかしましたが、今週になってもなお書くことはございません。
ないわけではないけれど先週は闇が深すぎて怖いので非公開にしてしまった。
タイトルについてなんですが、今後のブログの使い方について:生活日記を書いてもほんとにしょうもないのでやっぱりアレは書きたくなったらくらいにしようと思う。 ちょっとでも何か活動をしたら書くんだけど。
今週は、強いて言えば、Unityの開発環境を構築したことかな? というわけで後半はUnityについて。
背景と目的
先日、サークルの研究報告会がありました。私はそこでRPGの世界について数学的な考察をする発表をしました。 昨年はなかなか好評だった、ドーナツ型になることをちゃんと定式化して証明したという内容でしたが、今年は3次元空間内でなんとかできないかということでした。 というのもここ
にあるようにRPG世界は4次元空間内でなければならないからです。しかし物理演算の実装コストを考えると3次元空間内にはめ込み/埋め込みしておく方が良いはずです。 曲面はいいぞ。 そのうち詳細はサークルのブログにでも書きます。
さて、発表中~後にいただいたマサカリについて。いくつかありましたが、ここでは可視化についてのことを扱います。 何を趣旨に考察と可視化をしていたのかがうまく伝えられていなかったようで、誤解をさせてしまいました。 世界の可視化という意味では、上述した昨年のものを円2つで可視化したもので十分であろうとのことでしたが、 今回は3次元空間内にいれたことで地球っぽいことをやりやすくできるので、そうした場合どうなるかという話でした(まだ詳細を書いていないので意味不明記事になっている)。 そういうわけで新たな可視化を考えようとしていたのですが、議論のさなかでこんなアドバイスをいただきました。
@chijan_titech 趣旨わかりました。さっきの指摘は的外れでしたね。すみません。
— ところたん (@tokoro10g) July 16, 2016
プレイヤーまわりの局所座標で考えるなら、プレイヤーを動かすんじゃなくて3次元の2トーラスをうにょうにょ回せば(輪ゴムを裏返すような感じで)可視化としてはいいかもとか思ったりもしました
諸事情で小生のchijan_titechはカギなうえに最近ほとんどのツイートを消してしまったのですが、このツイートに書いていることが次の可視化ゲーム作成の目標となりそうです。
上の可視化は次のような方法になるでしょう:
- 視点は固定
- 景色が変わっていくことで移動を表現する⇔トーラスを回したりひっくり返す
- 視野をあまり広く取らない(地球上の人間レベル)
- その視野の範囲内では地球同様の物理法則を仮定(3次元内に埋め込んだので法線ベクトルという素晴らしいものが存在)
こうすることで、局所的に地球の上と同じように物理演算ができるわけです。我々は地球の上にいますし、地球岬など丸みを帯びた星の上に居ることを 認識できなくもないのですが、普通にキャッチボールなどするときに地球の丸みは気にしません。 そこで、それくらいの視野であれば、地球上と同様の物理法則を仮定してしまってもいいだろうという塩梅です。
地球上と同様の物理法則ということは、既存の物理エンジンを使うことができるので、実装コストを低く抑えることができます。 これは物理屋(ヤ)の人からいただいたマサカリなのですが、せっかくリーマン計量が入った2次元多様体にできたのだから内在的な量で記述するべしという意見が考えられます。 ただ、それは実装コストも、その前の理論の学習コストもかなり嵩むでしょう。そちらを勉強するのも手ですが、ここでは実装コストを抑えるという趣旨・目的で扱っています。 法線ベクトルの存在は偉大なのでここでは3次元Euclid空間内の曲面であることを最大限利用します。 (というか向き付け可能な2次元リーマン多様体って、曲面になれて第一基本形式がリーマン計量になるんじゃないっけ? 詳しくない)
さて、ようやく本題に戻るわけですが、既存の物理エンジンといえど無数にあります。そこで、計算機弱者でも簡単に物理演算付きの3Dゲーが作れるような エンジン・フレームワークはないかと考えます。最近、インディーゲーム界隈で活発に使われているエンジンがあります。
そう、Unityです。
方法と結果
Unityならある程度学習コストを抑えながら(JavaScriptはカイタコトアルので)、目的の可視化を成し遂げることができるだろうと考えました。 善は急げとモチベの高いうちにさっさとUnityの開発環境を構築します。が、これが意外と手間でした。バーチャルボックスにLinuxMintをいれるくらいのコストでしたね。 少なくともProcessingよりは手間でした。
さて環境が整ったので、早速ハローワールド的に等速直線運動するCubeでも作るかーと思いました。
あれ、どうするんだこれ?
どうやらProcessingとか、もっとレイヤを上げるならツクールやウディタのようにすぐにとりあえず動くものを作ることは難しいみたいです。 幸い、弊サークルにはUnityのプロたちがいるので、サポートはある程度受けられるでしょう。友人は院試で忙しいみたいなので、院試が終わったら聞こうと思っています。 それまではチュートリアルサイトをもっと眺めていますか……。
総括と展望
まとめると
- 可視化は3Dゲームの形に
- Unityは思ったより難しい
展望としては、Unityに早く慣れて工大祭に可視化結果を展示したいなあと。工大祭がダメでも後期研究報告会(リアル学会と被る可能性大)でしゃべれたらいいなあと思っています。
ではでは。