mikan_daisuki’s blog

IT系サラリーマンの日記。前職ではスマホゲームを、現在はアプリを作ってます。



「あなたの中にはあなたの知らないあなたがいて」

やめられない不倫の味 - 村上さんのところ/村上春樹 期間限定公式サイト

 

僕は思うんですが、あなたの中にはあなたが知らないあなたがいて、その人が新しい体験を求めているのだと思います。あなたが悪いんじゃない。 

なんだか惹かれる文体。

そして、発想が、またステキ。

 

割と短い文章にも関わらず、

こんなにも気持ちよくて、

こんなにも使いたい表現があるのが、すごいな。ほんとに。

 

・僕は思うんですが、〜

・そんなわけで、

・ただ幸運を祈るだけ

・でもその責任はやはり引き受けなくてはいけない。

・シートベルトを締めて(みたいな比喩をさらっと)

 

せっかくはてなブログなのに読者になれないのは残念。

 

Unityでイラっとする7つのことと、その対処法を考える

f:id:mikan_daisuki:20150124105613j:plain

ほんと、Unityでゲーム開発をしてると、ちょいちょいイラっとする。
 
特に、始めて3ヶ月くらいは、怒りで頭がおかしくなりそうだった。
隣に座る新卒に怒り散らす日々だ。
 
ぼく「ねぇ、またアセットインポートで動かなくなっちゃったんだけどー」
新卒「うーん、まあしょうがないですねぇ。待つしかないです。」
ぼく「なんでこんな待たなきゃいけないんだよー!Webはよかったなぁ」
新卒「いやいや、Webとはモノの複雑さが違いますよ。」
ぼく「むむ・・・」
   

ってかんじ。

 

彼はぼくよりUnity歴が長いからか、なんともなさそう。

  

ぼくも半年ほどUnityと付き合ってきたので、
その気持ちは少しずつ薄れつつあるけど、
これは結構大事な気がするので、書いておこうと思う。
イラッとすることだけ書いてもアレなので、対処法も考えてまとめてみる。
 
ちなみに、正直な話、Unityが悪いのかはよくわかってない。
僕はずっとWeb屋だったので、そう言う人がUnity使ってゲームとか作ってると、イライラが止まらない、という話。
 
ざっとまとめると、下記の通り。
 
  1. アセットインポートに時間がかかりすぎる
  2. ビルドに時間かかりすぎ(よくやるのはiOS)
  3. アセットバンドルのビルドも時間かかる
  4. Switch Platformもやばい
  5. .metaファイル邪魔
  6. UI作るの面倒すぎ
  7. Monodevelopで日本語くらい使えるようにしてくれ

 

1.アセットインポートに時間がかかりすぎる

 

f:id:mikan_daisuki:20150123102249p:plain一番イラッとするのはコイツ。他の開発メンバーがテクスチャ(画像)を大量に更新すると、起動したときに延々と待たされる。下手すると、1時間くらい待つこともある。

 

対処法1 キャッシュサーバー(チームライセンスが必要)を導入する (?)

Unity - コラボレーション - Unity Team License

 

お金のある方はたぶんコレが良い。

Unityでは有料でキャッシュサーバーなるものを提供している。コレを使うと、一度インポートされたアセットはキャッシュされて他の開発メンバーもインポートせず使えるようになるらしい。

自分は使ったこと無いので、効果のほどは残念ながら不明、、

(使ったことある方教えてください・・・)

 

対処法2 自分が作業してない時間に自動で更新するようにcron設定

個人的にはコレをcron設定することで、ある程度満足している。


gist:3062ae6005c89c5baa28

 

これはMavericks向け。Yosemiteはこちらを見てください。


Mac Yosemiteでの外部からログインしてssh-agentを正しく使う方法

 他、参考にしたURL

 

2.ビルドに時間かかりすぎ(よくやるのはiOS)

ちょっとググってみたら仲間が!!

unity ios build 遅い - peroon's diary
 

全く同じソースなら一度ビルドすれば早くなるんだけど、更新するとどうしても遅くなる。

対処法1 (書いてて思ったけど)定期的にビルドする

さっき書いたのと一緒 笑

自PCでビルドして実機確認したいとき、というのはあると思うので、

その時間を短縮したい場合は、定期的にビルドしておくしかなさそう。

 

ぼくはただただ待っているだけですけどね!

今度試してみよっと。

 

対処法2 Jenkinsを導入する

f:id:mikan_daisuki:20150123114008p:plain

出典: Welcome to Jenkins CI! | Jenkins CI

 

対処法1は自PCを使う場合だけど、サーバーを立てて、Jenkinsで自動化する方法もよく使われているよう。


UnityのビルドをJenkins氏に任せて楽したい。 - ともち屋

 


Unity3D - Jenkinsさんでビルドしてスマホでの確認を楽ちんに - Qiita

 

ググって出てくるということは、結構やられている、という証拠。

3.アセットバンドルのビルドも時間かかる

てかアセットバンドルって何?て方はこちら。
 
1ファイル更新するだけで、全部作り直しちゃってるみたい。
コード読んでないけど、実装の問題かも。
 
対処法1 Jenkin (ry

時間かかるのは変わらないけど、別のマシンでやっといてくれるだけでだいぶ変わる。

対処法2 差分更新の実装に変える

こういうロジック入れると、更新判定のロジックが甘くて

「ビルドしたはずなのに、更新されないアセットがあるんですけど・・・」

とかなって、また大変かもしれないけど。

対処法3 指定のアセットのみ、ビルドできるようにする

書いてて思ったけど、これは入れるべき。

Unity社のDocumentにも、指定アセットでビルドするサンプルがあるし、

簡単にできそう。

http://docs-jp.unity3d.com/Documentation/Manual/BuildingAssetBundles.html

 

4.Switch Platformもやばい

f:id:mikan_daisuki:20150124095546p:plain

これですよ。この左下のボタン。

iOSからAndroidに切り替えよ、と思っておもむろにコイツを押すと、

f:id:mikan_daisuki:20150123102249p:plain

コイツがまた走って、全部インポートし直し、みたいな挙動になる。

めっちゃ時間かかって泣ける。

 

対処法1 Fast Platform Switch(有料)を使ってみる


Unity:プラットフォーム切り替えが遅い - ゲーム制作ブログ

 

こちらでも紹介されているが、結構早くなるらしい。

気になる方はコチラから。

https://www.assetstore.unity3d.com/jp/#!/content/11134

対処法2 リポジトリを2カ所に置いて、iOSAndroidで分けて使用する

コレが一番簡単で、無料だし困らないかも。

ぼくは、定期的にcronでリポジトリを最新にしてアセットインポートを実行してるので

起動が遅くて困ることもない。

works/myapp-ios

works/myapp-android

こんなかんじで分けてる。

 

(以降はただウザいだけなので対処法は割愛)

5..metaファイル邪魔

特に困るのはフォルダ。gitではフォルダを管理してないので、

一度フォルダが作られた後に中身が空になると、フォルダは行き場を失う。

フォルダに対しても.metaがあるので、ムダに.metaが生まれてウザい。

 

ファイルについても、コマンドラインでカジュアルにmvしたいけどできず、

mvした後一度起動し、.metaが移動・更新されるのを待って

リポジトリに取り込まなければならない。

6.UI作るの面倒すぎ

cssみたいに、margin, padding, width, height, floatとかで簡単に実装したい。

NGUIを使っているが、Anchorの挙動がウザい。

少なくともwidthとheightを入力するときは優先的に指定したいのに、

Anchor優先で勝手にwidth, heightが変わるから、ちゃんと指定できない。

Anchorでmarginを自分で考えていれないといけない。

最近は慣れたからいいけど、直感的でない気がする。

7.Monodevelopで日本語くらい使えるようにしてくれ

Unityのせいじゃないかもしれないけど、デフォルトで同梱されてるIDE
日本語入力対応してないって・・・(´・ω・`)ショボーン
しょぼーんだよ、ほんと。
 


痛Monodevelop - けいごのなんとか

 
ぼくはコレを使っている。Unity-chanいらんけど。
 
(追記)
ちなみに、Unityが嫌いな訳ではない。
イケてるとこもたくさんある。
今度は、感動したことを書いてみよう。
 

ベイマックス、王道だけど最高だった


『ベイマックス』Story/AI プロモーションビデオ - YouTube

 

いろんなシーンで笑えたし、最後は泣いた。

  • 主人公のヒロはヒーローなだけあって、観てて気持ちよかった
  • ベイマックス癒し系すぎる。かわゆす
  • 後半の展開も適度に意外性あっていい
  • ベイマックスのやさしさに涙。(作者タダシのやさしさも感動)

この品質の作品作れるって、楽しいだろうな。

「Team Geak」はエンジニア必読!

Team Geek ―Googleのギークたちはいかにしてチームを作るのか

Team Geek ―Googleのギークたちはいかにしてチームを作るのか



本書は、技術者向けのビジネス書だ。

技術者は、技術については熱心に勉強するが、
ビジネスマナーとか、チームビルディングとか、mtgの時間の使い方とか、
「組織のパフォーマンスを最大化させる」ことへの意識が欠けていがち。

意識はあったとしても、じゃあ何を勉強すればいいのかよくわからないことが多い。

そんな中で、本書は、割と具体的に、「こうすればいいよ」と勧めてくれる。


・批判をするのにも言い方がある
・チームメンバーを信頼し、尊敬するとはどういうことか

ということを、本書は間違いなく教えてくれる。

なぜ勉強しなきゃいけない?

「なぜ勉強しないといけないのか」という問いに対する本質的な解 - クソログ

この話になると、ぼくはいつも、懐かし某ドラマのこの人を思い出す。

f:id:mikan_daisuki:20150109225216j:plain
勉強はしなければならないというものではなく、したいと思うものです。
世の中には自分の知らないことが山ほどあります。”なぜ?”、”どうして?”、”もっと知りたい”といったような気持ちも持たず、自分の住んでいる世界のことすら知らなくて立派な人間になれると思ってるんですか?


女王の教室 DVD-BOX

女王の教室 DVD-BOX


Animatorを2Dモードで使う際のハマりポイント


Rigidbody 2DとApply Root Motionは併用できない - None.

 

チュートリアルにも、注意点として書いてあるwその前になんとかできないのかw

プレイヤーの移動

 

絶対ハマると思ったのでメモ。

Unityくらい複雑なプロダクトを作ってたら仕方ないのかもしれないが、

一エンジニアとして、こういうのを世界から無くしたい。

 

 

 

大統領の執事の涙

大統領の執事の涙 [Blu-ray]

大統領の執事の涙 [Blu-ray]

この歳になってようやく歴史が面白く感じるようになった。

この作品を通して、20世紀のアメリカの歴史をざっくり知ることができる。

観てて思ったのは、

  • ケネディキング牧師など、ビジョナリーだったけど一部の白人にとって都合の悪いことをした人が殺される、そういう世界に自分も生きている
  • 一方、世界は少しずつだが確実によくなってる。そういう良くするアクションをとれる勇気を自分のものにしたい
てこと。まずは会社からだけど。