Akatsuki Summer Internship
2019
1
市之瀬滉基
自己紹介
 市之瀬滉基 20歳
 言語:C#,C++,C, HTML,CSS ,Basic
 日本工学院専門学校
ゲームクリエイター科四年制
ゲームプログラマーコース 三年
(2019/7月現在)
 ワークフローエンジニア
(データ管理やエディタなど
作業の流れ、効率化を主に担当)
 Facebook :
https://www.facebook.com/people/%E5
%B8%82%E4%B9%8B%E7%80%AC%E6%BB%89
%E5%9F%BA/100029957118634
2
経緯
 お世話になっている馬場保仁さんからのオススメで
アカツキのイベントに参加し、インターンに応募した。
 馬場保仁
二年次のチーム制作から面倒を見てもらい頭が上がらない人。
セガ:元プロデューサー/DeNA:元プロデューサー/株式会社ファリアー:代表取締役
 入学当初からの知り合いである
伊丹琢人先輩の入社した会社だった。
 伊丹琢人
入学当初から先輩との勉強会で色々教えてもらった経緯から今尚交流のある人。
二年次後期のチーム制作で同じチームになり、コンテストで受賞した。
3
経緯
 「Akatsuki Geek Live」
行われる「LT会」を聞いて
会社にかなり興味を持ち
「サマーインターンシップ」
に参加しました。
 面白かったLT
 「お父さんが教える
プログラミング教育」(仮)
 「”はやく”開発するための
開発速度のあげかた」
4
内容
 期間
 2019/7/1(月) 〜 2019/7/19(金) の三週間
 開発部署
 IOS向けタイトル「八月のシンデレラナイン」
 インターン目標
 自身の深めたい作業からインターン課題を決めていくスタイル。
 データ管理、効率化に関する作業の経験を積んでいくことを目標に定めました。
5
主に使用したツール
 主に使うツール
6
Slack Trello
Team
Spirit カレンダー
gamba! Unity Visual
Studio
インターン課題 1 / 2
 インターン課題を決める
 データ管理、効率化に携わる場を求めていたので
関係するタスクをTrelloから探し出す作業から始めました。
 『インポートしたキャラクターのシーン画像を
IOSごとに表示したい範囲が表示されているか
確認できるようにするデバッグ機能の追加』
というリクエストがありましたので
こちらを作業することにしました。
7
インターン課題 1 / 2
初めに行った作業は・・・
8
インターン課題 1 / 2
ひたすら、コードを読む!!
9
インターン課題 1 / 2
 まずはひたすら、コードを読む!!
 既存のコードが多くあるので
初めはそれらを読み込んで理解する作業から始めました。
 コードを読んで変数を探し、コードを読んで処理を探し・・・
インターンの中で一番大変だった作業は
コード読解だったとはっきり言えるくらい大変でした。
 ですが、コードの中身を読んでいて
 「こんな書き方があるのか」
 「こうすれば処理が楽になる」
という箇所が多々あり、読んでいてタメになり
つい没頭してしまうほどでした。 10
インターン課題 1 / 2
 コードを読んだり担当の人に話を聞いているとカードの表示の際、
画面サイズに合わせて表示させるプレハブがあるとのこと。
そちらでメッシュを設定してあるサイズに作成し、あらかじめ設定してあった
必須表示範囲と表示範囲から画像の表示範囲分切り取り割り当てました。
そちらを読み込む時にアセットバンドルの読込処理、UI周りの処理についても
調べながら書き込んでいきました。
11
インターン課題 1 / 2
 追加した機能
 IDの入力
 画像をドラッグして移動させる機能
 最大表示範囲の変数 : Rect
 必須表示範囲の変数 : Rect
 ドラッグ移動させた座標の変数 : Vector2
 スクロールボタン
 UI表示ボタン
 フルスクリーン表示ボタン
 IDから画像を読込するボタン
 変数の値を変更した際の画像表記 読込ボタン
 読込先の優先順位を変更させるボタン(ローカル、アセットバンドル)
12
インターン課題 1 / 2
 表示範囲・座標の変更
 UIの表示設定
 読込先設定
 スクロール挙動
 様々な読込処理
 初期読込
 パラメータ変更適用読込
 パラメータ変更適用直前読込
13
インターン課題 1 / 2 番外
Assets
 ゲーム素材の追加で別プロジェクトを作成し、
無視リストに加えるというのはチーム制作をよく行う身として
とても使えると思いました。
14
Project Assets
Resources,
Scripts, Prefabs …
Resources Project
(無視リスト)
インターン課題 2 / 2
 二つ目のインターン課題を決める
 二回目の作業は対戦時の表示の差し替えを行いました。
対戦時に表示されるキャラクターのシーン画像は
ImageUIを使用して、一つ一つ座標と表示範囲を決めていたので
前回使用した画面サイズに合わせて表示させるオブジェクトに
差し替えることになりました。
15
インターン課題 2 / 2
 今回は前回までと違い、表示させるプレハブの座標が中心ではなかったので
 そちらの設定で手間取ってしまいました。。。
 そして完成したのがコチラです。
16
► ・・・はい、背景がおかしいのと、
パーティクルが出ていない状態位ですね・・・
► 背景は前の画像で使っていた背景抜き状態の
デフォルト背景の画像部分を
差し替えた状態になっています。
インターン課題 2 / 2
 パーティクルはオブジェクトのカメラ設定を行なっているパラメータを
エディタ上で後から変更したら前に出てきます。
そちらの原因の究明までは至りませんでした。。。
 背景は背景抜きシェーダ部分を使い、
後ろにデフォルトの背景を表示させるようにしていたので
SSR以上の時に背景ぬきをせずに表示させようとました。
ただ表示するだけならすぐできるのですが、右の図のように
背景抜き部分を半透明の黒がかかったように表示したかったのですが
元々あるコードを書き加える形になりそうでしたので断念しました。。。
 余裕を持って修正していくことができなかったことが残念。。。
15
インターン課題 2 / 2 番外
 この課題を進めながら前の課題のコードレビューをしてもらいました。
その際、修正するのに「ターミナル」を使っていました。
 「機械語や、コマンドラインのように一つでも失敗したら
すべてのデータに影響が出てしまうのではないか・・・」
と、あまり多く書き込むことができませんでした。
18
インターン課題 2 / 2 番外
 「何か失敗するとすべてのデータが消えてしまう・・・」
そんな恐怖感を持ちながらも
PCで調べたり、社内の人に教えてもらい
過去コミットの修正、削除、移動など行いました。
 コンフリクト(衝突)を起こすことが多くありましたが、
無事(?)修正ができました。
19
まとめ
 今回のインターンでは、
 「UI」「Git」「デバッグ関連」「アセットバンドル」の4点に触れてきました。
 それとは別にチームとしての開発環境を見て、
 学校での制作と比べ、より綿密に作業工程を考え分担する姿は
 今後のチーム制作でも生かせそうでいい経験になりました。
 得た経験は9月にあるゲームジャムで発揮してみます!
20

Akatsuki summer internship_2019

  • 1.
  • 2.
    自己紹介  市之瀬滉基 20歳 言語:C#,C++,C, HTML,CSS ,Basic  日本工学院専門学校 ゲームクリエイター科四年制 ゲームプログラマーコース 三年 (2019/7月現在)  ワークフローエンジニア (データ管理やエディタなど 作業の流れ、効率化を主に担当)  Facebook : https://www.facebook.com/people/%E5 %B8%82%E4%B9%8B%E7%80%AC%E6%BB%89 %E5%9F%BA/100029957118634 2
  • 3.
    経緯  お世話になっている馬場保仁さんからのオススメで アカツキのイベントに参加し、インターンに応募した。  馬場保仁 二年次のチーム制作から面倒を見てもらい頭が上がらない人。 セガ:元プロデューサー/DeNA:元プロデューサー/株式会社ファリアー:代表取締役 入学当初からの知り合いである 伊丹琢人先輩の入社した会社だった。  伊丹琢人 入学当初から先輩との勉強会で色々教えてもらった経緯から今尚交流のある人。 二年次後期のチーム制作で同じチームになり、コンテストで受賞した。 3
  • 4.
    経緯  「Akatsuki GeekLive」 行われる「LT会」を聞いて 会社にかなり興味を持ち 「サマーインターンシップ」 に参加しました。  面白かったLT  「お父さんが教える プログラミング教育」(仮)  「”はやく”開発するための 開発速度のあげかた」 4
  • 5.
    内容  期間  2019/7/1(月)〜 2019/7/19(金) の三週間  開発部署  IOS向けタイトル「八月のシンデレラナイン」  インターン目標  自身の深めたい作業からインターン課題を決めていくスタイル。  データ管理、効率化に関する作業の経験を積んでいくことを目標に定めました。 5
  • 6.
  • 7.
    インターン課題 1 /2  インターン課題を決める  データ管理、効率化に携わる場を求めていたので 関係するタスクをTrelloから探し出す作業から始めました。  『インポートしたキャラクターのシーン画像を IOSごとに表示したい範囲が表示されているか 確認できるようにするデバッグ機能の追加』 というリクエストがありましたので こちらを作業することにしました。 7
  • 8.
    インターン課題 1 /2 初めに行った作業は・・・ 8
  • 9.
    インターン課題 1 /2 ひたすら、コードを読む!! 9
  • 10.
    インターン課題 1 /2  まずはひたすら、コードを読む!!  既存のコードが多くあるので 初めはそれらを読み込んで理解する作業から始めました。  コードを読んで変数を探し、コードを読んで処理を探し・・・ インターンの中で一番大変だった作業は コード読解だったとはっきり言えるくらい大変でした。  ですが、コードの中身を読んでいて  「こんな書き方があるのか」  「こうすれば処理が楽になる」 という箇所が多々あり、読んでいてタメになり つい没頭してしまうほどでした。 10
  • 11.
    インターン課題 1 /2  コードを読んだり担当の人に話を聞いているとカードの表示の際、 画面サイズに合わせて表示させるプレハブがあるとのこと。 そちらでメッシュを設定してあるサイズに作成し、あらかじめ設定してあった 必須表示範囲と表示範囲から画像の表示範囲分切り取り割り当てました。 そちらを読み込む時にアセットバンドルの読込処理、UI周りの処理についても 調べながら書き込んでいきました。 11
  • 12.
    インターン課題 1 /2  追加した機能  IDの入力  画像をドラッグして移動させる機能  最大表示範囲の変数 : Rect  必須表示範囲の変数 : Rect  ドラッグ移動させた座標の変数 : Vector2  スクロールボタン  UI表示ボタン  フルスクリーン表示ボタン  IDから画像を読込するボタン  変数の値を変更した際の画像表記 読込ボタン  読込先の優先順位を変更させるボタン(ローカル、アセットバンドル) 12
  • 13.
    インターン課題 1 /2  表示範囲・座標の変更  UIの表示設定  読込先設定  スクロール挙動  様々な読込処理  初期読込  パラメータ変更適用読込  パラメータ変更適用直前読込 13
  • 14.
    インターン課題 1 /2 番外 Assets  ゲーム素材の追加で別プロジェクトを作成し、 無視リストに加えるというのはチーム制作をよく行う身として とても使えると思いました。 14 Project Assets Resources, Scripts, Prefabs … Resources Project (無視リスト)
  • 15.
    インターン課題 2 /2  二つ目のインターン課題を決める  二回目の作業は対戦時の表示の差し替えを行いました。 対戦時に表示されるキャラクターのシーン画像は ImageUIを使用して、一つ一つ座標と表示範囲を決めていたので 前回使用した画面サイズに合わせて表示させるオブジェクトに 差し替えることになりました。 15
  • 16.
    インターン課題 2 /2  今回は前回までと違い、表示させるプレハブの座標が中心ではなかったので  そちらの設定で手間取ってしまいました。。。  そして完成したのがコチラです。 16 ► ・・・はい、背景がおかしいのと、 パーティクルが出ていない状態位ですね・・・ ► 背景は前の画像で使っていた背景抜き状態の デフォルト背景の画像部分を 差し替えた状態になっています。
  • 17.
    インターン課題 2 /2  パーティクルはオブジェクトのカメラ設定を行なっているパラメータを エディタ上で後から変更したら前に出てきます。 そちらの原因の究明までは至りませんでした。。。  背景は背景抜きシェーダ部分を使い、 後ろにデフォルトの背景を表示させるようにしていたので SSR以上の時に背景ぬきをせずに表示させようとました。 ただ表示するだけならすぐできるのですが、右の図のように 背景抜き部分を半透明の黒がかかったように表示したかったのですが 元々あるコードを書き加える形になりそうでしたので断念しました。。。  余裕を持って修正していくことができなかったことが残念。。。 15
  • 18.
    インターン課題 2 /2 番外  この課題を進めながら前の課題のコードレビューをしてもらいました。 その際、修正するのに「ターミナル」を使っていました。  「機械語や、コマンドラインのように一つでも失敗したら すべてのデータに影響が出てしまうのではないか・・・」 と、あまり多く書き込むことができませんでした。 18
  • 19.
    インターン課題 2 /2 番外  「何か失敗するとすべてのデータが消えてしまう・・・」 そんな恐怖感を持ちながらも PCで調べたり、社内の人に教えてもらい 過去コミットの修正、削除、移動など行いました。  コンフリクト(衝突)を起こすことが多くありましたが、 無事(?)修正ができました。 19
  • 20.
    まとめ  今回のインターンでは、  「UI」「Git」「デバッグ関連」「アセットバンドル」の4点に触れてきました。 それとは別にチームとしての開発環境を見て、  学校での制作と比べ、より綿密に作業工程を考え分担する姿は  今後のチーム制作でも生かせそうでいい経験になりました。  得た経験は9月にあるゲームジャムで発揮してみます! 20