勉強会のレポート(メモ)です。
参加したのはこちら「Event for Diverse Game Engineers #5」
会場は株式会社gumiさんです。
前回のレポはこちら
- #1 ゲームグラフィックス周りなんもわからんから脱却しよう
- #2 Unicode文字列処理
- #3 心理的安全性って結局なんなんだろう
- LT1 ゲーム開発しくじり先生~ソシャゲのおくりびと時代とインディーゲーム闇開発~
- LT2 ディープラーニングってやつでなんとかして!~ゲームに使用できそうな近年の技術紹介~
#1 ゲームグラフィックス周りなんもわからんから脱却しよう
ゲームグラフィックスなんもわからんから脱却しよう https://t.co/m0rhEHkP3J
— ろっさむ (@4_mio_11) 2020年2月15日
ハッシュタグつけ忘れたw#TokyoEDGE2020
本日登壇した際の資料をあげました。
説明や図解が豊富なのでスライドをどうぞ
他参考資料
#2 Unicode文字列処理
https://t.co/SKIMg00yPY 本日の資料。
— ++C++; // 管理人: 岩永 (@ufcpp) 2020年2月15日
長いので詳しくはスライドをどうぞ
文字コード
文字コードという言葉には2つの意味があります
・符号点
どの文字にどの文字を割り当てるか
今どきはUnicode一択
・文字符号化形式
その番号をどうやって記録するか
同じUnicodeでも複数の符号化形式がある、UTF-8、UTF-16、UTF-32が基本
Unicode以前のお話
ASCIIコード
アメリカで規格化された文字コード
今でも使われていてインターネット上の大部分がASCII
なので互換性をとらなければならない、JavaやC#の場合、この変換が結構重かったりする
Unicodeの符号化方式
極力推薦されるのはUTF8 (SCII互換もある)
UTF16も使われてはいる
UTF-8
ASCII互換 1~4バイトの可変長符号化
UTF-16
2or4バイト
元々2バイト固定のところに無理やりねじ込んだもの
普段よく使う文字は固定長、日本語中国語を扱う場合は2バイト
値としてはASCII互換だが2バイトに膨らませる処理が必要
2000代半ばに、ASCII互換の方が大事という流れになった
.NET CoreにもUTF-8化の波が来ている
UTF-16のほどんとの文字が固定長
後付けでマナー違反のコードはいっぱい
正規なコードポイントだけ欲しい
UTF32なら固定長ではなくCharacter同士が結合する
マイナー文字を表現するための結合文字
書記素(グラフェム)
人が1文字と認識する単位をグラフェムという
カーソル移動や削除はこの単位でやるべきと決まっています
世界中の文字を収めた時の話
Latin-1
西欧言語の大部分をカバー、ただしASCIIとの互換性はない
変な文字もあるし、Latin-1にない文字もある
漢字
表示できなくて困るという場面はないが、簡単ではない
漢字だけで3種類あった。どう統合すべきかは結局雰囲気で決まっている
ある程度自動判定もできなくはないが判定は曖昧
アラビア文字
その割にすごい大変
・右から左に書く
・文字がくっつく
unicode上に左右逆に書く仕様書があるため手は出せるが、結構長いし仕様も複雑
絵文字
日本には変な文字がある
顔郵便マーク(〠)、旧JISマーク(〄)
Unicodeにも残ってしまった
キャリア絵文字
カラー絵文字が登場した
これもUnicodeに入ってしまった
肌の色や組み合わせを変えれる文字も登場した
国旗
キャリア絵文字の国旗はセンシティブな内容のためそのままは入れられなかった
国名コードを使う流れになった
まとめ
・符号点はUnicode一択
・符号化方式はUTF-8とUTF-16が混在している
・独自規格だからと迂闊なことをやると世界標準化される
参考資料
#3 心理的安全性って結局なんなんだろう
cedecの公募開始しています。よろしければどうぞ
参考資料
チームでの心理的安全性
Project Oxygen
Google社内調査で成果を上げているチームとそうでないチームの違いを調査した
結果メンバーのパフォーマンスに最も影響を与えるのはマネージャーの言動だった
そこでGoogleの優れたマネージャーの要件を特定しました
Project Aristotle
Project Oxygenの次の社内調査として、効果的なチームを可能とする条件は何かを調査
重要なのは誰がチームのメンバであるかよりもチームがどのように協力しているか
推薦図書
ワークショップタイム
ペーパータワーチャレンジを行いました。
20枚のA4用紙を使ってできるだけ高いタワーを作るというもの
心理的安全性とは
なれ合いではなく、問題や間違いを指摘しあえる世界を目指す。
揉め事がある方が生産性があがる。
対立をなくすのではなく、対立によっていろいろなアイデアを出させることが大事
次に目指すのは混沌とした世界(創造的混沌)
LT1 ゲーム開発しくじり先生~ソシャゲのおくりびと時代とインディーゲーム闇開発~
やばい
LT2 ディープラーニングってやつでなんとかして!~ゲームに使用できそうな近年の技術紹介~
Effekseerというエフェクト製作ツールを公開しています。
興味があればどうぞ。
将来使われるかもしれない技術を紹介します
機械学習の基本としてディープラーニングは魔法ではありません。
デノイズ
ノイズを除去する技術
リアルタイムレイトレーシングなどに使われる
超解像度
画像の解像度を向上させる技術
4Kや8Kなど上げることができる
機械学習物理
物理現象を機械学習で再現する技術
リアルタイムシミュレーションなどに
モーション生成
環境情報やキャラクターの形状からモーションを生成する技術
物理シミュレーションと組み合わせた例もあります
強化学習
環境や行動から学習を強化する技術
模倣学習
報酬を与えるのではなく、与えられたデータを真似させる技術
微分可能レンダラー
オブジェクトの情報をニューラルネットワークのパラメータとして扱える
これによって、より現実に近いパラメータを得られる
実際に取り組んでみようフレームワーク
Chainer
PyTorch
Tensoflow
JAX
使うものはどれでもいい、対して変わらない
論文や数式を読む時間が大半を占めます
学習の仕方
・サンプルを実行しよう
・既存のデータセットで学習してみよう
・海外の論文を読みましょう
ゲームに使う場合
ゲームを高速に繰り返せるようにすること
ゲームエンジンと切り離し、サーバー上で並列実行できるとよい
間違っている箇所、消してほしいツイートがありましたらコメントにお願いします。