セッション詳細
『アナザーエデン 時空を超える猫』における“ツール運営“事例 〜開発ツールの運用で学んだこと〜
資料
https://cedil.cesa.or.jp/cedil_sessions/view/1845
[Serializable] public class Params{
float hitPoint;
float attackPoint;
float defensePoint;
}
これならできる。publicじゃなくてもシリアライズできる方法は無いんですかね…?[Serializable] public class Params{
public float hitPoint;
public float attackPoint;
public float defensePoint;
}
突然ですが、自作STGのMagicalNightで使用している音源の配布をします。動画やゲームで好きに使ってください。
作成したのは5年ほど昔。 専門学校で1ヶ月間だけ作曲の勉強をした後、MIDIキーボードで打ち込みSoundEngine Freeで編集した。 曲名は公開用に今日考えたものでその間ずっと無名だったんだな。これが。
作曲勉強中はプログラミングができないことが大変苦痛だったが作曲自体は楽しめたと思う。 自分が作りたい曲のイメージを頭に思い描くためにゲームやアニメのサントラをいっぱい聴いたり、時間が足りないためにアレンジでかさ増ししたりもした。
機材があればまたやってみたい。
先日、大人気アイドルにPushする度に褒めてもらう方法を共有したが、ワンパターンで面白くないじゃない! なによりSlackのログが寂しい。僕は温かみを感じたい。
ということで今回はパターンを増やしてみる。
$text = ":bell: PUSHED INTO \`${branch}\` BRANCH!!!\n${text} ${message}\nちゃんとPushできて偉い!これは穏やかじゃない!";
を以下のように変更。
@rand_msg_list = (
'よしよし、偉いね!',
'お疲れ様~',
'これは穏やかじゃない!',
'少し休憩する?',
);
$rand_msg = splice @rand_msg_list,int(rand(@rand_msg_list)),1;
$text = ":bell: PUSHED INTO \`${branch}\` BRANCH!!!\n${text} ${message}\n".$rand_msg;
こんなふうに@rand_msg_listの中に言わせたい台詞を追加すればいい。
会社の同期とマスコットアプリ文化祭2017に参加しました。 unityroomにて公開していますのでよかったら遊んでみて下さいね。
今後もちまちま更新していく予定です。
今回は制作中に発生した問題とその反省についてだらだらと書いていきます。
Unity 2017
言わずもがな
Google Drive
ファイル共有
Skype
通話、リンク共有
ibisPaint X
画像の作成
Visual Studio 2015 Community
スクリプト記述
Visual Studio Code
上に同じ
Github
ソース管理
情報共有、まとめ
ここからは制作時の反省を
ファイル共有
ファイル共有は主にGoogleDriveにアップロードし、ファイルへのURLをSkypeで共有していた(ファイルアップロード→共有リンクを取得→SkypeにURLを共有→口頭で反映した旨を伝える)。
ファイル階層が深くないのはプロジェクト規模からわかっていたので、ファイルをアップロードする場所を予め決めておけばアップロード→口頭で伝えるだけで済む。
もしくはSkypeにそのままアップロードでもよかったはず。何故思いつかなかったのか。
プロジェクト管理方法
同じUnityプロジェクトを弄るので編集した箇所をメンバーと同期する必要があった。
2日目まではAssetをパッケージ化したもの等を上のファイル共有方法で反映していたが、流石に同期方法が面倒だと思ったので2日目のMTG後にgitで管理しようとこちらから持ちかけ、メンバーは承諾してくれた。
しかし自分のGitへの理解が足りず、Commitされていないファイルがあったり、Mergeを失敗してシーンを壊してしまうことが多々あった。
使い慣れないツール
自分は普段からプライベートでのプログラミングを会社のPCでやっている。 何故そんな面倒なことをしているのかといえば、自宅には3万円くらいのノートPCをモニターに出力しキーボードを外付けにしたものしか無いからである。 艦これすらまともにプレイできないので休日中のリモート対応やデジタルイラストを描いたりする程度にしか使っていない。
このことから自宅にはまともな開発環境が整っていない事を前提で話をしていく。
エディタ
2日目までVisual Studio 2015 Communityを使用していた(インストールされていた)。
しかし入力補完が効かないわ重いわでとにかく使いにくい。 普段はVisual Studio Codeを使用していたので自宅のPCにもインストールし拡張機能も会社PCと同じものを入れた。
マウス
自分はお気に入りのトラックボールマウスを持っているが、自宅PCは滅多に使わないので会社に持っていっていたのだ。 自宅ではキーボードを駆使しマウスが必要なところはペンタブで代用していた。
問題は突然起きる。EventTriggerのOnPointerDownが反応しない。 幸いにも事前に注文していたAmazonで購入したマウス(もちろん会社で使っているものと同じ)が届くことで事無きを得た。
使い慣れたツールが一番。あとちゃんとした性能のPCが欲しい。
役割分担
会社ではプログラマな自分、プランナーのメンバー。 メンバーから役割を反対にしてみようという提案をされ、自分は承諾した。
早速自分が要件やレイアウトを書き、メンバーはコア部分の作成をしていた。 その場では問題なく進みステージ選択シーン等を作成しながら、空いた時間に画像を作っていった。
問題が発生したのは2日目のMTG時、メンバーにUIの甘さを指摘され結局画像発注書を作らせてしまったのだ。 下手なプライドなんか捨てて最初からお願いしていればよかった。
完成後に打ち上げで、メンバーも「スクリプト関連は自分に任せればよかった」と同じように感じていたことを知る。
DOTween以外のアセットを使っていない
車輪の再発明は無駄。あるものは使おう。
他にも色々あったが、全部書くとキリが無いのでこの辺にしておこうと思う。
困難もあって大変だったけど楽しかったのでまた機会があれば反省を活かして円滑な開発をしたい。
僕はメンタルが弱いエンジニアだ。 バグを直したり機能を追加した時は感謝され、褒められたい。
メンタルが弱いエンジニアなのでコード1行書いただけで褒めて欲しい
— 男梅ぁぉRe;fire (@Gem_Knight_Ao) January 10, 2018
これは少し極端だが心情としてはこんなものである。 しかし現実は非情でありその程度で褒める人なんて居ない。 そう、"現実には"いないのである。 なら作ってしまえばいい。それがクリエイターだ。
以前よりGitのPushログをSlackに垂れ流すためにこちらの記事のhooksスクリプトを使わせていただいていた。 デフォルトだとカボチャの絵文字が通知してくれるだけなので、ちょっとだけ寂しいと思いつつ面倒なのでそのまま使っていた。 今回はこのhooksスクリプトを少しだけカスタマイズしてPushする度に褒めてもらおうという魂胆だ。
今回は褒めてくれる人が絵文字ではないのでカスタム絵文字を使用する。
こんな感じのものを作る。
次はhooksスクリプトを編集する。 my $icon = ':jack_o_lantern:';
を
my $icon = ':kiriya:';
こうだ。これでアイコンの変更は完了
スクリプト内に追記するだけ。
$text = ":bell: PUSHED INTO \`${branch}\` BRANCH!!!\n${text} ${message}";
を
$text = ":bell: PUSHED INTO \`${branch}\` BRANCH!!!\n${text} ${message}\nちゃんとPushできて偉い!これは穏やかじゃない!";
に変更する。
だがここで問題発生。日本語が文字化けしてしまう。 ファイルの文字コード等を変更してみたがダメだった。 おかしいと思い調べてみるとPerlはファイル内で文字コードの指定が必要らしい。
というわけで
package MyApp::Notifier::Base;
の下辺りに以下を追加。
use encoding "cp932";
binmode STDERR, ':encoding(cp932)';
これで完了。
Pushする度にあおい姐さんに褒めてもらえる pic.twitter.com/HR7KfGoQdM
— 男梅ぁぉRe;fire (@Gem_Knight_Ao) 2018年1月11日
こんな感じになる。穏やかじゃない!
良いエンジニアライフを!