
はじめに
RCC 2回生のuMaです.
普段は競プロやってみたり, Twitter API叩いてみたり, ノベルゲーム作ってみたり, とにかく色々なことをして楽しんでいるんですが, Unityも使ってみたいなというお話をUnityチョットだけわかるお友達にしていたところ, 勧められた"Unity Engine Challenge"に参加してみたので, そのお話を今回はしてみたいと思います.
ちなみに, 僕を誘ったそのお友達は, 「あ, 申し込むの忘れてたわwww」と言って参加しませんでした.
許せねぇよなぁ…
Unity Engine Challengeについて
そもそも, Unity Engine Challengeとは一体何なのかというと, mixi株式会社様が主催された, 参加者が2名ずつのチームに分けられ, 与えられたUnityに関する問題を解くという1日限りのイベントです.
与えられた問題についての詳細はお話できませんが, 僕がメインで解いた問題がシェーダーについてのものだったので, 今回は特にシェーダーについて触れながら振り返っていきたいと思います.
当日までに必死にお勉強をした
実はこの"Unity Engine Challenge"には選考があったのですが, "Unityを利用した経験がある方"という条件があり, 僕は"ハッカソンでちょっとやった"という内容での応募だったのでぶっちゃけ絶対落ちるだろうと思っていました.
選考結果の発表が行われた時には驚きましたが, そこから開催までの数週間の間に必死にUnityに関する勉強を行いました.
なぜそこまでにUnityの勉強を行っていなかったのか?
怠惰ですよ
ともかくUnityについて, ネット上に公開されているチュートリアルをやりながら, 最低限の3Dプロジェクトに関する勉強をしながら, シェーダーについてもこちらのサイトを参考にさせて頂きながら勉強しました.
正直, 全然時間は足りませんでしたが, 基礎部分は理解できたと思います.
シェーダーについて
ここまで散々お話してきたシェーダーですが, これは一体何なのか, 今回得た知見をもとに軽く説明させていただきます.
今回使用したものは, サーフェイスシェーダーというものです.
シェーダーはCGにおいてシェーディングを行うためのプログラムで, 頂点, 色などに変更を加えることができます.
例えば, 物体を透明に表示したい場合, その物体の表面に対して垂直な線が, 視線と垂直に交わる輪郭などの部分は白く, 平行に近ければ近いほど薄い白, つまり透明にします.
また例えば, 物体にテクスチャを貼る場合などは, その描画する位置やその色に変更を加え, 表面の模様が動いたり, ゆがんだりするような表現もシェーダーを使えば可能になります.
このように, シェーダーはCGにおける表現で非常に重要な役割を果たしており, また非常に面白いことができるため, 興味がある方はぜひこれに関して調べてみてはいかがでしょうか.
当日の感想
当日は, 11:00からチュートリアルをmixi社員の方が行ってくださり(非常にわかりやすかったです), その後お昼ご飯を挟んだ後にいよいよペアの方と問題を解き始めます.
問題の詳細はお話しできませんが, 非常に面白い問題ばかりであっという間に時間は経ち, 終了後は晩御飯. 社員さんや他の参加者の方との交流もできました.
ここでは非常に興味深いお話を色々お聞きすることができました.
特にGPUとそこで使用される関数についてのお話では, 最後の問題が解けなかった理由を知ることができました.
どうやらGPUによって使用できない関数があり, 僕が見ていたリファレンスに記載されている関数に僕のPCのGPUが対応してなかったようです.
これは大変勉強になりました.
最後に集計の結果と順位発表, 写真撮影があり, イベントは終了となりました.
ちなみに僕のチームは惜しくも4位の点数でした.
悔しかった…
さいごに
今回この"Unity Engine Challenge"に参加してみて, 本当に良い経験ができたと考えております.
外部のこういったイベントに参加するのはほとんど初めてでしたが, 今後は積極的に参加してみようと思いました.
"Unity Engine Challenge"第2回は行われるのでしょうか…?
参加できるなら是非リベンジしてみたいものです.
以上uMaでした.