もんりぃ is undefined.

育児ネタとか、技術ネタとか。

Unity Case-Study / AssetBundle 化している要素の一部が実機で動作しない

TL; DR

  • Strip Engine Code の作用により、一部の UnityEngine ネームスペース配下のクラスが含まれなくなった。
  • il2cpp を用いたビルドであり、かつ Scene や Prefab を AssetBundle 化している場合に発生する。
  • link.xml 書くのが手っ取り早いかな?

現象

  • ビルドしたアプリで、当たり判定が効かない!という事象が発生。
  • クラッシュすることはないのに、兎に角 BoxCollider2D がウンともスンとも言わない。
  • 実機ログ見てみたら「Could not produce class with ID 61」と出ている。

原因

  • Strip Engine Code という機能により、ビルド対象の Asset や Script から直接参照されていないクラスが除去されたコトが原因でした。
  • BoxCollider2D の他にも、SpriteRenderer とか ParticleRenderer なんかも該当していました。

対応

  • テラシュールブログさんの記事でも言及しているように、スクリプトから参照させたり link.xml 書いたりするのがヨサソウです。
  • 私は link.xml を書く方法で行きました。
    • エラーログに出てくる Class ID を元に Class ID 一覧 からクラス名を割り出し、UnityEngine. から始まる完全修飾クラス名を記載する感じです。

所感

  • この手の「実機でしか起きない」系の問題の原因究明は、「あ、これ○○のサイトで見たことあるなぁ…。」とか「前もハマったことあるぞ!」みたいな経験則に頼りがちなので、どうにかしたいですね…。
  • こうやって、地道に Case-Study を書いて知見を溜めていくのが今のところの最適解なのかな?と思っています。

リモートワーク Rev.6 / 進捗ダメです

所感

  • リモートワークに適したタスクとそうではないタスクを見極めねば。
  • 安定のビルドおじさん業を早く脱したい!!!

KPT

Keep

  • 働きすぎる問題は回避したかも。
    • 夕飯で切り替えられるのは大きいなぁ。
    • ちょっと残業しちゃったけど、それも無くしていきたい構え。
  • 家族との…(ry
    • 大事なことなので何度でも書きますw
  • かなり眠れた。
    • 普段より3時間近く早めに眠りに就けた。
    • 肉体的な疲労は結構回復できた感じがする。

Problem

  • 腰痛ヤバい。
    • 書斎のデスクが長時間座ることに適していないコトに今更ながら気付く。
    • やっぱ、書斎のレイアウト変えないと深刻なコトになりそう。
  • 進捗ダメです。
    • 今回はビルド系のタスクがメインだった。
    • どうしても集中力に隙間が出来てしまうので、折角のリモートワークで集中できる状況を活かしきれなかった。

Try

  • 書斎のレイアウト変更。
    • 先ずは大量の漫画をどうにかするところからだな…。
    • 今度の3連休で手を付け始めよう。
  • 曜日に拘らず、タスクとして最大効率が発揮できる時にやるべきかも。
    • 「必ず木曜日!」みたいに決めていたワケではなかったが、何となくそうなっていた感がある。

「家族」に対する考え方

はじめに

この記事はmonry の個人的な意見を載せているだけであり、考え方を押しつけるモノではありません。

経緯

今日 (2017/09/10) は二子玉川の玉川高島屋に行きました。
日曜の昼過ぎなので、当たり前だけど家族連れ多いですねw
メインの目的としては、娘の靴がそろそろサイズアウトしそうなので、サイズ測定して新調したかった次第です。

で、目的のお店に着いたら、お店の周りに同じくらいの世代の家族連れがわんさか居て、サイズ測定に30分以上順番待ちするという状態でした。
でまぁ、娘も寝てたし、これはゆっくり考え事をする機会だな、とか思って色々と思案にふけっていました。
んで、ちょっと前に奥さんが「専業主婦だから、お金を使うことにチョット抵抗がある。」というような趣旨の話をしていて、そのときは「んなの気にしなくて良いんだよ〜。」くらいの返ししか出来なかったコトを思い出しました。

本題

その奥さんとの会話について、ゆっくりと考えてみたところ、私の中で 家族 ≒ 会社組織という結論に至りました。

その結論に至った思考のプロセスとしては、以下のようなモノです。

  • 私が外 (たまに自宅だけど) で仕事をしている間、奥さんは家のことを守ってくれたり、育児をしたりしてくれている。
  • その安心があるからこそ、私自身は「自分」という資産を価値に変換してお金を稼ぐことができている。
  • これは、「営業さんが外で商品を売ってくる」「開発が内で商品を開発する」という構図にとても近い。
    • これで言うと、「私 = 営業」「奥さん = 開発」ですね。
    • もっと言うと、奥さんは「経理」とか「総務」的なこともやってくれているけど、論点がずれるので言及しませんw
  • というコトは、私が稼いだ給与というのは我が家にとっての売上であり、それを消費することは経費を使うことと変わりない。
    • 資産計上して〜とか、減価償却が〜とか、そういう細かいのは抜きにしてw

ココでもし、奥さんが経費を使うことをためらってしまった場合、我が家の売上を増やすためのサイクルが停滞してしまいます。
それが家事のための経費であっても、育児のための経費であっても、或いは奥さん自身の美容とかファッションのための経費であっても、論理は同じだと思っています。
美味しいご飯が食べられれば毎日の活力になるし、娘がすくすく育ってくれれば「よーし、パパ頑張って稼いじゃうぞ〜!」ってなるし、奥さん自身の QoL が高ければ家庭が常に明るくなってやっぱり「愛する奥さんのためにも頑張っちゃうぞ〜!」ってなるし。
(勿論、限度というモノはあるし、不必要なモノを買うのはためらうべきだと思うけど。)

じゃあ共働きの家庭はどうなんだ?と言うと、それは会社としてのリソース配分が我が家とは異なっているだけで、本質は同じだと思います。
営業さんを厚めに配置して、一部の業務をアウトソースしていると思えば同じですよね。

何れにしても、「職に貴賤なし」というように、家族という共同体の中で立場による貴賤なんて発生し得なくて、どちらかが負い目や引け目を感じる必要なんてこれっぽっちも無いのだと思います。
勿論、共同体を維持・発展させるための行動をしているコトが大前提にはなりますが。

まとめ?

今まで漠然と思っていた「家族」に対する考え方を、少し具体的に言語化できた気がしたのでブログに残してみました。
次またそういう話になったときには、奥さんに「「家族」という共同体として、一緒に稼いだお金なんだよ」というコトを伝えたいなぁ、と思います。
また、奥さんが「仕事復帰したい」と言うのであれば、我が家のリソース配分を再調整するなどして前向きな選択をし続けていきたいと思います。

リモートワーク Rev.5 / 💤

所感

KPT

K

  • いつも通り、家族との時間は多かった。
    • 「そろそろ晩御飯だよー」と声を掛けに来た妻に付いてきた娘が嬉しそうに駆け寄ってくれたのには、ひたすら萌えた 😍
  • 娘のお昼寝の隙に、妻が買い物に行きオレがリビングで仕事するなど、娘から目を離す用事をこなすことができるのは大きい。

P

  • とにかく眠かった。
    • オフィス出勤時は、通勤時間に覚醒してそのまま一日持つって感じだったのかも。
    • ヘタに眠い状態でダラダラやるよりは、諦めて寝ちゃった方がヨサソウ。
  • 相変わらず働きすぎる。
    • そもそも夜の方が集中できてしまいがちなので、それを何とかしないとなぁ…。
  • 相変わらず腰が痛い。

T

  • 眠いときはいっそシエスタを設けてしまうのもありかも
    • 勤怠ちゃんと付ければ手段としては有効か。
  • 椅子の可動域を広くしないと腰のダメージがヤバそうなので、部屋を片付ける。
    • まぁ、リモート関係なく片付けろよって話だが。

「Gotanda.unity #2 in タノシム株式会社」にて登壇してきました

所感

  • 思っていたよりもウケました!
  • 発表後の懇親会での反応や Twitter でも反響があって、自分が思っていた以上の需要があることが判明しました。

喋ったこと

  • speakerdeck.com
  • npm を使った Unity プロジェクトの分散開発のお話をしてきました。
  • Unity のプロジェクトを分割して開発して、最終的に1つのプロジェクトとして纏めるにはどうするのか?といった内容です。

得られたこと

  • 懇親会で、ボクよりもさらに1年以上 Unity 歴が長い人ですら、ボクと同じような悩みを持っていた。
  • ちゃんとアウトプットしたことで、「ちゃんと需要があるんだ!」という気づきを得られました。
    • アウトプット大事。
  • プロジェクトマージの仕組みもかなり需要がありそうだったので、正式に umm の仕組みとして取り込んでも大丈夫そう。
  • Twitter での反応でドキュメントの必要性を痛感できたので、勢いで git リポジトリを作って README を書けた。

今後の展望

  • サブプロジェクト用のテンプレートリポジトリを作成する。
  • サブプロジェクトに関するドキュメントを纏める。

リモートワーク Rev.4 / 即時アウトプット

はじめに

  • 2017/08/31 (Thu) は4回目のリモートワークでした。
    • なんやかんやあって、まとめが遅くなってしまった。
    • 記憶がフレッシュなウチに纏めないとなぁ…。
  • いつも通り?セルフ KPT してみます。

KPT

Keep

  • 自身の仕事の仕方に関する変化を感じられた。
    • 他人の目がないからこそ Yak Shaving を防ごうという意識が働いた。
    • オフィスワークの時は、実情は別として「誰かが諫めてくれる」的な思考が働いているのかも?
  • 朝一に降ってきたアイディアを即アウトプットできた。
    • これは、リモートワークならではのヨサだと感じる。
    • 通勤電車の中で降ってきたアイディアは揮発性が高く、着想→実装→検証のイテレーションを回しにくいと思っているので、即実装に着手できるのは非常に大きいメリットだった。

Problem

  • 相変わらず働き過ぎた。
    • 開発のフェーズ的に、ある程度仕方ないと思ってはいるが…。
    • 昼食や夕食で、家族との時間はちゃんと確保できていたり、家事も分担できているので、そういう面では Keep の要素かも。
  • 後日、非リモートのディレクターさんと飲む機会があり話をしたのだが、やはり「物事を頼みづらい空気」があるらしい。
    • これは早急に何とかしないとダメだな。
    • 「ポジティブなリモートワークである」コトは理解していただいているようなので、「物理的な距離 = 精神的な距離」とならないような方策を練りたい。

Try

  • リモートワーク時の心理的距離を縮める方法を皆で考える。
    • これは、リモートワーカー側だけで考えるとダメかな?と思う。
  • 定期的に席を立つ。
    • 集中しすぎるとトイレにすら行かないという悪癖?が出てしまい、若干腰を痛めてしまったので TimeTimer の導入も含めて考える。

まとめ

  • 得られたことが多かった!
  • 相変わらず働き過ぎたが、まぁ今は仕方ない…か?

「Unity 夏LT大会 2017」にて登壇してきました

所感

  • やっぱ、皆さんレベル高いなぁ…。と痛感。
  • オレも負けずにアウトプットし続けねば!

喋ったこと

  • https://speakerdeck.com/monry/umm-falsegoshao-jie
  • umm という Unity 向けのモジュール管理システムについて語ってきました。
  • 正式にリリース?してから初めての発表となりました。
  • 興味ある人は、スライドを見ていただくとして、概要としては「npm を使った Unity アセットの依存管理システム」というお話です。

得られたこと

  • LT 後に話し掛けていただいた方との会話から、無理に npmjs.com に publish しなくても良いんじゃないか?というコトに気付きました。
    • 普通に GitHub のリビジョンなりタグなりを参照すれば良かったのではないか、と。
    • しかも、本質的には C# のコードとかがメインになるので npmjs.com 的に如何なモノか?という問題点もあるし。
  • ボクの後に Unity Technologies Japan の安藤さんが LT をされて、「実は公式で用意が始まってるんです…。」という衝撃のオチがw
    • しかも、使う仕組みも同じというwww
    • まぁ、まだ公式パッケージしかサポートしないらしいので、暫くは利用価値があるかな…?

今後の展望

  • 先ずはとっととドキュメントを作る。
  • サブプロジェクト参照を公式にサポートする。
    • この辺についてもドキュメント化せねば。