【Advent Calender 2016】Milkcocoa + UnityWebGL

この記事は Milkcocoa Advent Calender 2016 18日目の記事です。

そろそろクリスマスなのに、
夏休みの課題のように、
最後の最後までコード1行も書いてませんでした!
当然な結果、進捗は全然ダメでした(/ω\)

とりあえず、ミルクココアでも飲んで落ち着こう。
f:id:kou_yeung:20161217171253j:plain

Milkcocoaとの出会い

2014年にMilkcocoaを知り、
javascript 数行だけでリアルタイム通信できることに驚きました。

その年にはTypeScriptという楽しみもあって、
PPAPのように ummm(ウーン)した結果
MilkcocoaとTypeScript を合体しました。

今年のお題はなんと Milkcocoa と UnityWebGLを合体してみた!!
(タイトルにはすでにバレてると思いますが・・・)

まずは成果物です

http://kou-yeung.mygamesonline.org/Milkcocoa/

もし、
画面上に赤いボックスがあったら、
それはあたなのプレイヤーオブジェクトです。
方向キーでボックスを動かせるぞ!!(それ以上のことができません)

もし、
画面上に白いボックスがあったら、
それは他のユーザだ。

もし、
その白いボックスが動いたとしたら
それはMilkcocoaのお陰だ。

もし、
何も表示されなかったら
おそらく[今日の配信メッセージ数]の上限を超えただけだ
明日またリトライしてください。

使い方

gist.github.com
Javascriptとそれほど変わりません。

ビルドできるプロジェクトはGitHubにアップしています

github.com

自分のプロジェクトに組み込みたい場合、
Assets/Plugins をコピーして使用してください。

最後に

二年ぶりMilkcocoaを使ってみてAPIもそれほど変わってないし、使いやすいです。
f:id:kou_yeung:20161218041500p:plain
にわかMilkcocoaユーザの私でも参加できますか?
楽しみにしてます(*'▽')

読みにくい文章ですが、
この記事で何か得られたら幸いです~

【C#】 Lazy<T> ( 遅延初期化 ) クラス

.NET4.0に追加された Lazy ( 遅延初期化 ) クラスをUnityで使いたいので書いた。
gist.github.com

追記

2016/12/02
string 型だと、パラメータ受け取らないコンストラクタがないため、
where T : new() を削除し、
上記修正とともに () => new T(); も () => default(T) にしました。

第9章 古く汚れた壁

進捗

2種類のテクスチャ(漆喰とレンガ)を用意して、
頂点カラー(Rチャンネル)によってブレンドする技法です

ブレンドした結果
f:id:kou_yeung:20160929022325p:plain
頂点カラー
f:id:kou_yeung:20160929022329p:plain

UE4にはVertex Paintツールがあって
結果を確認しながら頂点カラーを編集することができます。

Unityではこのような機能がなかったようなので
Blenderを使って編集しました。

第7章 岩

進捗
f:id:kou_yeung:20160927035023p:plain

ノーマルマップを2枚使ってブレンドする

オブジェクトノーマルマップ:メッシュの形状に沿ったノーマルマップ
ディテールノーマルマップ :表面の細かい凸凹を表示するためのノーマルマップ

ノード:BlendAngleCorrectedNormals

SSE では このノードがなかったため、

blog.selfshadow.com
www.jackcaron.com

上記のサイトを参考して組みました

第6章 レンガ

進捗

f:id:kou_yeung:20160926033738p:plain