【雑記】これからゲーム業界を目指す後輩たちに向けて
もうすぐ新年度を迎え、新しい生活を始める人・就活を始める人・業界を考え始める時期に入る人、さまざまいると思うので、後輩に向けて私なりに何か話せたらと思います。
これまでの記事で書いてある内容と被るところもあると思いますが、それだけ大事にしてほしいということなので目を通してくれたら嬉しいです!
ゲーム業界のイメージは?
皆さんはゲーム業界に対してどういうイメージを持っていますか?
給料面、ブラックなのではないか、ずっとパソコンに向かってカタカタしてる、etc...
様々なイメージがあると思います。もちろん、コンシューマとモバイルでも違いますし、会社によってそれぞれ特色があります。それに加えて私自身色んな企業の実態を知っているわけではないため、一概にこれ!ということは言えません。
ただ確実に言えることは、皆さんの想像している以上に働きやすい環境であるということです。
もちろん、スマホアプリのリリース直前であったり重要なイベントの真っ最中であったり苦しい時期は0ではないです。ですが最近残業に関してかなり厳しくなっていたり働き方改革など国主体で色々変わってきているのもあって忙しさなどは他の業界と然程変わらないのでは?と思っています。
これまで私は色々な会社の方にお会いしてきましたが、皆さん楽しそうに、そしてキラキラしていました。
プログラミングに自信がない場合
ゲーム業界目指してるけど授業レベルのものでも全然追いつけない。。。やめたほうがいいのかな。。。と思う人もいると思います。
まだまだ自分の実力に自信がないから勉強を続けられるという方向にいければよいですが、自信がないという理由だけで諦めてしまうのはもったいないです。
言ってしまえば私もまったく自信がないです。色んなイベントに参加して周りの強さを間近で見て自分の小ささに絶望してるくらいです。
それでも諦めず続けていけるモチベーションになっているのは、プログラミングは努力すればするほどレベルが上がることを知っているからです。これでも私は現時点でUnity歴は1年いくかいかないかくらいです。(授業を含めれば1年半くらいかな?)
ちょっと前まで意味わからなかっただけの単語の羅列が、今では知らない機能でもおお〜なるほど!となる感じでとても面白く感じてます。
プログラミングだけでなく、スポーツでもゲームでもだんだん分かってきて思ったように動かせるようになってくると思います。
もう一度言いますが、自信がないから向いてないと決めつけて諦めるのはもったいないです。プログラミングよりセキュリティとかコンピュータのハード周りのほうがいい!など明確な理由があればいいですが、最悪なものだと思っているのが「プログラミングできないからプランナー目指す」みたいなやつです。マジでやめてください。ゲーム業界においてプランナーはかなり重要な役割です。その上自身にとってもイバラの道になります。個人的にはプログラミングにおいて努力できない人は絶対プランナーにはなれないと思っています。
発信していこう!
ブログやイベントのLTなどでがっつり発信していこう!とまでは言いません。できる人はやったほうが色んな企業の方に見つけてもらえたりするので得ですが、結構ハードルは高いと思います。
なので、まずは身近なところからどんどん自分のやりたいことを発信していってください!こういうの作って見たいけどどうやったらいいのか?というのを先輩や先生、周りの友達に聞いたり、このイベント興味あるから一緒に行こう!と友達を誘ったり。もう少しレベルをあげるのであれば、学校内でハッカソンを主催したり、アプリのリリースに挑戦してみたり。
ゲーム業界を目指す専門学校や会社は、どう考えても無理なことを除いて必ず相談にのってくれます。(相手の都合も考えることができると◎)
まったく話も聞いてくれないような環境であればお察しの通りそういうレベルなので身近の信頼できる先輩に相談するのがいいと思います。
Facebookなどで繋がりを増やしておくのもいいです!自分の発信ももちろん、他の方の発信を吸収するのも大事です。
社会勉強も大事
皆さんアルバイトはしていますか?
社会勉強といっても「社会勉強だからwww」とふざけていかがわしい店に入ったりよくない行動をとったりすることではなく、アルバイトなど本当の意味での社会勉強です。
これには2つの意味があります。
1つは、社会に入ったときのためです。皆さんのイメージで毎日終日パソコンに向かってカタカタしているというのがあるかもしれません。会社によってはそういうところもあるかもしれません。ですが私の知っているゲーム業界は、他の職種の人や同じチームの人と密にコミュニケーションをとっていいものを作り上げる環境です。ということは、目上の人とのコミュニケーションや、中には顧客や別の企業の方のコミュニケーションをとる人もいると思います。そういったときの礼儀や行動の仕方をあらかじめ勉強しておくことができます。
2つ目は、希望職種の幅を広げるためです。最初はゲーム業界を目指していたけどバイトした感じこっちのほうが自分には合ってるな、とか転職することになったときに別の職種についてみたいけどバイトしてたときのあれやってみようかな。みたいな感じで幅を広げることができます。新卒のころからそれが天職になる人はあまりいないかもしれません。将来のために色々な職種を知っておくことも大切だと思います。
まとめ
長文で色々話しましたが、結論はやはり「後悔しない生活をすること」だと思います。色んな先生や先輩にこれやったほうがいいあれやったほうがいいと言われると思いますが、一切流されることなくこれまで自分が見て聞いてきたなかで一番今の自分にとって得だと思うことをやってください。誰かの言いなりになるだけだと面白くもないし未来もありません。なるべく早く自分の軸を見つけてこれから頑張ってくれるとうれしいです!
私はいつでも相談にのれるので何かあれば記事のコメントでもTwitterでもFacebookでもどうぞ!
次回の記事から社会人になる影響で週一(土曜夜)更新のみになりますご了承ください!
【Unity】ドンキーコングシリーズギミック実装してみた:タルルーレット編【1】
今回から、私が前からずっとやりたいと思っていたドンキーコングシリーズのギミックをUnityで作ってみたシリーズを紹介していきたいと思います。
第1回ということで簡単にドンキーコングシリーズについて紹介します。
ドンキーコングとは?
ドンキーコングは、マリオを作った宮本茂氏によって作られたゴリラのキャラクターで、初代ドンキーコングでは敵として現れた。(私も含めて)皆さんのよくイメージしているドンキーコングは2代目で、初代ドンキーコングの孫らしいです。スーパードンキーコングシリーズの主人公で、今でも多くのマリオシリーズや大乱闘スマッシュブラザーズなどで愛されています。
興味のある方は、YouTube等で色々なプレイヤーの様々なプレイ動画が上がっているのでご覧ください。
この記事で扱うギミックは、主にスーパーファミコンのスーパードンキーコング1〜3より実装します。
タルルーレット
第1回はスーパードンキーコング1のボーナスステージより「タルルーレット」を紹介します。
タルルーレットには3種類あり、「アニマルトークン等全部を同じアイテムにする」「KONGの順に揃える」「隠されたバルーンを探す」があります。
今回はそのうち、「アニマルトークン等全部を同じアイテムにする」を実装しました。
成功ver.
失敗ver.
※サウンドとプレイヤーは実装していません
ポイント
- 全て一致したとき点滅してから真ん中に集まりアイテムが出現する
- 一度でも間違えたら強制終了
- リールの回転がランダムではなく規則がある
基本フリーの素材を使っていますが、好きなものを作ろうとするとアニメーションなどこだわりが強くなってなかなか制作が進まなかったりしますね。。。
次回もお楽しみに!
【雑記】語彙力って大事
チームや組織での開発においてコミュニケーションは必要不可欠です。
私は昔からずっと会話が苦手で、どんな状況でもしっかり言葉を発信できる人が羨ましいなと思ってます。
よく人から「こんな喋れるコミュ障いたら困るわ!」「全然話せてるじゃん気にすることないよ!」と言われますが、苦手といっても喋れないわけじゃなく言葉に詰まったり、話題を出せなかったりいわゆる言葉の引き出しが少ない状態だと思ってます。
そうなっている原因は過去の出来事による心的な傷であったり家庭内の会話だったり色々説はありますが、このサイトが一番共感できたので参照しておきます。
読書はしたことあっても小学生の頃だったり読書タイムのときだけだったり...
昔から容姿やコミュニケーションも含めて自分に自信がなかったり、なんとなくこういうニュアンスで使ってるみたいに言葉の本来の意味を調べず使っていたり
などなど
そういうこともあって会話であったり説明の途中に「どういうこと?」って聞き返されることや聞く側の方が言葉を組み立て直してこういうことねって確認してくれたりっていうのがよくあります。
なので常々ぽんぽんいろんな言葉が出てくる人やインタビュー等でしっかり自分の言葉で発信できる人をうらやましく思います。
もちろん、うまくいろんな言葉を使って話すことが苦手なだけであって面接など大事な場面で苦しんだことはあまりありません。軸をもって自分のアピールできることをしっかりまとめておくだけでそのことについて話の幅をいくらでも広げることができるので、それは会話というよりは経験を語っているという考えです。
そんな私がなるべく語彙力をつけようと思って読んでいる書籍を2つ紹介します。
大人の語彙力ノート
「世界一受けたい授業」でも紹介されていた書籍で、この中で出てくる言葉のほとんどが会話の中でよく使うものなのでかなり役立ちます!
もちろん、あくまで語彙力をつけたり目上の人に対して使う言葉であったりすることがあるので普段の会話でこれいったら不自然じゃない?と思うことはありますが新しい発見が多いので学びになっています。
入試に出る漢字と語彙 2400 新装版
これは、私が高校のとき国語の時間で使っていたものです。
漢字と語彙の問題集になっていますが、語彙は語彙でも四字熟語や慣用句も含まれていて全部覚えたらかなり語彙力がつくと思います。
また、語彙だけじゃなく漢字のほうでもその言葉の意味の説明が書いてあるので、漢字を覚えるのと同時にしっかりその言葉の意味を勉強することができます。
【Unity】動画の再生
卒業式前後で忙しく現在作っているものの紹介が間に合いそうになかったので、
今回は休憩がてらドロップシュートのPVをUnityで流して見ました!
動画の再生にはVideo Playerという機能を使っています。
PlaneやCube等にアタッチして、Video PlayerにVideo Clipもしくはネット上に上がっている動画のURL(Youtubeはエラーが起きて再生できないみたいです)を設定するだけです!
オープニングムービーを差し込みたい!など色々動画の使用用途があると思いますが、想像以上に簡単なのでぜひやってみてください!
【雑記】横の繋がりを広げる大切さ
学生の方で、同じ学校の同級生以外の横の繋がりはありますか?
ハッカソン等イベントに参加したことのある人は他の学校の人や団体の人と繋がることはできますが、あまりそういう経験がない人は能力を比較できる対象が同じ学校の人しかいないと思います。
実際それはかなり危険な状態で、たとえ学校内でトップレベルの技術力をもっていたとしてもあくまでそれは学校という平等な場でのトップなので天狗になると痛い目にあいます。
実際、ハッカソンに参加したことのある人は分かると思いますが、自分でもびっくりするほど周りの知っている知識ややり方が違います。大学でも専門学校でももちろん独学でも習っていることはそれぞれ特色があり、人と繋がれば繋がるほどどんどん新しいことを学ぶことができます。
なので、横の繋がりを経て効率的にインプットするための3つの要素をまとめました!
1.積極的にイベントに参加する
やっぱりこれに尽きます。横の繋がりを作るきっかけが必要です。
ハッカソン、人事の方とのランチ、エンジニアの懇親会イベント等々...
なんでもいいです!業種の違う人と繋がるのもいいと思います。色んな考え方を取り入れるきっかけを作りましょう。
2.最低限の情報を聞き、連絡先を交換する
変な意味じゃないです!エンジニアトークの定番ですが、どんな職種でどういう勉強をしているのかというのを自己紹介がてら軽く共有します。ぶっちゃけ職種が違うとその技術を話されてもちんぷんかんぷんなことが多いです。でも重要なのはどういう考え方や設計でやってるのかというのを知ることです。
そして、TwitterやFacebookなどSNSでも繋がることをオススメします!そこからまた別の繋がりを作ることもできれば、技術ブログなどを上げてる方もいるのでどんどん新しい技術を取り入れられることにも繋がります!
3.アウトプットする
これもきっかけの一つです!GitでもQiitaなど技術ブログでも、とりあえず自分の学んだことをアウトプットすることが大事です。
備忘録代わりに使っても問題ありません。基礎でも応用でもこの記事のような雑記でも需要が0ということはないです。運が良ければそのネタに興味を持った人と繋がることもできますし、イベント等に参加したときや面接のアピールポイントにもなります。
以上になります!
興味を持ってくださった方、たくさんつぶやいているわけではありませんがTwitterをやっているので連絡してください!→ @gucchiPg0204
【Unity】サウンドアセットの軽量化
ゲーム開発において、BGMや効果音は必要不可欠です。しかし、サウンドアセットの容量がそのままゲームの容量に上乗せされてしまうため、たくさんのBGMや効果音のあるゲームはそれだけ大きな容量のゲームになってしまいます。
Unityにおけるサウンドの欠点を補ってくれるADX2やCRIを使って実装していれば問題ないですが、使用したことがない場合は学習コストもかかってしまうため身近であるAudio Clipで実装できるのが理想です。
見直す点①:オーディオファイルの形式
Unityでサポートされているファイルはmp3やwavなど8種類ほどあります。
ぶっちゃけUnity上でインポート後に圧縮設定が行えるので法人でなければそれほど気にする必要はないかもしれませんが、wavかoggをオススメします。
mp3がよく聞くオーディオ形式だと思いますが、数年前までライセンス料が発生していました。現在は特許もソフトウェアライセンスプログラムも終了しサポートがなくなっていますが、ネット上では様々な意見が飛び交っているため保証ができません。
見直す点②:圧縮設定
こちらはメモリやCPUに大きく関わるものになります。
小規模な開発であればそこまで気にしなくても良いと思いますが、この圧縮設定を見直すことによってデフォルトから数倍も負荷が軽くなります。
やったほうがいい設定を紹介します。
Force To Mono
モノラル変換です。これにチェックを入れると約半分のファイルサイズになります。
特別ステレオの必要がなければチェックを入れておくのをオススメします。
Load Type
デフォルトではDecompress On Loadになっています。これは、圧縮されているオーディオファイルを展開してメモリにロードするのでBGM等サイズの大きいものを使えば使うほどメモリを大幅に使用してしまいます。
残りは、Compressed In MemoryとStreamingがありますが、メモリ再生とストリーム再生はご存知でしょうか?
メモリ再生は、再生時に展開を行うのでCPU負荷がかかります。主に効果音等で推奨されています。メモリ再生にする場合はCompressed In Memoryを設定しましょう。
ストリーム再生は、ロードしながら再生を行うためメモリに負荷がほとんどかかりません。しかし、処理負荷がかかってしまいます。ストリーム再生の場合ロード完了を待つ必要がないので遅延が発生しません。そのため主にBGMで推奨されています。
ストリーム再生にする場合はStreamingを設定しましょう。
Compression Format
品質に関わる圧縮方法の設定です。
これは基本的にoggファイルで使われているVorbisという圧縮方式で問題ないです。
これは、品質を下げずにファイルサイズを大幅に落とせる優れもので、さらにQualityオプションで圧縮率を調整することもできます。
他には、品質に特化したPCMや大量の効果音を鳴らす際にCPU負荷を抑えられるADPCMがありますが、Vorbisで良いでしょう。
デフォルトでも問題なく再生できます!しかし、アプリをリリースする場合などどうしてもファイルサイズを抑えたい場合が出てくると思います。そのときはこういったサウンドに関しても見直してみると大幅に改善できると思うのでよかったら参考にしてみてください!
参考サイト
【雑記】開発におけるバージョンについて
普段皆さんは、開発において使っているツールやエンジンのバージョンは何を使っていますか?
常に最新にしていたい方もいれば、確実に安定しているバージョン(他の開発でも使用していたバージョンなど)を使い続けている方もいると思います。
私は少し前まではUnityのバージョンが上がる度にアップグレードをかけていました。(さすがにベータ版は使っていませんでしたが)しかし、先日まで本格的に開発をしていたドロップシュートの開発中、2018.2から2018.3に上げよう!となったときにとんでもない数のエラーが発生しました。
もちろんバージョンを上げる際は新しいバージョンのほうで不具合があった場合に戻せるよう現在のバージョンをとっておき、環境を変えてテストを行います。
バージョンを上げるメリット
- 新しい機能を使うことができる
- 処理速度などが改善されていることがある
- 最新の状態を保てる(過去バージョン非対応などの心配がない)
バージョンを上げるデメリット
- ベータ版でなくともエラーが出ない保証がない
- アセットが新しいバージョンに対応していない可能性がある
- 新しいバージョンを使って問題ないかテストする工数が増える
メリット・デメリットに関しては他にもたくさんあると思いますが、ざっと思いつくものでこんな感じでしょう
私の経験も踏まえて、バージョンを上げるタイミングというのはしっかり考えた方がいいというのが分かると思います。
バージョンを上げるおすすめのタイミング
- 新機能をどうしても使いたい時(メモリ性能が格段に上がる、開発効率が上がるなどで)
- 現在のバージョンがアセットなど何かしらで非推奨になった時
iPhone XRに対応させるみたいな新しい機種に対応させる必要があった場合にバージョンアップが必要などであれば仕方がないですが、特別理由がない限り開発開始当初のバージョンから迂闊に上げるのはやめたほうが良さそうですね。
また、UnityにはLTS Releaseというものがあります。
LTSとは、Long Term Supportの略でサポート期間が長期的で安定して使えるのが保証されていますよということで、UnityのLTS最新版も2019/03/06現在時点で2017.4なのでそこまで古いわけではないです。特に新機能など気にして開発していない場合はLTSの最新版を使用するのがいいと思います。
P.S.
それでもどうしても最新にしたい!という人向けに公式から注意点が出ているのでそれを確認してからアップグレードすることを推奨します。
ベータ版は知りません。技術力に自信がある方のみ使ってみてください。