グラフィックスとか数学…etc

勉強したことのまとめを書きます~.Qiitaはこちら→http://qiita.com/muripo_life

4次元コンテンツ出展の仕事の分担など…

この記事は、数学カフェ_4次元コンテンツ出展の記録 Advent Calendar 2016 の、18日目の記事です。

概要

この記事は、2016年11月3-6日に開催されたサイエンスアゴラに数学カフェ出展した記録の一つです。

企画はこれ、 4次元を見てみよう ~情報技術で描く数学の未来~

この記事では主に全体の流れについて書きます。

目次

  1. 情報共有が難しい
  2. 役割分担
  3. その他
  4. 総括
  5. 反省、これ使っとけばよかった…

情報共有が難しい

当初は、FBメッセンジャーで連絡を取っていましたが…

見逃される過去のやり取りを辿りづらいで、始まって当初で、slackを導入しました。

参考:勉強会を継続するための tips

← あ、slakの効能の話は、数学カフェの中の人が、綺麗にまとめてくれているので、ご参照くださいw

でも、LINEみたいにみんな反応してくれない…

やっぱり、浸透するのに、時間がかかります。

Slackの利点

  • channel(話題後の掲示板)機能がある
  • 過去のログを辿りやすい
  • ピン止め便利
  • 他のアプリとの共有が早い

異業種の方が多いので、価値観の共有が難しい。

節に感じました。

そして、皆さんにはSlackや開発側では、GitHubなど、だいぶ無理をさせてしまったと思います。

役割分担

今回の企画で、重要なのは、VRの出展をすることです。

そして、お子さんも参加されるイベントという事で、安全面など、割と心配でした。

メイン開発の流れ

今回の要となる開発サイドは、数学的な理論をわかる人と、コーディングがバリバリ出来る人が必要なわけです。

両方できる賢者なんて、世の中ほぼいません…

という事により、以下の様な開発をしました。

  1. 4次元のメインコンテンツの部分を開発する。
  2. UIなどのモックを作成
  3. 結合
  4. 4次元のコンテンツをブラッシュアップ
  5. UIの仕上げ
  6. マージ

普通の開発ですが…

最後に一辺に結合をするとやばいのが見え見え多だったので、こまめにマージしていただきました。

GitHubで開発をしておりました。(特にワークフローは意識をしませんでしたが、各々がそれぞれslackで情報共有していた感じでした。)

副コンテンツ開発の流れ

と2コンテンツを作成しました。

タブレットアプリ

エンジニア1名でメインコンテンツをもとにジャイロセンサーインタラクティブに動作するコンテンツを作成

ハコスコアプリ

エンジニア3名→UnityのAssetストアに八胞体アセットをもとに作成

HMDを体験できない方(6-12歳)や、メインコンテンツに不備があったときにの為に作成

直前に、エンジニア二名で、開発しもらい前日に、ビルドを通すという感じでした。

当日スタッフ

  • 理論がわかる人
  • バイスのメンテが出来るエンジニア
  • 接客(全体)
  • 接客(お子様対応)

理論担当

理論の説明は、基本的に二名で、担当。

主に理論の説明を行っていただきました。

VR体験担当

エンジニア3名体制で担当

シフト制で、時間区切りで、メインコンテンツの体験をしていただきました。

接客担当

  • 客の呼び込み
  • VR体験コンテンツの予約待ちの調整
  • 児童の対応
  • 副コンテンツの体験 をやっていただきました。

その他

広報サイド

こちらは、チラシ作りや当初のコンセプトを伝えるのが大変そうでした。

4次元をどうVRで表現するのか?

まず、4次元の前にVRって何よ?

ってことを考慮し、どう書けば伝わるかを事前に会議を重ねて、作成しました。

会計

こちらの方は、関与していないので、後日のアドベントカレンダーを参照ください。

開発場所の確保

開発場所は当初、様々なコワーキングスペースを使用していましたが、10月の頭から、HMDの環境をそろえているという事で、みらい研究所にお世話になりました。

総括

個人的に、今回のような科学技術系のコンテンツの出展には以下のような課題があげられます。 1. 研究サイドと開発サイドの共有をこまめにする 1. 開発場所の環境は、あらかじめ決めておく。 1. 当日の出展に、児童への安全面を考える がキモだったと思います。

反省、これやっとけばよかった…

Trello

Trello 進捗管理です。

slackに慣れていない中、これ導入するのどうよ?

と思う方も多いと思いますが…

この進捗管理ツールは、使いやすい!

ということで、次回からつい買います。

ツールのレクチャー会

忙しい中では、ありますが…

などなど、連絡手段が、開発サイドの軽いレクチャー会は、しっかりやっておくべきだと思いました。

イベントの雰囲気をもってと調べる

サイエンスアゴラというイベントを今回は初めて知った方が多かったので、去年の出展者や参加者に話を聞いておくべきでした!

個人的に、驚いたのは、「日本語が喋れない方が来る可能性があるから、外国語が出来る人の対応は考えた方がいい!」という、意見がSlackで上がり、「そんな大げさなw」と思っていたら、ほんとに日本語喋れない外国の方が割ときて驚きました。

明日は、僕が引き続き、ハコスコのビルドのハマりどころとか書きますw

ちゃんおぎの今年のさいたまげーむす活動報告

この記事はさいたまげーむすAdvent Calendar 2016の2日目です。

どうも、ちゃんおぎです。

今年のはじめからとまった技術ブログをいい加減、再開しようとおもいます。

早いものですが、今年一年のさいたまげーむすでの個人の活動報告をしようと思います。

  1. ATND募集など運営遍歴
  2. コミケの出展を手伝う
  3. ETC

ATND募集など運営遍歴

毎週、土曜のもくもく会を定例化

今まで、FBでのみの募集でしたが… 人数が不確定と初めて参加の人を呼びにくいと思い、責任者(のぶとら)に「どうしましょうか?」と相談したところATND募集で一本化することになりました。

イベントを毎週開催するときの難点

監督者を決める!

今までは、イベント自体、責任者か運営メンバーが常駐(当時3人)でしたが…

首が回らなくなってきたので、顔を出せそうなメンバーを募集し、運営の体制を強化

監督者を出すことに何度か厳しいことがありましたが…

今のところ、ほぼ休みなしで続けております。

6月にslack導入

所感などは誰かが書いてくれるはず…

6月にfbのグループでは、連絡が取りずらいと感じ、slackを導入してみました。

当初は、閑古鳥が鳴く状態なのでしたが、Channelの概念などを覚えてくれて次第に連絡が活発になりました。

グループの募集もslackで割と定着しております。

とりあえず、slack連携

10月までで、皆さんがとりあえず、slackになれてくれたので、アプリ連携を始めました。

  • Trello連携
  • GithubやBitbucketとの連携

今まで、プロジェクトやタスクの管理で、情報伝達に齟齬が発生しやすかったので、trelloを導入、ただいま、メンバーに慣らし中

と言った感じで、最近、開発に向けての組織の環境が整ってきた最近です。

コミケの出展を手伝う

7月にコミケが出展してきました。

出展したと言っても、僕は制作物の体験とレビュー、当日の出展しか、手伝っていませんが…

初めてのコミケが出店という…

なんとも珍しい体験をしてきました。

詳しくは、出展者が書いてくれるはず!

ETC

もくもく会ハッカソンでつかりかけのものばかり増えている最近です。

やべ、今年何もアプリリリースしてね…

遅くなりましたが、GGJ2016に参加してきました。

全世界最大規模のゲーム開発イベント

Home | Global Game Jam®

だそうです。

Global Game Jam

会場:ドワンゴ会場@東銀座

チーム名:さくりふぁいす学園生徒会

ゲーム名:さくりふぁいす学園 ~Sacrifice Academy~

Sacrifice Academy | Global Game Jam®

1日目:チームビルディング

受付を済ませるとすでに、メンツが3人ほどいた。(GGJはチーム参加を受け付けておらず、事前に運営側によりメンバーを振りかけられる。)

で、始まりチームビルディング…

今年の、お題は「RITUAL」でした。

で、僕のチームは、マインドマップを書いて、出てきた単語を整理、その中から目につく単語をピックアップして、物語や世界観っていきました。

で、「RITUAL」→「生贄」、「儀式」、「学校」などの単語から以上のゲームとなりました。

そして、タスクの割り振りへ

ちなみに僕は、エンジニア兼リーダ兼雑用(主にこれ)といった感じで…

2日目

開発へ入る

まず、Unityで、androidの環境を整備しようとSDKが認識されず?

なぜだ?ということを原因究明で半日使う…

結局Unityのバージョンをあげる時に問題があったらしく、もう一度Unityをアップデートし直したら解消される。

そして、ようやく開発へ

AIロジックを書くことに…

全くAIロジックを書いたことがなく…

夜同士考えるも詰む…

3日目

詰んだまま、最低限のロジックだけ書いて終わってしまう…

感想

力のなさを思い知りました。 そして、エンジニアの方やデザイナー、サウンドの方にとても助けていただきました。

近々、AI本読みたい…

www.amazon.co.jp

もっと力をつけたいです!

ということで、HackDayに向けて引き続き精進しようと思います。

ニート期に何をしていたのか?

ま~今回は経歴上、穴はないのですが…

はや、50日ぶりの出勤です。

今日は、無職期に何をしていたのか?

を書こうと思います。

  1. DirectXをひたすら勉強してた
  2. Android Studioの勉強もやろうにも進まなかった…
  3. とりあえず、ハッカソンと勉強会に片っ端から出ていた。
  4. さいたまげーむすの活動をしていた
  5. いまさらながらブログに解析ツールを入れて、アフリエイト広告を張ってみた。
  6. お手製のブログを立てようとサーバーからAWSの勉強を今一度していた。

DirectXをひたすら勉強してた

とりあえず、「MS、F○CK」という言葉しか出てこなかった…

なんで、DirectX9では動作したのに…

今回は、DirextX11でコンパイルが全く通らず…

3Dモデルを作ろうにも…

Blender使えず…

詰む…

2週間ほどストレスを溜めたあとでググりまくって気づく…

VisualStudio2015で対応してない…

もう環境を整えるのに嫌になりました。

というか、もっとハードとズブズブの関係になりたいと思いました。

なので、今年は、少しハードの勉強の記事を読もうと思いました!

絶対する!

毎日、とりあえず来月はアセンブリ教科月間にしよう。

ちなみに今月は、WebGL強化月間である。

Android Studioの勉強もやろうにも進まなかった…

DirectXのデモが出来なかったので、気分を変えてAndroidopenGLをやろって本を買いやるも… 対応がEclipse… ANdroidStudioで移植するのに怠い… 進捗なし… Androidの開発は仕事で触れるはず…

とりあえず、ハッカソンと勉強会に片っ端から出ていた

これは、中々充実していました。

中でも、ハッカソンの二つとUnity 5.3 & Web GL/HTML5 セミナー

gakusyucho.hatenablog.com

gakusyucho.hatenablog.com

gakusyucho.hatenablog.com

中でもUnity 5.3 & Web GL/HTML5 セミナーはWebAssemblyにとてつもなく興味が出てきたため、今月はWebGLとWebAssemblyの勉強をしようと思っていている次第である。

さいたまげーむすの活動をしていた

勉強会の布教などをしていました。

ちなみに毎週もくもく会をATNDにあげることにして、Unityからも援助を頂き、Unity県人会議にも参加することにしました。

atnd.org

kenjin.unity3d.jp

いまさらながらブログに解析ツールを入れて、アフリエイト広告を張ってみた。

その名のとおりです。

今更やっています。近々、はてなブログの3つ作れる日記の3つ目を「奨学金返済と親への仕送りを稼ぐ」ブログをはじめようかなと思います。

アフリエイトなど広告収入やWebやアプリの制作で奨学金の返済と親への仕送りを賄うことを目的として、いろいろチャレンジしていこうと思います。(マルチなど危ない商売には手は出さないのでご安心を!)

お手製のブログを立てようとサーバーからAWSの勉強を今一度していた。

そのブログ開設のためと夏のnodeの勉強の時に、挫折したAWSの勉強を再開しています。 目指せ1月中に公開!

てなことで、今年もやりたいこと満載で過ごしていこうと思います。

第1回サイタマソンに参加してきました

サイタマソンのウェブサイトへようこそ! - Home

第1回サイタマソンに参加してきました。

開催日:12/30(日) 場所:ホワイトホール株式会社

題材「なんでもいい」

タイムスケジュール
13:00-14:00 自己紹介
14:00-19:00 ハック
19:00-23:00 発表&懇親会

僕がやったこと

2.5LifeGameの機能拡張

とりあえず、360度どこからでも観察できるようになりました。 f:id:ltqhon:20151231011654p:plain

muripoLife/3D_LifeGame · GitHub

以上なのですが…

ゆる~く、ゲーミフィケーション的なアプリを作っていこうと思います。

とりあえず、楽しくLifeGameの分析ができるアプリを2016年3月までにリリースしようと思います。

凄かった作品

脈拍計測

興奮を静脈の流れで判定しようってアプリ

github.com

D3.jsをつくっているビジュアライゼーションをされている方

e2d3.org

が個人的にには、ツボでした。

題材

みたいな感じでした。

また、開催するそうなので、奮ってご参加を~

Unity 5.3 & Web GL/HTML5 セミナー by Unity & Mozillaに行ってきた。

kenjin.unity3d.jp

上のイベント行ってきたので

まとめてみました+勉強

Unity Japan

登壇者:大前広樹氏

WebGLについて

  • Unity5.2までUnity Web Player→廃止
  • Unity5.3からWebGL→推奨

Why?→プラグインを根絶したいから!

Webへの移植はどれくらいできるの?


Unity推奨ブラウザは?

使い方

Buildする場所 【Build Settings】→【Switch Platform】

「No Module loaded」 と出てPlatformの変更が出来ない場合 WebGL自体をインストールしていないので、改めてUnity5のDownloaderを起動し、「WebGL Build Support」にチェックを入れて再度確認する。

【Build Settings】について

  • 【Release Build】でBuild→長い
  • 【Develop Build】でBuild→短い

【Build & Run】について WebGLを動かすときはBuild&Runを用いる.このとき、Unityは、自分でローカルサーバーを立ち上げてやる

Buildの裏の処理

Build中の処理について(概要)

C#/UnityScriptShaderなど

↓(mcs)

CLI共通言語基盤 (Common Language Infrastructure、CLI) で定義された最も低水準な人間が解読可能なプログラミング言語

↓(IL2CPP)

C/C++Shaderなど

↓(Clang)

LLVM-IR仮想機械をターゲットとした中間言語

↓(Emscripten)

JavaScriptブラウザ表記

IL2CPP:Unity で使われている C#JavaScriptスクリプトC++ へ変換して動かしてしまおうという技術

メモリ Unity Heap

メモリーついて

Unity Heapについて

Unituy上で仮想マシンを動かす仕組み(asm.jsで記述)ちなみにMozillaJapanの講演内容はもっぱらこれ

参考Mozilla の開発した asm.js と WebGL が 1 つの到達点へ達しました:ゲームエンジンである Unity が WebGL によるゲームの完全サポートを開始しました

仕様UnityがVMとして確保しているメモリー量はWebGLでは、あらかじめ指定しないとだめ 

吐き出したファイルの中 Release/フォルダ index.html TemplateData/フォルダ

Release/フォルダ内gzip圧縮したものがある

メモリー使用量を減らすには?

UnityとWebGLを一気に使うとUnityのメモリー管理とJS側のガーベージコレクションがぶつかる

→AssetBundleWWW クラスを介してアセットをロードし、インスタンス化するもの

内部にはIndexedDB

LZMA圧縮は使わない→LZ4を使おう

ブラウザによってはユーザーの認証を要求

LINK.XML".NET Framework 3.5(C#のサーバーサイドのフレームワーク)において、様々な種類のデータ集合に対して標準化された方法でデータを問い合わせる(クエリ)ことを可能にするために、

言語に統合された機能"

アセッツフォルダーにLINK.XMLを置く

jsのコンソールに「Could not produce class with ID XXX」と出る→YAML Class ID Refrenceを見る

ネットワーク周り

ブラウザーで動くのでソケット関係は動かない

だが、WWW or UnityWebRequestは動く

UNETはWebSocketで動作

WebSockets or WebRTC in JavaScript

コンテンツデリバリー

CORS(Cross-Origin Resource Sharing)ブラウザがオリジン(HTMLを読み込んだサーバのこと)以外のサーバからデータを取得する仕組み

crossdomain.xmlみたいなもの(ただしHTTP)

仕様ポイント

  • Unity上で,【Player Settings】→【Publishing Settings】→【WebGL Memory Size】項目の値については,自分のゲームの動作と,対応ブラウザのメモリ許容量を確認しながら,動作に支障が出ない最適の値を検討する.
  • メモリ使用量の減らすには【Player Settings】→【Other Settings】→【Optimization】→【Strip Engine Code】項目にチェックを入れる事
  • 【Player Settings】→【Publishing Settings】→【Data caching】項目にチェックを入れる
  • 圧縮方法については、LZ4の圧縮機能を使う事を推薦
  • コードの書き方において、一部は適さないものが存在する
"string hugeString = “”;
for(int i = 0; i < 100000; i++)
{
        hugeString += “fool”;
}

この様に,i の限界が高過ぎる設定で加算処理を行なうと,大抵コケる(重くなる).

Unity5.3の新機能

コンテンツのサイズの削減

  • Assetに関しては,Crunch Textureを使用する.これにより、変換の際に負荷は掛かってしまうが,最適な容量でBuildが可能となる.
  • 圧縮において,LZ4 + gzipが可能となった.これは,LZ4圧縮からさらにgzip圧縮を行なう事で,相当量のサイズを削減出来る仕組みとなっている

グラフィックの設定

  • Firefoxでは,about: config にて「enable-prototype-webGL2」をフィルターし,true にする事で,実装が可能.
  • Unity側では,【Player Settings】→【Other Settings】→【Auto Graphics API】目のチェックを外し,Graphics APIs にてWebGL2.0を選択.

オーディオ

周辺機器

ゲームパッドは、FirefoxGoogle Chromeで使用可能

デバッグについて

  • WebSocketにて、プロファイラーの接続が可能。その際は、ログがコンソールに出る。ただし使用の際は、AutoConnectProfiler をON にしないといけない。
  • 残念ながら、MonoDevelop でのデバッグは現時点では出来ない。
  • 【Player Settings】 →【Publishing Settings】→【Enable Exceptions】項目でFullに変更すると、コンソールでエラーが表示される様になる。
  • 最初にBuild Settings にて,Development Build にチェックを入れておく

MozillaJapanについて[h1]

登壇者:清水智公氏

MozillaJapanについて

理念

Web is the platform(Webこそがプラットフォームだ!)

未来的な話

Webの辛み:ネットワークがないとコンテンツ使えない

OfflineStatus!(来年):ネットワークが使えなくもある程度使える

asm.jsの話

  • jsだが、非常に制限の強いjs
  • ams.jsだとjsを型宣言をきっちりできるstringはできない、intのみ配列もできない
  • ams.jsはええええええ!!clang,gccよりもはえええ!!
  • emscriptenを使おう!Cのポインタ操作もheap操作で行けるよ~
  • CをJSでかけるよ~

Single build & sencure execution

emscriptを使ってUnityのWebGL出力をしている

WebAssembly

binaryformat:LispのS式で作っている

その他

unity道場

  • 月1−2回、ワークショップを行なう企画。
  • 年間で通算で20回以上開催予定
  • 平日1回休日1回
  • 渋谷dotsで開催予定。

参考ゲーム

HADOWGUN: DeadZone http://mmo-android.com/press/3003/

2度目の転職の総括

社会人になって1年9ヶ月が経ちました。

社会人になって、すでに二回も転職活動をしている。

といったところで、波乱に満ちた社会人生活を送っています。

次の転職先が決まりましたので、転職活動の総括をしようと思います。

転職の軸(以下のいずれかの条件)

  • グラフィックエンジニア
  • Unityエンジニア
  • グラフィックでなかったらフロント中心で、グラフィックの勉強や勉強会の運営が可能なぐらいゆとりがある
  • ナルコレプシとPDD(広汎性発達)を受け入れてくれる会社

ってな感じだが、実際のところしっかりした業務経験とスキルが欲しいというのが本音です。

というかフロントだけによるのではなく、フルスタックでやらせてもらえるなら実はそのほうが嬉しかったり…

転職期間

  • 準備時期: 2015年10月~2014年11月(会社在籍)
  • 活動期間: 2015年11月~2015年12月(ま~ブログを参考に)
  • 対象企業: ゲーム会社、受諾開発(Web系)
  • 転職紹介会社: 1社
  • 転職サービス: Wantedly
  • 内定を頂いた会社: 1社(受諾開発系)
  • 受けた会社: ゲーム会社(ソシャゲ)4社 受諾開発系2社 ゲーム会社(知育系)1社
  • 面談した会社(話を聞きにいった):ゲーム会社(コンシューマー)1社 Web系アプリ1社 Web系コンサル1社 人材派遣系会社1社

転職で利用したサービスについて

今回は、転職前に知り合いになったエージェントの方がいたので、基本その方にお任せすることに その他は、Wantedlyをちょこちょこ使いました。 あと、友人伝いに1社

ってな感じでした。

スタンス

今回の転職は、もう前みたいなことになりたくない。

給料を最低まで下げられて、研修という名で所属もない干された状態なんていやだ…

そう思い、ナルコレプシとPDD(広汎性発達)をオープンにして、それでも面接していただける会社だけにした。

その上で、最終面接まで進むと、自分の現状をすべて話した。

正直、自分でもバカだと思う。

例えば婚活しているときに、「私ってメンヘラでリスカ持ちなんですけど、付き合ってくれません?」と言っているようなものです。

でも、そこまで言って受け入れてくれる会社でないとだめだと思ったんです。

実際、面接を受けて

いい会社が多かったです。

内定は一社いただけました。

グラフィック系で内定が頂けないのは単純に僕のスキルがないからです。

ハンディがあっても、それを凌駕するぐらいの技術力をつければいいと思ったし、そうならないと強く思いました。

転職活動の結果に

後悔はしていないです!

いや、嘘です。

やっぱりミーハーなので、有名な会社に行きたかったです。

実際、いろんな会社から祈られてやっぱり凹みました。

それにある会社は、課題を課せられてそれが出来なくて、自分の力のなさを思い知りました。

退社する会社の人に、辞める前に、「なぜ給料を下げられているか?理由がわかりますか?」と言われ、「結果が出せていないからです」と答えると「そうです、ハンディがあろうとなかろうと結果を出したら給料は出します」と言われたことが心に刺さるわけです。

そこでも、「直せないことを直せと言われても無理だろ!ふざけるな」と正直思いましたが、力がないのは事実

結果が出せてないことにムカムカしてしまうので、事実なんです。

それが、普通なら誰でもできることであろうがなかろうが…

今後は

上の内容は、これからお世話になる会社に失礼だと思いますが…

やっぱり内定を頂いた会社にとても感謝しています。

感謝しきれません。

この会社に拾っていただけなかったら路頭に迷っていますし、今までも業務の状況から恐らく、ほかの人より手がかかるのは明白だと思います。

でもやるしか、ないです。

やっぱり

自分の人生一筋縄でいかないと常々思います。

ほかの人より備えても失敗することなんて人生何度もあったし、今までに前例がないから大丈夫といろんな人は言いますが、悪い意味でパイオニアになることは人生多かったわけで…

みんな大丈夫だから、自分も大丈夫なんてことはたぶんないと思います…

でも、とりあえず、精いっぱいやって無理なら無理で考えようと思います。