私はこのバーチャル学会の運営としてポスター発表用会場のワールド製作を担当しました。この記事では、私がVRChatでイベントで使用する会場製作がどのようにして行われてきたのかの経緯や、考えたこと、感想などを書き綴っていこうと思います。今回私がバーチャル学会の会場製作をすることになったのは、昨年2018年11月に開催したVRChat初(多分)のライトニングトーク会を主催したのをきっかけに、今回の学会を主催されたファルコさんに声をかけられたのがきっかけでした。当時は私も学生で、軽いノリで「やってみるかー」という感じで引き受けたのですが、それから1年弱音沙汰のない状況が続きました。事が動いたのは、今年の10月頃になってからで、そこから本格的にやろうという感じになって企画を考えていきました。その時点で私は社会人になっており、12月開催を初めの頃から予定していて期間も短かったため、これ今の状況でできるのかなぁとその頃は結構心配していました。何度か話し合ううちに、誘われた頃と自分の状況も変わったことを伝え、今回は初回開催で期間も短いことも考慮して、最低限ポスター発表に必要なものがそろったワールドを作ろうという方針で進めることになりました。ワールド制作の準備まず、ワールドをどんなコンセプトで作成するか、最低限ワールドに必要なものは何かという部分から考えていくことにしました。(同時並行で、ワールドに設置するポスターのサイズや見やすいフォント、サイズなどのフォーマット決めも行なっていました。)ワールドコンセプトに関しては、実際にリアルの学会がどんな会場で行われているかの調査なども行いましたが、Blenderでゴリゴリワールドのモデルを作れる人はいませんでしたし、AssetStoreでそれっぽいものを探す時間も中々取れない状況だったのであまり参考にせず、ひとまずUnityのデフォルトの素材でプロトタイプを作って、そこから余裕があれば色々追加していこうという事になりました。(まぁ結局余裕なかったですがw)ただ、ワールドを見にくる人の利便性や、発表者が発表しやすいワールドにしようというところは最低限曲げずに作ろうという事になり、発表者の発表のしやすい位置を考えたり、小さいアバターの人でも見上げてポスターを見なくていいように段差を準備しようといった事は最初の頃から検討していました。初期の頃考えたワールドに設置する段差の案そういった話し合いを元に、ひとまず私やファルコさんで簡単なワールドのラフスケッチを書いて、ワールドのイメージを固めていきました。私の描いたワールドのラフスケッチワールドのプロトタイプの作成とワールドのアップデートそこから、まずは会場に貼るポスターの枚数や大きさなどの情報を元にUnity上で会場のプロトタイプワールドの作成を行いました。プロトタイピングしたワールドそこからは、毎週行われているミーティングで運営メンバーに見てもらい、改善点やこんなものもあるといいよねといった要素をあげてもらって、毎週少しずつワールドのアップデートを行なっていきました。フィードバックをもらっていく中で、最初はこんな感じでいいだろうなぁと思っていた事も、実際にワールドに入って触ってみるとやっぱり別の方法がいいんじゃないかという事も出てきて中々試行錯誤が大変でした。個人的に会場は部屋というより、もっと開放感のある会場にしたかったので、屋根を外して空を見えるようにしたのと、マテリアルを木の木目のあるものにして教室っぽさを出した部分はこだわりポイントだったりします。発表者のポスターと展示物配置ワールドがある程度出来上がってきた段階で、提出されてきたポスターと展示物の設置を行なっていきました。この段階になるとほぼ作業の状態かと思っていたのですが、配信の方でポスターサイズの問題などから別部屋を作ってそちらで配信を行おうという変更があったり、ポスターや展示物の方も変更が何度か入ったりと思った以上に他のタスクも入ってきて忙しくなっていきました。予定していたワールドがほぼ完成に近づいたところで、学会1週間前にポスター発表をする方たちと配信担当のおきゅたんさんと運営で当日のリハーサルを行いました。すると、本番の流れを追っていく中でワールドの課題がまだあることが見えてきたり、展示物の不具合やポスターの入れ替えの必要が出てきたりと、調整が必要な部分がかなり見つかり、結局本番当日まで結構バタバタしていました。当日朝方に最終調整のタスクもなんとか終わり、昼頃に最終確認をしてなんとか本番に望むことができました。その後、バーチャル学会本番も(途中トラブルはあったものの)大盛況のうちに無事終えることができました。大変なことはありましたが、VRで学会やるにはどうすればいいかみんなで話し合ったり、ワールド制作自体も楽しくやらせていただいて、最終的にバーチャル学会2019は沢山の人に参加していただけた素晴らしいイベントになって自分としてはかなり満足しています。課題もまだまだ沢山あるなとは思っています。ワールド制作に関しても、もう少しスケジュールに余裕を持って制作を終え、リハーサルもまだ早めに行えていれば調整等に割く時間ももっと余裕ができたんじゃないかなどなど...来年2020年にもまた開催する予定なので、次回はそんな課題を見直して、さらにグレードアップしたバーチャル学会が開催できればいいなと思っています。最後に、バーチャル学会を企画してリーダーとして引っ張って下さったファルコさん、運営として一緒に頑張って下さったテトラリアンさん、signsさん、ハルさん、にしあかねさん、lcamuさん、はつぇちゃん、配信をして下さったおきゅたんさん、基調講演をして下さった皆様、ポスター発表をして下さった皆様、そしてバーチャル学会に参加下さった皆様に、この場を借りて感謝致します。ありがとうございました。最終的にこんな感じになるのを目指しますiTermって何?Macのデフォルトのターミナルは標準的な事は出来るものの少し物足りないことがあります。そんな時にオススメなのがiTerm。画面の色を変えるのは勿論、色々便利な機能が盛り沢山です。Darkを使っていますとりあえず、ここまででこんな感じになりました。/usr/local/bin/fishiTermを再起動すると色々変わってると思います。~/.config/fish/functions/fisher.fishテーマの変更Fishermanからテーマをインストールしますオススメのプラグイン導入とかも書きたいですが、今回は見た目をかっこよくすることが目的なのでそっちの方は省きます。defaultからパスの色を緑、コメントの色をオレンジに設定して使っています完成これで、上で紹介したような見た目になったかと思います。---なんかデフォルトシェルをfishにしてしまうとdockerとか使うときにまずいという話を聞いたので、デフォルトシェルはbashのままでbashからfishを起動してくれる方法も追記しておきます。デフォルトシェルをbashに戻します。/bin/bashそして、.bashrcに以下の1行を追記すればiTerm起動時にbashからfishを起動してくれます。fish参考qiita.comqiita.comjnst.hateblo.jpfishの設定ファイルなどはGitHubの方からも見れます。会津予選に参加してきました。会津予選に参加してきました。大学1年生の頃に初参加して毎年参加してて、これが3回目の参加でした。結論から言うと、特に賞などはもらえませんでしたが、とても有意義なイベントだったんじゃないかなと思います。1日目アイデア決めからのチームビルディング初日は、まず各企業の方から提供される技術説明と、アイデア出し、チームビルディング、ハック開始というふうに進行していきました。私は、今回は特に作りたいものやチームも最初から決まっているわけではなかったので、その場でアイデアを考えてチームビルディングまで行いました。チームは後輩の2年生2人と作ることになったのですが、その時考えていたアイデアがもう既に実現されていそうなものだったのでチームでアイデアの練り直しを行い、自分が雨の日に歩きだったりで大変という思いがあったので、最終的に大学内でUberみたいなサービスを作ろうというアイデアに決まりました。役割分担は、自分がAndroidが書けて、2年生2人がサーバーができるということだったので、自分がクライアントで他2人がサーバーサイドの開発という感じでとりあえず開発に取りかかりました。...この時もっとシステムの要件を考えておけばと後々後悔することになろうとは知らずに...ハックとりあえずクライアントで、今回のもっともアピールできるであろう、ドライバーのリストを表示して載せて欲しい人にリクエストを送るところをまず実装しようと作業に取りかかりました。その頃、サーバーサイドの方は開発言語をPHPにして、環境構築をしていたのですが、結構手間取っていたので、先にモックをいくつか完成させてから一緒にテストできるぐらいの感じになるかなーとこの時は考えていました。サーバーの環境構築が終わり、いざAPIの仕様を考えてみると、現在位置情報の取得やログイン処理用の画面など、必要な機能がどんどんインフレしていき、クライアントの方で開発が追いつかなくなるんじゃないかという感じになって1日目を終えることになりました。いう感じの進行でした。開発の方は、前日なんとかドライバーの登録画面まで作成していましたが、現在位置情報がうまく取得できずに悪戦苦闘を強いられていました。サーバーサイドのAPIやデータベースの方は、環境構築こそ大変だったものの、結構順調に作成しているようで、昨日とは打って変わってクライアントの方の進捗をかなり心配されていました。最終的に、トップ画面、ドライバー情報の取得、ドライバの出発情報登録(モック)、会員登録(モック)というところまで作成しました。本当は乗りたい!というボタンを押して通知がいくという、一番会場で「おー!」となりそうなとこを作りたかったですが、ボタンが反応しないバグが出たり、通知方法の作成が大変だったりして、そこまで完成に至りませんでした。今回のハッカソンは、短期間でチーム開発する上で色々と課題が出て、それを意識するいい機会になったなと思います。具体的には開発の前に仕様をしっかりチームメンバーが共有する時間がないので、何を優先的に作るのかといった優先順位をつける(今回だとプレゼンでいい感じになりそうな乗りたいボタンからの通知の実装)役割を超えた円滑なコミュニケーション(今回はサーバーサイド同士はよく話せていたが、クライアントとサーバーサイドの意思疎通があまりできていなかった)などなど今後、学内でチーム開発するプロジェクトも控えているので、今回学んだことを是非とも生かしていけるようにしていきたいと思います。会津予選に参加してきました。1ドールはいいぞ!うちにはドールが2人います。そのうちの1人、そらという名前の身長50cmのドールがいます。1年と半年ほど前にお迎えしてからというもの、日々可愛がっているのですが、なんか普通にTwitterに写真上げるだけだと面白くないな〜と最近少し思う節があって、そらをもっと知ってもらって写真で癒しを届けられるいい方法ないかな〜と思っていました。Botを作ることにしました。どんなBotにするか?まず、Botのそらにどんなことをさせたいかを考えてみました。定期的な日々のつぶやきは欲しいのと、リプライ、TLへの反応などのTwitterにいる標準的なキャラクターBotの機能は欲しいなと。後は、目的が「知ってもらう」「癒しを届ける」なので、定期的な写真ツイートとリプライと一緒に写真も届けられるといいなという感じになりました。コード書いてツイートしてみるどんなBotにするか決まったとこで、とりあえずプログラムの方からツイートするまでのコードを実装してみました。言語はPythonでやりました。Appにアクセスして以下4つのキーを取得しておきます。Secretまた、pipでtwitter-pythonライブラリを導入しておきます。twitterコーディングとりあえずsora.pyという名前で作りました。APIキーは./system/conf.pyから呼び出しています。'コードはこれだけです。2017年9月18日こんな感じでツイートしてくれました。これからとりあえず長くなるのもあれなので続きは別記事で書こうかなと思います。以下のサイトを参考にさせてもらいました。mhr380.hatenablog.comqiita.comまた、ソースコードの方もGithubの方で公開しています。ソースコードはMITライセンスです。