Raspberlyのブログ

Raspberlyのブログ

Unityネタをメインとした技術系ブログです。にゃんこ大戦争や日常なども。そろそろブログタイトル決めたい

【勉強会レポ】: Event for Diverse Game Engineers #5

勉強会のレポート(メモ)です。
参加したのはこちら「Event for Diverse Game Engineers #5」
会場は株式会社gumiさんです。

edge.connpass.com

ハッシュタグ#TokyoEdge2020

 

f:id:Raspberly:20200216012126j:plain

 

前回のレポはこちら

raspberly.hateblo.jp

 

 

 

 

#1 ゲームグラフィックス周りなんもわからんから脱却しよう

 

説明や図解が豊富なのでスライドをどうぞ

 

 

 

他参考資料

raspberly.hateblo.jp

 

 

 

 

 

#2 Unicode文字列処理

長いので詳しくはスライドをどうぞ

 

文字コード

文字コードという言葉には2つの意味があります
符号点
どの文字にどの文字を割り当てるか
今どきはUnicode一択

文字符号化形式
その番号をどうやって記録するか
同じUnicodeでも複数の符号化形式がある、UTF-8UTF-16UTF-32が基本

 

Unicode以前のお話

ASCIIコード

アメリカで規格化された文字コード
今でも使われていてインターネット上の大部分がASCII
なので互換性をとらなければならない、JavaC#の場合、この変換が結構重かったりする

 

Unicodeの符号化方式

極力推薦されるのはUTF8 (SCII互換もある)
UTF16も使われてはいる

UTF-8
ASCII互換 1~4バイトの可変長符号化

 

UTF-16
2or4バイト
元々2バイト固定のところに無理やりねじ込んだもの
普段よく使う文字は固定長、日本語中国語を扱う場合は2バイト
値としてはASCII互換だが2バイトに膨らませる処理が必要

 

 

2000代半ばに、ASCII互換の方が大事という流れになった
.NET CoreにもUTF-8化の波が来ている

docs.microsoft.com


UTF-16のほどんとの文字が固定長
後付けでマナー違反のコードはいっぱい
正規なコードポイントだけ欲しい

UTF32なら固定長ではなくCharacter同士が結合する
マイナー文字を表現するための結合文字

 

書記素(グラフェム)

人が1文字と認識する単位をグラフェムという
カーソル移動や削除はこの単位でやるべきと決まっています

 

  

世界中の文字を収めた時の話

Latin-1

西欧言語の大部分をカバー、ただしASCIIとの互換性はない
変な文字もあるし、Latin-1にない文字もある

漢字

表示できなくて困るという場面はないが、簡単ではない
漢字だけで3種類あった。どう統合すべきかは結局雰囲気で決まっている
ある程度自動判定もできなくはないが判定は曖昧

アラビア文字

ラテン文字 漢字の次に使用者が多い、聖典でも使われている

その割にすごい大変
・右から左に書く
・文字がくっつく

unicode上に左右逆に書く仕様書があるため手は出せるが、結構長いし仕様も複雑

絵文字

日本には変な文字がある
顔郵便マーク()、旧JISマーク(
Unicodeにも残ってしまった

キャリア絵文字

カラー絵文字が登場した
これもUnicodeに入ってしまった
肌の色や組み合わせを変えれる文字も登場した

国旗

キャリア絵文字の国旗はセンシティブな内容のためそのままは入れられなかった
国名コードを使う流れになった

まとめ

・符号点はUnicode一択
・符号化方式はUTF-8UTF-16が混在している
・独自規格だからと迂闊なことをやると世界標準化される

 

 

参考資料

learning.unity3d.jp

 

 

 

 

 

#3 心理的安全性って結局なんなんだろう

cedecの公募開始しています。よろしければどうぞ

CEDEC2020

 

参考資料

チームが機能するとはどういうことか|書籍|英治出版

チームでの心理的安全性

Project Oxygen

Google社内調査で成果を上げているチームとそうでないチームの違いを調査した

結果メンバーのパフォーマンスに最も影響を与えるのはマネージャーの言動だった
そこでGoogleの優れたマネージャーの要件を特定しました

rework.withgoogle.com

 

Project Aristotle

Project Oxygenの次の社内調査として、効果的なチームを可能とする条件は何かを調査

rework.withgoogle.com

重要なのは誰がチームのメンバであるかよりもチームがどのように協力しているか

推薦図書

publications.asahi.com

ワークショップタイム

ペーパータワーチャレンジを行いました。
20枚のA4用紙を使ってできるだけ高いタワーを作るというもの

f:id:Raspberly:20200216012148j:plain

心理的安全性とは

なれ合いではなく、問題や間違いを指摘しあえる世界を目指す。

揉め事がある方が生産性があがる。
対立をなくすのではなく、対立によっていろいろなアイデアを出させることが大事

次に目指すのは混沌とした世界(創造的混沌)

 

 

 

 

 

 

LT1 ゲーム開発しくじり先生~ソシャゲのおくりびと時代とインディーゲーム闇開発~

やばい

 

 

 

 

 

LT2 ディープラーニングってやつでなんとかして!~ゲームに使用できそうな近年の技術紹介~

Effekseerというエフェクト製作ツールを公開しています。
興味があればどうぞ。

 

将来使われるかもしれない技術を紹介します
機械学習の基本としてディープラーニングは魔法ではありません

デノイズ

ノイズを除去する技術
リアルタイムレイトレーシングなどに使われる

超解像

画像の解像度を向上させる技術
4Kや8Kなど上げることができる

機械学習物理

物理現象を機械学習で再現する技術
リアルタイムシミュレーションなどに

モーション生成

環境情報やキャラクターの形状からモーションを生成する技術
物理シミュレーションと組み合わせた例もあります

強化学習

環境や行動から学習を強化する技術

模倣学習

報酬を与えるのではなく、与えられたデータを真似させる技術

微分可能レンダラー

オブジェクトの情報をニューラルネットワークのパラメータとして扱える
これによって、より現実に近いパラメータを得られる

実際に取り組んでみようフレームワーク

Chainer
PyTorch
Tensoflow
JAX
使うものはどれでもいい、対して変わらない
論文や数式を読む時間が大半を占めます

学習の仕方

・サンプルを実行しよう
・既存のデータセットで学習してみよう
・海外の論文を読みましょう

ゲームに使う場合

ゲームを高速に繰り返せるようにすること
ゲームエンジンと切り離し、サーバー上で並列実行できるとよい

 

 

 

 

 

 

間違っている箇所、消してほしいツイートがありましたらコメントにお願いします。