imog

主にUnityとかの事を書いています

社内LT会に参加してきた

社内でLTやろうぜ!という流れができたので参加してきた。

お昼に行われるやつで、なんと1000円相当の弁当が出るコスパ高いLT大会だった。今回は牛たん御膳を選択。

僕は最近やってたUnityのでモッククライアントの実装など話していた。

speakerdeck.com

前回話したテストの延長で、通信が絡むユニットテストの解決方法を探すという感じのお話。 これはいずれ汎用的に使えるやつとして公開したいなーというお気持ち。

その他にもC++の黒魔術があったりとバラエティ豊かな発表だった。

www.slideshare.net

C++ => C プリプロセッサらしい。

全員基本的になんだかヤバそうなスキルを備えていて聞いてて飽きない話ばっかりだったので、こんな感じで表に出していけるような空気になっていけばいいなと思う。

試用期間が終わった

金曜日でちょうど三ヶ月だったので、無事に試用期間を終えることができたっぽい。

社内でやったこと

クライアント側の一部分にアーキテクチャ導入したり、テスト導入したり、その過程でDIツール入れたりなど。 割と開発基盤を整えていた感じある。 また、それとは別にふりかえりのファシリテートしたり、動きやすくするためのチームビルディングなどやっていた。 チームビルディングと敢えて言う内容でもなかったりするけど、行動に名前を付けることは大事なのでそう呼んでいる。

あと臨時会議室作るとかしてた

www.instagram.com

BARいも焼酎、席替えに伴いだいぶ土地を減らされました。

割と前職で得た知識や経験がそのまま適用できているので、業界関係なくエンジニアリングは大事だなあと感じた。特に人の巻き込み方に関してはそれはもうパクりまくっている。

最近はとりあえず考えてること全部垂れ流そうということでいもスレというスレッドを開発チャンネルに作ってる

https://i.gyazo.com/29cdb17fd4b211341a65b50c51cdeaef.png

コメントはないけど絵文字だけは付くので見てるんだと信じてる。

一方で、結構新しい概念や技術を立て続けに導入したため別の問題も発生しているので、それはそれで別途解決しないといけなさそう。今後優先する課題であった。

社外でやったこと

Gotanda.unityは定期的に登壇したりしてる。3月はZenjectのテストについて話してた。

speakerdeck.com

入社3日目にして社名を間違える失態を犯したけど無事試用期間終わりました。

あと、「Unityテスト完全に理解した」という勉強会の会場提供したり発表したりしていた。

connpass.com

僕はテストを導入した話をやっとりました。

speakerdeck.com

#Unityテスト理解した ハッシュタグがトレンド2位まで上がってたので驚いたのとともに、やっぱみんな気になってたんやな・・という気持ちになった。 懇親会でも、導入したいけどできなかったとか、一人で頑張ったけど燃え尽きたなど様々な苦労話を聞いたり。何か参考になればよさそう。

第二回やるときは是非とも各所で運用されているゲームの人たちに登壇してほしい。ほんと。

これからやること

有給が発生したので活用してぽん酒館行きたい

ponshukan-niigata.com

ボイストレーニングを始めた

突然のボイトレを始めた

なぜ

最近歌ってないなと思いカラオケに行ったら歌が下手になっていた。

でも冷静に考えたら普段仕事で歌ってるわけでもないし日頃トレーニングしてるわけでもないから、下がりこそすれ上がることは永遠にないことに気づいた。

歌うのは好きなのでそれは嫌だなあと思い何かしら動くことにした。

教室が近くにあることはわかったが、直近だと時間とお値段がつらいので断念。 その代わりamazonで好評だった本に倣って練習している

https://www.amazon.co.jp/gp/product/4905084180/

いずれはスタジオ行きたい

なにしている

本自体はCDの説明に沿って1日30分くらいのトレーニングだけ。 まだ一週間なので特に変化はないが、根気よく続けていくことにする。

あと、今までやってこなかったけど自分の声を録音して聴くようになった。 するとそこでようやく自分の音がやや低くずれていることに気づいた。やっと改善のための分かりやすい材料が出てきた。やったぜ。

翌日もう一度録音して少しずつ調整をかけていってそれっぽくなってきた。 何事においてもふりかえりは大事であることを改めて認識させられた。

それ以降、通勤時は録音した自分の声を聴くようにした。万が一イヤホンが外れたら自分の声を聴き続けるナルシストエンジニアと認識されるリスクを背負いながら僕は働いている。

ちなみに練習時の曲は聖飢魔Ⅱの「荒涼たる新世界」です

www.youtube.com

みなさんカラオケに行きましょう

GWふりかえり

大洗帰省

心の故郷である大洗に帰省した

www.instagram.com

www.instagram.com

いつも日帰りだったので今回は一泊二日にしたところ、みんなで帰りを気にせず飲めるので最高だった。ドルフィンで酒を飲み知らない人と一緒に「ジョジョ ~その血の運命~」をデュエットして、翌日はレンタサイクルで大洗を駆け回り非常に充実していた。そろそろまた行きたい。

MMBAR

メタルマックスに出てきた料理を食べながらメタルマックスについて語るイベントがあったので行ってきた。

twipla.jp

前職でも現職でもメタルマックスの話題は誰も伝わらないので10年分くらい喋った気がする。

あと、アリとアリの卵を使ったオムレツを食べた。 www.instagram.com

桜えびの味がした。

ノアフェス勉強会

友人に連れられてノアフェスと呼ばれるイベントの事前勉強会的なのに参加してきた。

noahfes.jp

ノベル&アドベンチャーゲームの祭典らしい。同人やインディーゲーム開発においてノベルやアドベンチャーってあまりプログラマというのを見かけないイメージがあり、案の定プログラマはほとんどいなかった。しかしプランナーやシナリオライター側の発表はあまり聞いたことがなかったのでそれはそれで新鮮で楽しかった。 ノベルやアドベンチャーは観測している範囲だと吉里吉里やティラノエディタをベースに作るのが主流なので、他のジャンルとはまた違った空気感なのかもしれない。

輝夜月にハマる

VTuberはもともと知ってたけど、輝夜月のShowroom生放送を観たらドハマりしてしまった。投げ銭すると即時にからあげやタライが降ってきたり1万円で竹がにょきにょき生えてくるのは絶対テンション上がる。承認欲求が満たされていく。 そのまま委員長の放送見始めたのでその勢いは留まるところを知らない。

割とGW満喫したので明日から一般社会人に戻ります。 ちなみに明日からUniteですが、僕は三日間終日参加しているので気軽にお声がけください。

events.unity3d.jp

当日はUnityできますよTシャツが目印です。

28歳になった

友人からプレゼントが届いたのでじっくり読ませていただきます

誕生日である本日は18本入り550円の焼き鳥パックとスーパードライを捕食しながらSkypeで雑談をしていました。ちなみに去年は家を買うために奔走していました。

秋口の両親の病気から始まり将来を考え始め色々動き回った年でした。選択が正しかったかはわかりませんが動き続けるしかないなあというお気持ちですね。

新しい職場はまだ一週間ほどですが、今までやったことない部分に触れる機会があるのは楽しいです。GC走らないようにチューニングするとかチート対策とかは中々個人ではやらなかったので。 あと趣味でやってたUnityもそれなりに役に立っています。チームの人がチリチリ好きなのもポイントです。

仕事に慣れつつ、引き続き勉強会とかブログでのアウトプットは続けて行きたいところ。 最近はGodotEngineも楽しいのでそっちで勉強会も楽しそうですね。

Godot Engine - Free and open source 2D and 3D game engine

例のアレ貼っておきますのでみなさんそこんところよろしくお願い申し上げます

http://amzn.asia/iuzBsta

GodotEngineのsignalのメモ

最近趣味でGodotEngineを触り始めている。

Godot Engine - Free and open source 2D and 3D game engine

新しい単語や概念が多いので、とりあえず備忘録として。 とにかく日本語の資料が少ない。

signalとは

文字通り信号を送る機能。

http://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/gdscript_basics.html#signals

Godotではあらゆるイベントが発生した際にそれを通知するための仕組みがあり、それをシグナルと呼んでいる。

例えば衝突判定を扱うCollisionObject2Dは、3つのシグナルが存在している。

image

input_event mouse_entered mouse_exited は同名のメソッドをスクリプトで書いたら勝手にコールバックとして呼ばれる。 Unityで言うOnCollisionほげほげメソッドを実装する感覚に近い。

そしてこのシグナルは、自分で定義して通知することができる。

シグナルを自作する

例えば以下を考えてみる

  • Ankouノードは、任意のタイミングで「戦車前進」の通知を飛ばす
  • Kameノードは、「戦車前進」の通知が来たら何かする

image

Ankouはシグナルを通知する側なのでこんな感じで書く

extends Node

# 自作シグナル
signal panzer_vor

func _ready():
    # 自身の panzer_vor シグナルを受けとったら _on_panzer_vor にコールバック
    connect("panzer_vor", self, "_on_panzer_vor")
    # シグナルを送信する
    emit_signal("panzer_vor")
    
func _on_panzer_vor():
    print("Go Ankou")

やることは以下の三つ。

  • シグナルの定義
  • シグナルを受け取れるよう接続
  • シグナルの送信

自作シグナルは signal hoge で定義。 それを受け取れるよう connect でシグナル名、受け取るオブジェクト、コールバック先を書く。最後に emit_signal で送信する。

この時点でエディタ上で panzer_vor シグナルが見えるようになる。

image

Kameさんノードはシグナルを受け取るためにAnkouと接続する必要があるが、それ以外は何も変わらない。

extends Node

func _ready():
    var ankou_node = $Ankou
    ankou_node.connect("panzer_vor", self, "_on_panzer_vor")

func _on_panzer_vor():
   print("Go Kame")

通知を受け取るのをやめる場合、disconnect メソッドを呼ぶと終了できる。

一度Connectしたものを再度Connectしようとするとデバッガでエラーが発生するがゲームは落ちない。

基本的にノード同士のやりとりはシグナルでやったほうが楽そう。

GUI上でシグナルを受け取る

上記connect に相当する部分はGUI上でも定義できる。

image

ここをダブルクリックするとウィンドウが出てくる

image

ノードを指定してコールバックメソッド名を書く。Make FunctionオプションをONにしたらメソッドを生成までやってくれる。

image

適切に設定完了すると、GUI上でコールバック先まで確認できるようになる。

動的に設定しないのであれば、ここで書いてしまった方がわかりやすいかもしれない。

Godotユーザ増えてほしい

実家に帰省している

だいたい以下のことをしていた

 

・家の草むしり

・前職に挨拶

・酒を飲む

・実家のカラオケ喫茶の掃除

・家族と飲む

 

あと1週間ほど滞在するけど、基本のサイクル変わらなそう。

 

高校時代は奨学金を借りてたんだけど、それの完済の通知が実家に来ててテンション上がった。あとは大学のみだ。

 

母から「仕事を楽しくできないなら人生は楽しくない、日頃から考えよう」と言われてあー血が繋がってるなと思った。

 

実家にはインターネットがないので人と会話する以外の娯楽がないんだけど、これはこれでいいものです。