pixiv SPRING BOOT CAMP 2019 参加記
ピクシブ株式会社が2019年2月27日~3月8日に実施した短期インターンシップ「pixiv SPRING BOOT CAMP 2019」のVRoidコースに参加しました。
応募
エントリー期間は2018年12月26日~2019年1月26日。 Twitterで流れてきた告知ツイートを見て存在を知り応募に至りました。
エントリー方法には通常選考とGitHub選考があり、私は前者で応募しました。 通常選考のフォームにもGitHubアカウントを記入する欄があり、伝えられる情報量の面でも応募の手間の面でも、GitHub選考の上位互換になっていたと感じます。 全10コースの中から、技術セットが自分に合っていそうなものを探し、VRoidコースとpixivFANBOXコースを選びました。
面接
応募からしばらくすると、書類選考を通過したので面接をするとのメールが届きました。 ピクシブのオフィスを訪問するのは初めてなので、とてもわくわくしながら向かいました。 新宿駅に近くて(最寄りは代々木駅)良い立地です。
面接にはVRoidから2名、pixivFANBOXから1名の社員の方々がお見えになりました。 各位の自己紹介や雑談を経た後、簡単な(ホワイトボード)コーディングテストをしました。 私は応募フォームの「一番情熱を注いだこと」に競プロを書いており、先方にもそれを認識されていたため、テストは半ば形式的なものだったと思います。
他方、記載したGitHubアカウントから、私がthree-vrmを開発しているということが認知されており、VRoid Hubの中の方と、three.jsでVRMを扱うことについての話題で盛り上がりましたが、すぐに面接時間が終了してしまい残念でした。
ピクシブオフィスエントランス名物の絵馬
初出社(1日目)
朝10:30、他の参加者と顔を合わせ、自己紹介をしました。 そして、名札と背に「pixiv INTERNSHIP」と書かれたパーカーを受け取りました。 その後、毎週水曜日の「全社会議」と「ランチ会」に参加してから、VRoid Studioチーム(とVRoid Hubチーム)のもとで環境構築を始めました。
セキュリティ、機密保持の観点から、インターンシップ参加者は皆、貸し出されたマシンのみを使うことを義務づけられます。 少々面倒なことにも思われましたが、自分のラップトップよりも遥かに高性能なゲーミングノートを借りることができ、快適に作業することができました。
環境構築が一段落ついたところで、メンターののりおさんや他の社員さん、もう一人のVRoidコース参加者の方と、インターンシップ期間中に取り組む課題について話し合いました。 かくして私は、VRoid Studio製モデルの軽負荷化に取り組むことになりました。
懇親会(1日目夜)
オフィスの一角でピザと寿司とスパゲティが振舞われました。
日々(1日目~8日目)
初めにVRoid Studioのリポジトリを共有いただきましたが、その後の作業のほとんどは新規作成したUnityプロジェクトで行いました。 VRoidモデルを軽負荷化するにあたって、やるべきことが明確になっていなかったため、それを探っていくことが私の仕事となるそうです。 Unityや3DCGに特段詳しいわけではないため、終始Unityのスクリプトリファレンスのタブをたくさん開きながら作業していました。 (Firefoxを愛用しているのでChromeしか使えない環境は少々辛かったです。)
マテリアルやメッシュをUnityスクリプトから触るにあたって、リファレンスだけでは知識が不十分であり、「思い通りに動かない」となることが多くありました。 度々Slackで質問を投げると、強い人たちがすぐに返答してくださり、ありがたかったです。 インターンシップを通して、3DCGの知見がかなり増えました。
実装方針を考える中で、箱詰め問題を解いたりトポロジカルソートの利用を検討したりするなど、競プロの知識が活かされそうな場面に出会いました。 そのほとんどは実装の手間を考慮して実際に使うことがありませんでしたが、その判断もまた競プロで培ったものなのだと思いたいです……。
ピクシブのオフィスは一見するとかなり派手なのですが、実際に身を置いてみると適度な生活感があり作業に没頭できることがわかりました。 社員さんの私物の薄い本やフィギュアなどが至る所に置かれている点もピクシブらしいと思います。 ある日には、メンターさんが購入したSegway Driftを体験させていただきましたが、全く乗りこなせませんでした。
インターンシップを通して連日の満員電車を体験し、通勤の厳しさも学びました。
通勤電車がかなりつらいので就職したら勤務先の徒歩圏内か自転車圏内に住みたいね
— remin (@reminjp) March 1, 2019
漁火 親子丼定食(700円 税込)
土古里 焼き牛丼(880円 税込)
焼肉を食べながらのFMS_Catさんとの雑談で、VRMの物理演算にはUnityに頼らない独自の仕様がある(UniVRMに実装が含まれている)という知見を得たので、後日three-vrmに実装を加えました。
インターンシップの課題はVRoid Studioを対象としており、幸か不幸かVRoid Hubのコードを閲覧する機会(権限)が与えられなかったので、機密保持契約への抵触を恐れることなくthree-vrmの開発を続けられそうです。
pixiv TECK SALON(5日目)
3月5日、招待制の勉強会イベントpixiv TECH SALONに参加することができました。 Twitterで存在を知っていたものの、自分は参加できないものだと思っていたので、招待をいただけて驚きました。
中でも、three.jsでVRMを表示するまでの道のりをまとめた発表が興味深く、VRMを触っていくモチベーションが高まりました。
休憩を挟み、四番手はFMS_Cat。「Web世界で君の3Dモデルに生を吹き込む方法」と題し、3Dキャラクターの共通フォーマットが今後様々な場面で活用されるための、現状の課題をご紹介します! #pixivTECHSALON pic.twitter.com/ENqM1sxiOd
— ピクシブ株式会社 pixiv Inc. (@pixiv_corp) March 5, 2019
昨日の #pixivTECHSALON における「Web世界で君の3Dモデルに生を吹き込む方法」の発表資料をニコナレにアップロードしました!口頭での補足を加えないと理解しづらいかもですが、昨日来られなかった方は是非……! https://t.co/cXRAO2BILw
— FMS_Cat (@FMS_Cat) March 6, 2019
発表会(8日目夕)
最終日、各自のインターンシップの成果をスライドにまとめ、大勢の社員の前で発表しました。 発表時間を超過してしまったことを猛省しています。
VRoid Studioにマージされうるコードを書こうと意気込んでいたのに、当初の課題も達成することができなかったため落ち込んでいたところ、メンターさんに十分な成果を残せていると励まされてしまいました。
課題の解決方法を調べて実際に実装を試してみると、小さなissueに分けて解決しリリースして行けそうだということがわかったので、できることならそのプルリクを投げるところまで携わりたかったです。
あと2週間くらいイに行きたい
— remin (@reminjp) March 7, 2019
打ち上げ(8日目夜)
代々木駅近くの店で鍋を食べました。 そして、メンターののりおさんからVRoidからVR、創作全般のことまで、いろいろなお話を聴くことができました。
人事の方にTwitterのアカウントを教えた際にアイコンやヘッダのものが何か尋ねられたので、サメのぬいぐるみであることをお伝えし、布教しました。
御社の人事の方にもふふを布教しました
— remin (@reminjp) March 8, 2019
感想
ピクシブは遠い存在だと思っていたのでまず選考を通過したことにはとても驚きました。 また、pixivなどのwebサービスを提供している印象が強いだけに、webにあまり強くない自分がインターンシップに参加できたことを意外に思っていました。
今回VRoidコースを体験し、社員さんや他コースの参加者を見て、クリエイターを第一に考えて柔軟に技術を取り入れていく空気を間近に感じました。
この8日間はとても楽しくて、明日何を実装するかわくわくしながら眠る日々を過ごしていました。 インターンシップが終わってしまい悲しいです。 この週末は慣れない労働の疲れから、ほとんど寝たりthree-vrmをいじったりしていました。
ピクシブの皆さん、ありがとうございました。