卒業生たちの声と最終課題作品紹介

3期生


【ジャンル】ステルスアクション

【ゲームの概要】
・ランダムな位置に配置されたアイテムをいかに早く集められるかタイムを競い合う
・敵である虎に捕まったらゲームオーバー
・虎はプレイヤーを見つけると追いかけてくる

【こだわった部分】
・ステージ上の障害物の配置をただ向かい合わせにならないように角度を変えたり、物体の大きさを変えたりして単調にならないようにした
・物体の陰からいきなり出てきたり、出会い頭で敵に捕まりそうになる緊張感を演出できるようにした
・プレイヤーと虎の走る速度を調整し、振り払えるように設定した

【苦労した部分】
※どのようにして乗り越えたか等もあるとよいです。
・敵にAIや索敵機能をつけること
・プレイヤーのスタミナゲージの制御
・改善したこと
 enum(列挙型)関数を利用して、行動別にプログラムを組んだ
 索敵機能に関してはサイトにあったプログラムを拝借し、それを基に他のスクリプトと連携させた

【テクスタを受けてみた感想】
今回techstadiumに参加してUnityのみならず、サーバーやデータベースといった オンラインな内容まで学ばせていただき、多くの知識を得ることができました。
講師の方々と画面の前で四苦八苦しながら課題に取り組んでいた時はゲームを一生懸命 作っていることを自分の中で感じることができました。
コーディングにおきましても、書き方の改善ができたりタイピングスピードがより速くなったりなど 得だらけでした。始めは20日間乗り切れるかどうか不安もありましたが、休みなく最後まで通いきれた のは自分にとって大きな経験になりましたし、何より大きな財産となりました。
これからもこの授業会で学んだことを活かして個人制作やチーム制作に取り組んでいきたいと思います。
20日間本当にありがとうございました。


【ジャンル】カーレースゲーム

【ゲームの概要】
・私がレースゲームを作ろうと思ったきっかけなのですが、 私は今年の1月にMT車の運転免許を取得することができました。
高校を卒業し今の専門学校に入学するまで毎日のようにお父さんの車を借りてドライブするようになり、 そういった影響もありそれまではレースゲームなどにあまり興 味がなかったのですが、 段々とこういったジャンルのゲームにも 興味が出てきていずれ自分もこういうゲームを作りたい!と思い 今回の勉強会でレースゲームを作成することにしました。
・このゲームの内容なのですが、ステージ上に配置されたコース を一周するまでの時間を測定し、 そのデータが保存されランキ ングになるシステムになっています。
・実際にプレイしてみても少しわかりにくいのですが、 このコー スは筑波サーキットのコースを自分なりに再現させていただきました。
・このゲームは今後も改良を重ねていこうと思っており、何かしらの効果をプレイヤーに付与するアイテム、 ミニマップ、リプライ機能、マップや車の追加などといったような機能を追加しよりゲーム性を高めていこうと思っています。

【こだわった部分】
・私はこういったゲームでは車の挙動はとても重要だと思っており 今回のゲーム作成でもプレイヤーである車の挙動にはとても こだわりました。
・初めはAddForceを使って車を動かしていたのですがどうしても納得の行く挙動を再現できず どうしたものかと思っていたところ、インターネットでWheelColliderなるものを使うといいよ、 という記事を見つけ実際にオブジェクトにそれをアタッチ するとなんとか納得のいく挙動になりました。
・しかしそれでも本物の車の挙動とは程遠いので今後もWheelColliderの本格的な使い方を学び、 より本物に近い動きを目指していこうと思います。

【苦労した部分】
・先ほども述べたように車の挙動を再現することもそうなのですが、私はunityとデータベースの連携に一番苦労しました。
まだ触れたことのない技術だったので右往左往しながらも仲間や講師の方々の力をお借りしながら なんとか実装することができました。
・今後もこのデータベースの技術はゲーム作成に活用していきたいなと思います

【テクスタを受けてみた感想】
・私はこういった外部の勉強会に参加するのは初めてのことではじめはいろいろ不安があったのですが 講師の方々がとても親切で自分が講義の内容を理解しきれてなくても優しくおしえてくださったので そんな不安も感じることなく今日という日を迎え ることができました。
・技術面的な意味でもすごく自分の力になったと思います。特にサーバーに関する知識は学校では学ばないのでここで習ったこ とを今後に活かしていきたいと思います。


【ジャンル】横スクロール2Dアクションゲーム

【ゲームの概要】
敵を避けたり画面外に落ちないようにコインを集めてゴールまでたどり着く。

【こだわった部分】
キャラクターや背景が2Dのドット絵なのでUIもそれに合うようにドット調にしました。
スコアの表示の仕方を工夫しました。コインの1枚ごとに100点加算されるのですが、 単純に表示するスコアを変えるのではなく、アニメーションのように10点ずつ増えながら 最終的に100点を表示する演出にしています。

【苦労した部分】
phpmyadminで作ったスコアを記録したデータベースをUnityと連動させてゲームで送受信をさせるところです。
apiのプログラムの処理はphpなのですが自分はphpを触るのも初めてだったので書いてある処理を理解するのが大変でした。
自分が実装したい処理は講義の中で使った処理とほとんど同じで良かったのですが 理解できていなかったことも多くてそのため少しでも理解するためにプログラミング学習サイトでphpの基本的な記述法を学習しました。
Unity側でも送受信する処理が難しくて、データが今どの処理のどの変数に入っているかが よくわかっていなくて、ゲーム内に表示させるのに時間がかかってしまいました。
これは取得するために使っているMiniJSONについて調べたり、 処理の流れを講師の方々に説明してもらったおかげでなんとか実装できました。

【テクスタを受けてみた感想】
受講する前はUnityを全く触ったこともなくて、最終日に自主制作したものを発表すると聞いて自分にそこまでできるか不安でした。
実際、自分は講義の内容についていくのが大変だったので講義以外の時間で理解できていない技術について 調べたり、考えたりし講師の方の力も借りてどうにか自分で作品をつくり最終日の発表までこれたと思います。
(途中の課題はほとんど間に合っていませんでしたすい ません)
初めは不安でしたが製作期間までになんとか作品を形にできたこと、それを人前で発表することは自信になりました。
教えていただいた講師の方々には本当に感謝しています。
今回は2Dで作りましたが、個人で3Dや他のジャンルのゲームにも挑戦していこうと思います。


【ジャンル】クイズゲーム

【ゲームの概要】
・クイズマジックアカデミーの4択式問題のような、三国志に関するクイズゲーム。5問正解でクリア。
・データベースから問題文をランダムで取得し、4択の回答文の表示位置をシャッフルして表示する。
・問題の成否によって、SEが分岐し、キャラクターがアニメーションを行う(喜ぶ・怒る)。
・クリア時、正解率によってキャラクターがアニメーションを行う(驚く・喜ぶ・悲しむ・怒る)。 その後、オープニングに戻る。

【苦労した部分】
・問題文はデータベースに格納しており、問題テーブルから問題のレコードを全取得し、ランダムで1つのレコードを問題文として表示している。
・問題の成否判定について、問題文の正解文をいったん保存し、その後正解文と不正解分をシャッフルし、保存した文字列と選択した文字列を文字列比較メソッドで成否判定を行う。
・キャラクターのアニメーションについて、不自然なアニメーションは逆再生を追加して自然な動きに調整を行った。

【テクスタを受けてみた感想】
・テックスタジアムで学んだこと
 Unityの全般的な知識。(UI,3D)
 UnityからAPI経由でデータベースを利用する方法
 アニメーションコントロール方法など。
 Live2DエディタからUnityデータへの置換方法など。


【ジャンル】3Dアクション

【ゲームの概要】
ステージに現れるボスを倒すゲーム。

【こだわった部分】
クリアまでにタイムを計測してランキングにしたり、 ステージ上でギミックを解いていかないと倒すことができないようにする等の工夫をしました。

【苦労した部分】
プレーヤーが思ったとおりに動いてくれず、押した方向に向いてくれなかった
→方向毎に決まった角度の値を代入して固定することで解決。
計測したタイムがシーン切替えたら保存されず破棄されていた
→DontDestroyOnLoadを使う事で切り替えても持ち越す事ができるようになった。

【テクスタを受けてみた感想】
プログラミングの経験がそれほどなかったため講義の内容が中々理解ができず他の方に比べて遅れがちでしたが、 先生方がきっちりとサポートしてくれたおかげでついていくことができました。
最終課題も夜遅くまで残り分からない部分や改善点を教えてくださったおかげでこうして形にすることができました。
今後はテックスタジアムで学んだことを生かしていけれるように頑張りたいと思います。
約1ヶ月間ありがとうございました。


2期生


【ジャンル】アイテム回収ゲーム

【ゲームの概要】
コンセプトとしては?離見の見?の大切さから今にはないもの想像していこうということを作品にしました。
具体的にいうと、例えばx,y軸で座標をPI/3回転させるとします。 unityではrotateでできますが、その求め方を数学的に考えて見ると1.2.3などの実数だけで回転した座標を求める手法として 虚数というこの世の中にはない数字を合わせた複素数を用いて求めるのが一般的です。
このように今の地球上にあるものだけや常識的な考えだけでは視野が狭いということを問題提起しています。
なので、鳥は今のところ宇宙では飛行しませんが、あえて鳥を地球上で飛ばせてみました。
また、地球上にはたくさんの生物がいる中、なぜ鳥にしたかというと、離見の見を意識して頂きたかったからです。
そもそも離見の見とはgoo辞書によると?世阿弥?の能楽論で、演者が、自分をはなれ観客の立場で自分の姿を見ること。 自分の演技について客観的な視点をもつことをいう。
離見。つまり、自分と相手のことをまるで上から見ているかのように見るということです。
なので上から見るということで鳥にしました。

【こだわった部分】
使った技術としてはアニメーションとデータベースです。

【苦労した部分】
まずは背景と音です。play中にはコンセプト以外の音を入れることでplayしている感を出そうとしたのですが、 音が喧嘩しないようにしようということをしっかり考えてサウンドを選びました。 この作業がなかなか苦労しました。

【テクスタを受けてみた感想】
TechStadiumでは授業中ではunityとサーバーを学びました。
なかでも、テクノロジーの楽しさを学べたことがとても良かったです。


【ジャンル】対戦ゲーム

【ゲームの概要】
・現実世界に出現した魚を捕まえるゲーム
・スコアはResult画面でデータベースに送ることができ、過去最高のスコアも表示される。
・一応音楽のリズムと魚の出現タイミングを合わせてあるので、音ゲーとしても楽しめる?

【こだわった部分】
・Unityに既存である物理計算を用いない物理挙動 //重力は9.8m/s2。この値と時間を掛け合わせて加速度を計算する。
velocity += new Vector3 (0, -9.8f, 0) * Time.deltaTime; //位置は加速度にさらに時間を掛けることで計算。
//放物線を描く魚を、常に前方を向くように速度をnormalizeして方向を出す。
Vector3 direction = velocity.normalized; transform.forward = direction;//で指定した方向を常に向かせている。
・PhotonとRPC通信値(変数)の受信と送信が行いたかったため、prefabの同期というよりはRPC通信を主に使った。 相手のスコアが自分のゲーム画面でも見ることができると、競争心が湧くのでは、と思ったため実装。
・ARKit 今回は地面検出の部分まで実装することができなかった。 ARkitを用いてカメラで得た映像(扱いとしてはほぼ画像)を今回のプロジェクトの背景に表示させている感じ。
・Shader 本当はARKitで検知した地面にPlaneをおき、Shaderをかけて水面から魚が飛び跳ねているような挙動にしたかったのだが、今回は実装できなかった。
画面下、水色の部分がShaderをかけた部分で、水面を表現している。
・ハイスコア表示機能 概要の部分でも述べたが、自分のスコアの送信とこれまでのハイスコアの取得がで きる。APIを使用した。

【苦労した部分】
・AR部分。結局実装には至らなかったが、AR部分はUnityリファレンスや個人のやってみた系のブログもあまり充実しておらず、苦労した。
サンプルを参考に試行錯誤したが、原因のよくわからないエラー(iPhoneではビルドできないがiPadではできるなど)や、 ビルドできる回数に制限があったりなどして思うように実機テストができなかったのも原因の一つ。
・UIや音楽は簡単にできるかと思っていたが、意外と大変だった。特にUI部分でのアンカーとピボット。これも実機でのテストが必須となるので何回もビルドして修正した。
音楽は素材を集めてくるまではよかったが、魚の動きに合わせたり、いらない部分を切り取ったりと別ソフトでの編集を行った。
*uGUIにもShaderはかけられるらしいので、今後挑戦したい
・まだまだ勉強不足だと感じているのはAPI通信の部分。授業はほとんど流れの確認に費やし、PHPで書いてあるコントローラーの中身は正直全て理解できているわけではない。
またMac特有の403エラーや、MacOS上ではなくVMとして動くXAMPPにも翻弄された。

【テクスタを受けてみた感想】
自分でもプログラムが書けたということが感動的だった。そしてTechStadiumでは技術的な要素だけでなく、学ぶ姿勢そのものを学ぶことができたと思う。
私はスライドの途中に質問してしまうことが多く、リモート組の方々には迷惑をかけてしまい申し訳なかったとは思うが、 わからない部分があった時にすぐに聞ける環境と、嫌な顔をせず返答してくれた先生方の存在は本当に貴重だと感じた。
そのおかげでプログラミング初心者の自分でも授業についていくことができたのだと思う。感謝しています。
最後の課題制作は実装ができなかったことはいくつかあるものの、こうして自分の手で作ったものが形になることはこれからの自分の自信にも繋がり、 次へのチャレンジの原動力にもなる。またTechStadiumは受講者同士のコミュニケーションにもなるのではないだろうか。
(今回は2人だったが)自分の技術不足や周りに置いていかれてはまずい、ということを日々感じながら受けるカリキュラムは適度な緊張感があり、 それも開発を行う場としてよかったのだと思う。
1ヶ月の間、先生、一緒にカリキュラムを受けた受講生さん、ありがとうございました。


【ジャンル】2人対戦型2Dフードファイトゲーム

【ゲームの概要】
スマートフォンの画面をひたすらタップし、30秒間に出された食べ物を次々食べていきます。

【こだわった部分】
『Youは何しにニッポンへ』で外国のYouに人気のある日本食(ラーメンやメロンパン、たこやきなど)のアセットを使い、 画面は英語版にして幅広いユーザーが遊べるようにしました。
またPhotonでの通信対戦で、どこからでも対戦して遊べるようにしました。

【苦労した部分】
・Photonでの生成/同期の理解と実装で失敗を繰り返し、多くの時間を費やしました。
・CakePHPでのサーバアプリケーション作成やMVCの理解、UnityからそのAPIにアクセスする方法には様々なポイントがあり、独学では理解するのが難しかったと感じました。

【テクスタを受けてみた感想】
・UnityやC#、データベースサーバーの使用方法について、実際に現場で使用されている技術を直に学べました。
・プログラミングでは一つの問題について、何通りもの解決方法を使えるようにして柔軟に問題に対応できるようにしておく必要があることを実感しました。


【ジャンル】1人称迷路突破ゲーム

【ゲームの概要】
ステージ3まで製作をしており、一般的な迷路ゲームとは違い、出口の位置が異なったり、
クリア条件が存在するなど多くの要素があるのでユーザがスリルと興味を感じることができるゲームです。

【こだわった部分】
deltatimeを利用した制限時間と、シングルトンパターンを利用した点数制御、一時停止機能を調査して追加をしており、 その他にもjsonデータをpost通信でdbに保存するテストをしており、昨日任意に指定したjsonデータをdbに保存することを成功しました。

【テクスタを受けてみた感想】
初めて授業を聞き始めた時には凄く緊張しました。
しかし、課題を遂行し、勉強をしながら、いつのまにか、緊張がほぐれて、集中をするようになりました。
最終課題を受けた時に、以前に構想したゲームを作り始めました。
TechStadiumから学びながら私は親切と分かりやすく教えてくれる専門性を見てCreek&Riverと出会ったのが本当に幸いで、 ここなら私はエンジニアとして、さらに発展することができるという自信を持つようになりました。


【ジャンル】FPS Shooting Game

【ゲームの概要】
Unity3Dで作ったFPSゲーム。Unity テュートリアルであるのを自分なりに色々追加しました。 画面のサイズはモバイル用として9:16に合わせました。

【こだわった部分】
単に銃を打つことだけでなく特殊アイテムやボスなども加えて自分なりのFPSゲームを作ろうと決めました。
細かい部分も色々追加しました。飛行機を動かせる時に3D感覚を表現するためRotationを変更するとか、 または敵の飛行機を度々新しく生成するのではなく再活用して最適化にも気を付けて作りました。

【苦労した部分】
コードなどを作成するのがすごく大変で色々なバグも直すのに苦労しました。
自分なりに調べて本と授業で学んだ知識を使って作るのはとても難しいでした。
でもインターネットや回りの人からも色々助かって何とかつくることができました。

【テクスタを受けてみた感想】
自分はまだまだ未熟なので独学でもPHPとかデータベースを勉強せねばならないとわかりました。
授業の場合最初は動画の画質とかあまりよくなかったので受けるのは大変でした。
でも自分が知らないプログラミング知識を学んで色々役に立ちました。


【ジャンル】二人対戦型爆弾投げゲーム

【ゲームの概要】
Player達はPhoton環境を利用して接続し限定されているPlaceで戦うことができます。

【こだわった部分】
やはりこのゲームはPhoton技術を中心に開発されたものだからPhotonの全般的なものがポイントになります。
ゲームが始まる前に2人が一緒にゲームをするためゲームにある色々なオブジェクトにPhoton viewというコンポーネントを付けました。
でも私はそのPhotonが苦手なのでこれ以上具現することができませんでした。
オブジェクトに使われているMaterialとかモデルの中にはAsset storeからダウンロードしたものが多いです。爆弾と壁がその例です。

【苦労した部分】
他のPlayerが投げた爆弾が急に消えたりダメージを与える機能にネットワーク的な問題がたくさん発生してそれ以上具現することができませんでした。 今は投げることしかできません。

【テクスタを受けてみた感想】
Unityについての全般的なこととゲームがどのように作られるのか分かるようになりました。
Photonを使って簡単なネットワーク環境のゲームの作り方とか以外その前のサーバー環境のXAMPPを学びました。
私が今まで勉強したのはJavaプログラミングですが今まで学んだことの中に一番面白かったです。


1期生


【ジャンル】カジュアルゲーム

【ゲームの概要】
ランダムに出現するGemをいかに早く回収しきるか、その早さを競うゲーム。
Gemの出現が毎回可変というランダム(運)要素と、
Playerを端末の傾きによって操作するという実力の要素、
二つを兼ね備えた【運 × 実力】のどちらも試される設計。

【こだわった部分】
・シンプルなフラットデザイン
・デザインがシンプルな分、画面の中では常に何かが動いている状況を演出(常にPlayerが画面内のどこかで跳ねている)
・ゲームタイトルと画面内でのPlayerの動きから、ユーザーにゲームがどのようなものかを直感的に想起させる為スムーズにプレイへの移行が可能
・1目見ただけでユーザーが何をすべきか分かるUI(各種ボタン類の配置、画面遷移のアニメーションの方向やその早さまで、ユーザーにとってより自然に見えるように工夫)
・1Playが1シーンで完結→Play途中でシーン遷移などによるロードをする必要がなく、ストレスレスにゲームを進めることができる
・Playerのスキン変更が即座に反映され、そのままPlayに移行することが可能

【苦労した部分】
Playerの物理挙動
→自分の思い描く重力加速度・反発係数にする為に各種値を何度も調整

【テクスタを受けてみた感想】
1ヶ月でしっかりアウトプットを出し切るという部分が良かったと思っています。
学んだだけで何も作れていなければ、何に使えるか分からないので。
平日・土日・祝日、オンライン・オフライン問わず質問に答えてくれる環境がとてもありがたかったです。
ありがとうございました!


【ジャンル】パズルゲーム

【ゲームの概要】
ツムツム。繋がった3つ以上のボールを指でなぞって消すゲーム

【こだわった部分】
1つのスマホゲームとしての完成度を高めるためにシーン遷移でフェードインアウトを使うことや、ボーナスタイムでの花火の演出、DoTweenを用いたカウントアップなど細かい部分ではあるが、気持ちの良い操作ができるような実装を心がけた。

【苦労した部分】
オンラインランキング。Unityでサーバーを使ってデータの格納、抽出等を行ったのが初めてだったので裏側で何が起きているのかを理解しながら実装に移していくのは少々大変だった。

【テクスタを受けてみた感想】
自分が触れたことがない技術などに触る機会があったことや、短期間でがっつりプログラミングができたので自分の技術力や知識が身についたと思う。


【ジャンル】対戦アクションゲーム

【ゲームの概要】
1対1の対戦ゲーム。
ゲームを始めるとマッチング画面から始まる。
Photonに接続してルーム作成後、ルームに2人集まるとゲーム画面に移る。
ゲーム開始後すぐに罠を設置するフェイズが始まる、右クリックで罠を設置できる。
20秒後設置フェイズから対戦フェイズに移る。
対戦フェイズでは罠を踏まないように気を付けて、
鬼は逃げる人を捕まえる、逃げる側は鬼に捕まらないように隠れながら逃げる。

【こだわった部分】
・Photonで対戦機能を追加したこと
・どのクラスがどんな動きをしているかをわかりやすくしながら作った

【苦労した部分】
・Photonでの位置やデータの同期に時間を多く使った
・Photonを実装するときに今までの機能が使えなくなったところの修正

【テクスタを受けてみた感想】
Unityは自分で調べて学習していましたが、サーバーやPhotonを使った対戦機能は学ぶ機会がなかったので、 今回勉強することができてよかったと思いました。


【ジャンル】3Dアクション

【ゲームの概要】
フィールドの奥にいるドラゴンを制限時間内に倒せたらクリア

【こだわった部分】
・敵を倒したら10秒ごとに作成されるようにした。
・攻撃力UPのアイテムを取って効果中は赤いエフェクトを出したり、
 敵を攻撃した時や敵から攻撃を受けたときに血しぶきがでるようにしました。
・マウスをクリックした先がエフェクトで分かりやすくしました。

【苦労した部分】
・playerが攻撃した際に敵のHPが減らないことに苦労しました。(原因=Collision判定に問題があった)
・Animationが上手くいかない。(Buildしながら調整)
・やりたいことが最初から多かった。(できることから手をつけた)


【ジャンル】探索型ゲーム

【ゲームの概要】
ダンジョンを探索にきたプレイヤーが、宝(ダンジョンコア)を手に入れるために閉まっている扉を開ける方法を見つけるゲーム。

【こだわった部分】
・敵のAI部分、TPカメラFPカメラ切り替え。
・ゲーム性が乏しかったので、簡単にクリアできないように敵の攻撃を継続攻撃にした。

【苦労した部分】
・敵AI,マップ,UI関連,ゲーム性,DB関連
・マップ作りにTerrainを使おうとしてスペック問題に当たったので、アセットストアを利用した。


【ジャンル】FPS

【ゲームの概要】
動物を撃ってスコアを上げラッキング登録可能

【こだわった部分】
カメラと銃の動き

【苦労した部分】
弾丸の発射方向

【テクスタを受けてみた感想】
Collisionが余り理解できなかったけど、Collisionマスターしました。
スクリプトやサーバーを扱うのは難しかったけど、
少しずつ慣れててもっと時間があればUnityマスターになったかもしれません。
結論的に長期間かけての復習は大事だと思いました。


【ジャンル】3Dシューティングゲーム

【ゲームの概要】
太平洋上に突如現れた謎の壁。
そこから現れる敵を打ち抜け!

【こだわった部分】
3Dゲームなので奥行がわかるようなカメラの位置を意識しました。

【苦労した部分】
プログラムが全くわからない状態から授業を受け、制作に挑んだので
実装したい仕様をどうやってコーディングするかわからないことが多かったです。
そのようなときには講師の方に初歩の初歩から教えてもらいながら乗り越えました。

【テクスタを受けてみた感想】
まったくの初心者である自分がここまでできるようになったのは、
講師の方の熱心な指導と同期受講者の方々のサポートのおかげです。
20日間でちゃんと成長できていることを実感できる内容でした。


【ジャンル】アクションパズル

【ゲームの概要】
塔を立てて高いタワーを作りましょう。
塔にいる『観光客』を落とさないよう気を付けて!

【こだわった部分】
1)それぞれの塔を違う形にして飽きがこないようにしました。
2)ソースコードを読みやすくするように気を付けました。

【苦労した部分】
塔や観光客にかかる物理演算の扱いに苦労しました。

【テクスタを受けてみた感想】
今回のアカデミーに参加して、今まで知らなかった技術(サーバーなど)を学ぶことができました。20日間ありがとうございました。

Top