ピクシブのインターンに行ってきました
はじめに
ピクシブ社のインターンを知ったきっかけは、正直あまり覚えていなくて、「ピクシブで2週間働けて交通費と宿泊費も支給されて10万円貰えるとか応募するしかないやんけ!」みたいな感じで応募しました。
ほとんど駄目元だったし、書類選考後の面接で出されたコーディングテストの結果が散々だったので、合格のメールをもらった時は3回くらいほっぺたをつねりましたね。
初めてのハッカソン
今回のインターンは参加者15人が4チームに分かれてハッカソンをする、という形式。
「世界に向けた創作活動を盛り上げるサービス」というお題を与えられて各チームで2週間かけてプロダクトを作っていきます。
プロダクトの評価基準は「クリエイター自身に刺さる」、「長く使ってもらえる」、「多くの人に使ってもらえる」という3つでした。
義務教育を終えている人なら分かると思うんですけど、15は4では割り切れず、僕たちのチームは他のチームより一人少ない3人でした。
さらに初日はチームメンバーの一人が用事で来なくて、「おいおいこれ大丈夫か・・・???」なんて思いましたが結果的には全然大丈夫でしたね。
僕以外のメンバーは能力も学歴もめっちゃ高くて置いてけぼりをくらいそうでビクビクしてたんですけど、最後は自分の実力をしっかり出せてチームに貢献できたと思います。
最初に作ったプロダクト
創作活動という広い、とても広いテーマの中から僕達はまず「絵を描く」という事にターゲットを絞りました。
何故かというと「まあピクシブだしね」という事と「全員の中で一番身近(絵を描いた経験があるという意味ではない)に感じる」という事がありました。
その中でチームメンバーが「多くのイラストレーターがピクシブのユーザーページとは別にわざわざ絵を載せるだけのポートフォリオサイトを自前で作っている」という事に気付きました。
実際に絵を描いている人から話を聞くと、 「自分のプロモーションにもなるし、周りの人も作ってるから面倒だけど作ってる」 という話だったので「これをもっと簡単に作れるようにしよう!」 という事で進めていきました。
そして最初の中間発表でこのプロダクトを発表した所、翌日暫定順位最下位を言い渡されました。
理由としては、 既存のポートフォリオサイト(pixivのマイページや、Tumbler、WIX等)との差別化ができていないということがありました。
しょっぱなで最下位というのは正直かなり精神的に堪えて、その日はずっと頭も回らずほとんど何もできませんでした。
次に作ったプロダクト
最初に作ったプロダクトは乗り越えなければならない高い壁が多くあり、 結局方向性を大きく変えようということになりました。
気持ちを切り替えて色々模索しようとするものの自分たちだけでは全然話が進まず、 社員さんにブレストのやり方、アイデアの絞り出し方を教えてもらいました。
その中で「このチームのメンバーは実際のサービスを意識しすぎているので既にあるサービスから着想を得てはどうか」 と言われ、自分たちが普段使っているサービスを思いつく限り書き上げました。
そしてでてきたのがPush-Ups(https://www.runtastic.com/ja/apps/pushups)というアプリ。
これは単に腕立て伏せの回数を数えたり、自分にあった回数を設定してくれるだけのアプリで、 こまめにプッシュ通知を送ってくることでモチベーションを保てる、というものです。
こういったものを絵を描きたい人に向けて作れないかというところから新しいプロダクトづくりが始まりました。
2回目の中間発表では「お絵かきのハードルを下げて楽しく!」と行ったコンセプトや方向性のみ発表しました。
反応は上々で、暫定2位になりました。
次は具体的なプロダクト案を考えて行くフェーズです。
話し合った結果、
- ソシャゲ風にして、絵を描くことでストーリーを進めて行く
- 他の人と絵でバトルする
というようなゲームを作ろうということになりました。
そして3回目の中間発表、もう一度自分たちで考えたプロダクトを発表しましたが。
結果は暫定3位と下がってしまいました。
理由として、
- コンテンツ(ストーリー)の面白さにプロダクトが依存してしまう
- どうしても負け続ける人が出てくるし、そういう人は離れて行く
というような事が挙げられました。
最後に作ったプロダクト
コンセプト自体は間違っていないと思っていたので、 前回のプロダクトのコンセプトを残しつつ方向性を変えることにしました。
右往左往していた中で美文字(https://itunes.apple.com/jp/app/美文字/id583257133?mt=8)というアプリを見つけました。
これはお手本をなぞって字を書くと点数が表示され、それを繰り返すと綺麗な文字が書けるようになるというものでした。
これがやってみるとかなり楽しくて、「よしこれのイラスト版を作ろう!」となりました。
決まったのは水曜日の夜で、発表まで1日半しかなかったのでこれ以上方向を変えることもできないので、正直賭けだなと思いました。
発表までにきちんと動く状態にしないといけないので、翌日の木曜日は延々とコーディングをしていました。
僕はサーバー側でお手本画像を配信、イラストをスマートフォンから送ってもらい、お手本と合成した画像と、計算した点数を返す処理を実装しました。
点数の計算処理は木曜日中には終わらず、結局金曜日の発表前ギリギリまでかかりました。
このゲームを多くの人に長く使ってもらう物にするには、絶妙な点数計算がキモになると勝手に思っていたので、最後まで試行錯誤しながら調整しました。
実現したかったポイントは以下の5つです。
- 塗りつぶして高得点を出す、みたいなズルはできないようにする
- 多少はみ出しても点数に大きく響かないようにする
- 初心者が初めてやった時に「悔しい!もう一回やりたい!」と思わせるような点数が出るようにする(50〜60点)
- 最初はやればやるだけ点数が上がっていくけど、上級者になると段々点数が上がりにくくなってやりごたえを出したい
- ちゃんと100点満点が出せるようにする
これらを実現するために色々な方法を試したんですけど、最終的には
お手本画像から「黒のピクセル」と「白のピクセル」の座標をそれぞれ500個づつ抽出しておき、 送られてきた画像のそれらのピクセルを調べて大まかな「黒のピクセル」と「白のピクセル」の一致率を調べ、
(黒のピクセルの一致率 x 3.0 - 白のピクセルの不一致率 - 1.0) をゲインが2のシグモイド関数に放り込む
みたいな感じで算出するとすごくいい感じになったので満足して最終プレゼンに挑めました。
ピクシブインターンで作ったお絵かきゲームの点数計算、本当は上手くなってくればなってくるほど歯応えを出す為にただピクセル比較するだけじゃなくてシグモイド関数とか使ってめっちゃゴニョゴニョしたんだけど完全にアピールし忘れてた、まあ優勝したのでいいんですけど
— なめたけ(竹内) (@nametaketakewo) 2017年3月18日
高校を中退しているのでシグモイド関数が本来何をする為の関数なのかは知らないです
— なめたけ(竹内) (@nametaketakewo) 2017年3月18日
ちなみにこんな感じのアプリになりました。
おわりに
そんなこんなで最下位から優勝に駆け上がることができたわけです。
初日の懇親会でこっそり聞こえてきた「最初の発表で最下位だったけどそこから最終的に一位まで跳ね上がるみたいなのドラマチックでいいよね」
というのを見事に実現してしまいました。
ドラマチックに優勝賞品であるAmazonギフト券を頂きました。
チームメンバーはもちろんメンターさんや他の社員さんたちのおかげで実現できたことだと思います。
感謝してもしきれないですし、皆さんのおかげで僕はウルフリンクと共にハイラル王国を救いに行くことができます。
エンジニアとしても人間的にも圧倒的成長できた2週間でした。
〜PS〜
皆さんもゼルダの伝説 ブレスオブザワイルドやりましょう