56日目(太平洋時間9月26日) Oculus Connect 6の1日目はOculus Questのハンドトラッキング対応予定の発表で幕開けとなった。昨日も会場が涼しかったことから長袖シャツ+ジャケットを着てきたが、それにもましてホール内は寒く、基調講演が終わるや否やテラ…
55日目(太平洋時間の9月24日) JL002便でHND→SFOに飛び、そこからシャトルでSJC近くのホテルに移動した。Oculus Startメンバーはいくつかのホテルに分散して配置されていたようで、自分のホテルには自分の他に3名がいるのみだった。 Oculus Connect 6会場で事…
54日目 MPIを用いた並列プログラミングと法医学の講義を受けた。並列プログラミングの授業は初回とあってイントロダクションでありさほど書くべきことはない。しいて言えば一般的にTop500ランキングにはLINPACKが用いられるが、メモリアクセスが集中しより実…
53日目 Oculus Go向けのVR作品をなんとかプレイアブルな状態に持っていけた。技術的に新しい発見は残念ながらなかった。 バーチャルマーケット3を見に行き、ネオ渋谷で綺麗なアバター展示に目を奪われたり、工廠の中をドローンで飛び回りNPCのふりをしたり、…
52日目 明日までに完成させるべく作業していた。VRにおけるMVPアーキテクチャのViewを3Dモデル表示ととらえることで、各種データをModelに保持させておき、PresenterがそのデータをViewに渡してViewがInstantiateする構造とした。Viewでは生成したGameObject…
51日目 午前 CoD: MWのベータを昨日の夜からやっていた。Ground WarモードはヘリとIFVが操縦可能でマップも格段に広くなり、スポーンは分隊員または占領エリアから行う、Battlefieldによく似たものだった。上限のLv20に達したのでそこでプレイを終えることに…
50日目 帰宅後から開始。事前の設計通りにModelクラス群を作成し、VRに対応した入力に切り替えた。OVR Physics RaycasterとEvent Triggerの対応もうまくいっているようだった。あとは実際に3Dオブジェクトとのインタラクションイベントを構成していくだけだ…
49日目 帰宅後から開始。UnityのSnaps Prototype素材を使ってOculus Go向けの試作を行った。Android向けのアプリケーションは初めてで、毎度のことながら調べることが多くて時間がかかる。さりとて慣れた環境ばかりでは進歩に乏しいわけで、やはり新しいこと…
48日目 帰宅後から開始。先学期の授業スライドを見て内容を理解するように努めた。昨日の「長い内側ループが高効率」というのは、命令パイプラインのあるプロセッサにおいてループ一周が終わる前に次のループのうち先に実行できる演算を行っておくことによっ…
47日目 午前 学期の始まりが近づいてくると所用が増えてあれこれと時間を奪われてしまう。今日も暑く、夏を思わせる雲が浮いていた。 午後 Ellpackの構造は非常にhuman-friendlyで、値の二次元配列は最も非零要素が多い行に合わせて後の行は末尾ゼロ埋めし、…
46日目 午前 昨日作成したJSON+JavaScriptエクスプレッションによるアニメーションの成果を貼っておく。 使用したJSONとエクスプレッションは以下である。 { "someData": [7, 1, 4, 3, 5, 11, 7, 4, 10] } data = footage("myData.json").sourceData; intTim…
45日目 午前 並列プログラミング入門の例題1から再開。NxN密行列の行列積計算を並列化せよというものである。素朴な計算としてはijkループでC[i][j] += A[i][k] * B[k][j];になる。あとはgistのコメントに書いた。 またC++のrange-based for文for (変数宣言 …
44日目 午前 メニューの出し入れを実装し、渋滞発生を効果音で明確に示し、さらに制限時間経過またはゲームオーバーでアラーム音が鳴るようにしてViveportにアップデートを提出した。これでVR交通整理のアップデートは打ち切りとする。 午後 次のゲームの題…
43日目 帰宅後から開始。なんとかメニュー出し入れを古いものを含めすべてのステージで実装し終えたように思うので、明日検証してアップデートを再提出したい。 明日からはスケジュールの枠内で、Oculus Go向けのパズルを将来の拡張を踏まえた設計をしつつ小…
42日目 帰宅後から開始。PresenterがModelの情報をObserveしてViewに対してSubscribeで反映させ、時間が来たら条件判定というところまで完成した。あとはOculus標準のボタンアサインを参考にしてメニュー出し入れを実装し、他のステージにも反映するだけだ。…
41日目 帰宅後から開始。引き続きModelとPresenterの実装を進めた。しかしこの先のアップデートの展望が見えないので悩ましい。新しいことを学習していないと記録すべきことがなくて困ってしまう。早く完成させたいものである。
40日目 午前 所要のため外出。大変暑く、また台風により銀杏が散乱しており悪臭に悩まされた。 午後 UniRxを利用してPresenterがViewの値変更イベントやModelの状態変更を受けて各所を制御するようコードを書いた。uGUIで選択されたボタンを取得する、という…
39日目 午前 Scroll RectとContent Size Fitterを触って理解を深めた。 構成として 親にScroll Rect (Contentは子を指定、Viewportは自身) + Rect Mask 2D 子にLayout Group (Force Expandはオフ、Control Sizeもオフ)+ Content Size Fitter(拡張・縮小した…
38日目 午前 ABC134A-Dを解いた。Dについて言えば、Pythonのステップ指定リストスライス[i::i+1]はこの問題のためにあるといっても過言ではなかった。そのあまりの簡潔さゆえに、あえてストレスを感じながらC++で書き直したいとは思わない(処理制限時間には…
37日目 午前 並列プログラミング入門を再開した。まず#pragma ompの効果が理解できた。すなわち、#pragma omp ...という指示文は次行に来る単位コード(;で終わる文、または{}ブロック)が実行されている間有効であるということだ。そのため //誤り、"critic…
36日目 帰宅後から開始。GazeIconとuGUIの仕組みについて実験を行っていた。その結果分かったのは GazeIconはSpriteでもよい SpriteならSorting LayerとOrder in Layerの両方が設定できるので、同じ深度に位置する3Dワールドより常に手前に表示されるUIのさ…
35日目 帰宅後から開始。さらなるuGUIの調査とOculus Integration v1.40(Oculus/VR/Scenes/UI シーン)の検証を経て、以下のことが分かった。 OVR RaycasterはCanvasに取り付ける。Pointerは画面内に仮想カーソルを出す場合に用いると考えられる。無くてもエ…
34日目 帰宅後から開始。 UnityのEventSystemをVRで使用するについて調査を行った。 Oculus IntegrationのOVR Raycaster(Graphic Raycasterの代替としてCanvasに追加し、2Dレイキャストを判定する)、OVR Input Module(Standard Input Moduleの代替としてEven…
33日目 午前 昨日のABC139E実装においてAの各要素をリストではなくdequeに置き換え、popleft()することでより直感的な答案となった(deque変換コストで多少遅くなった)。 C++でも実装しようとしたが、std::deque型のオブジェクトを単純に代入すると自動的に…
32日目 午前 Simulink講習会に参加してきた。位置yを時間tで微分したy'は速度になり、y''は加速度になる。これはSimulinkブロック線図上では ―y''→[積分器]―y'→[積分器]―y→ と表現される。そして自由落下の場合加速度はg = -9.81で与えられ、初期位置を100と…
ながつき・がんばり月間に名前を変えて再登場したなが月、今日は31日目である。 午前 明日Simulink・ドローン制御講習会に参加するので、Simulink Onrampチュートリアルを始めた。Simulinkではノードベースの回路を作成しシミュレーションを行うことができる…
30日目 いよいよ最終日である。 幾多の苦難を乗り越えついにHalt!: VR Road Traffic Madness v0.2.0をリリースできた( https://0bsoletelab.itch.io/halt-vr-traffic-officer-simulator , Viveport審査中 )。まずいアーキテクチャで設計すると拡張が大変だと…
29日目 いよいよなつやすみがんばり月間も終わりを迎える。今日は車線変更の方式をいろいろ模索しつつ、通れる経路を厳しく制限することで正常な交通を実現している現在の方式から、柔軟にどの段階からでも車線変更ができるようにするためにはどのようにすべ…
28日目 帰宅後から開始。 360度を超えて回転するときの逆回転問題を解決してくれるMathf.LerpAngleを発見し、UIがいかなるfps・timeScaleでもスムーズに追従するようになった。また懸案事項であったタイムアップ時の結果処理や車間距離検知もテストしたとこ…
27日目 帰宅後から開始。スポーン地点を全て設定し、UIボタンインタラクトを実装した。あとは閉塞区間を導入しテストを行うだけだが、閉塞の実装が一番困難である。 VR制作は新しいことを学べるわけではないので書くことが途端に減ってしまう。来月と言わず…