SlideShare a Scribd company logo
1 of 38
Download to read offline
Udon概論
自己紹介
nHaruka
❑ VRC歴:6か月
❑ メインアバター:(Vroid製)⇒
❑ 趣味:着せ替え、ギミック開発
❑ 守備範囲:
➢ C#, U#, UdonGraph, Shader, js(すこし), Python(すこし)
❑ 主な活動:
➢ Bar Contrastの制作
➢ 全身Grabシステムの制作
➢ SpaceDragもどきシステムの制作
➢ Sketch Cameraの制作
➢ Avatar-embedded Flying Object System
の開発中(近日発売予定)
❑ 本業:セキュリティ屋さん
本日のAgenda
1. Udon序論
a. Udonとは?
b. Udonの仕組み概説
c. Udonでできること
2. Udonを使ったギミックの紹介
a. Animatorを使った飲める飲み物の作り方
b. パーリンノイズを使った徐々に色が変わるミラーボール
3. 【番外編?】実践Udonリバースエンジニアリング
a. コンパイル後のUdonの中身
b. ByteCodeを読み解いてみる
c. これができることによるメリット
4. 最後に
Udon序論
1-a. Udonとは?
Q:皆さんそもそもUdonとは何かと聞かれて答えられますでしょうか?
?
1-a. Udonとは?
A:もちろんこれじゃないです。。。
1-a. Udonとは?
A:
"VRChat Udon is a programming language built completely in-house by the VRChat
Development Team. It is designed to be secure, performant, and easy to use via the VRChat
Udon Node Graph, a built-in visual programming interface that uses nodes and wires (we call
them “noodles”) to connect flow, inputs, and outputs."
「VRChat Udonは、VRChat開発チームによって完全に内製されたプログラミング言語です。VRChat Udon Node
Graphというビルトインのビジュアルプログラミングインタフェースにより、フロー、入力、出力をノードとワイヤ(我々
は「麺」と呼んでいます)で接続し、安全で高性能、かつ使いやすいように設計されています。」
※公式ドキュメントより引用、DeepLにより翻訳
というわけで、プログラミング言語のことを指すようです。名前の由来はビジュアルが麺状にな
ることからきているようですね。
1-b. Udonの仕組み概説
ではそのUdonですが、どのようにして動いているのでしょうか。というのもUnity上でプログラ
ムを動かすには通常C#が一般的です。C#以外の仕組みを動かすとなると特殊な仕組みが必要と
なってきます。
1-b. Udonの仕組み概説
ご存じの方も多いと思いますが、Udonは機械語にコンパイル(変換)して直接実行するのではな
く、Udon VM(Virtual Machine)という仮想マシン上で実行されます。Javaに近い仕組みです。
コンパイル
コンパイル
など
実行
Udon
VM
実行 実行
CPU
バイトコード
1-b. Udonの仕組み概説
Q:なぜこんなまどろっこしいことを?
A:いくつか観点があります。
• Udon VM上で動かすことによって、Udon VMが動く環境であればWindows /Android問わず
スクリプトを動かすことができる。
• VRChatがアバターやワールドの管理単位として使っているAssetBundleがスクリプトの同梱
に対応していない。(要確認)
• ノード/コネクタベースのプログラミング言語にすることによってプログラミングへのハードル
を低くする狙い。
• セキュリティ的に懸念のあるクラス/メソッドを制約できる。
1-c. Udonでできること
一般にどのような入力とどのような出力ができるかで、その装置(言語)のできることの範囲が
測れるかと思います。簡単に、入出力の一部をご紹介をします。
入力
• プレイヤーのコントローラの入力
(Use/Grabなど)
• 設置されたUIのイベント
(ボタン/スライダー/InputFIeldなど)
• プレイヤーの名前やID、位置
各ボーンの位置、速さなど
• パーティクルやオブジェクトのコリジョン
• レイキャストイベント
など
出力
• VRC上で起こる殆どのことが実現可能です。
(アバター内のオブジェクトの操作を除
く)
• アニメーションの再生
• パーティクルの再生
• ゲームオブジェクトの操作
• プレイヤーの操作(テレポート、移動、ボ
イス調整など)
• ビデオ/オーディオの再生
• ポストエフェクトの切り替え など
×
Udonを使ったギ
ミックの紹介
2-a. Animatorを使った飲める飲み物の作り方
ではUdonを使ったギミックを考えてみます。今回はUdonでAnimatorをコントロールしてみま
しょう。仕組みは概ね以下のようになります。
プレイヤーの
コントローラー入力
(USEDOWN)
USEDOWNしてる間、
時間に応じて減らした
パラメータを
Animatorに渡す
Udonから来たパラメータ
をもとに飲み物のアニメー
ション(BrendTree)を制
御する
飲み物が減る
2-a. Animatorを使った飲める飲み物の作り方
まずは、コントローラの入力からパラメータをコントロールするところを見てみます。
プレイヤーの
コントローラー入力
(USEDOWN)
USEDOWNしてる間、
時間に応じて減らした
パラメータを
Animatorに渡す
USEDOWNすると"UseFlag"をTrueにする
"UseFlag"がTrueだと変数Amoutから0.002を引く
LiquidController(Animator)の"Amout"という
パラメータに変数Amoutの値を代入する
2-a. Animatorを使った飲める飲み物の作り方
Animatorは飲み物のマテリアルプロパティを操作していっぱいの状態のAnimationと空の状態
のAnimationのBrendTreeを”Amount"というパラメータで制御しているシンプルなものです。
Udonから来たパラメータ
をもとに飲み物のアニメー
ション(BrendTree)を制
御する
飲み物が減る
Amount100
飲み物が減る
Amount0
LiquidController
"Amount"
パラメータ
2-a. Animatorを使った飲める飲み物の作り方
減るだけでは一回きりになってしまうので、注ぐギミックも必要になります。これにはパーティ
クルの当たり判定を利用します。
瓶を傾けると
液体を模したパーティクルが出る
パーティクルがコップのコライ
ダーと衝突する
液体が満たされる
2-a. Animatorを使った飲める飲み物の作り方
瓶を傾けるとパーティクルが出る処理は、瓶のゲームオブジェクトのTransformから傾きを取得
することで判定可能です。
瓶を傾けると
液体を模したパーティクルが出る
瓶の傾きが一定(0.4)以上ならばパーティクル
(spoutPoint)をアクティブにする
2-a. Animatorを使った飲める飲み物の作り方
パーティクルの当たり判定を取るには"OnParticleCollision"という関数が用意されているので利用
します。
パーティクルがコップの
コライダーと衝突する
液体が満たされる
衝突したパーティクルが
"DrinkSystem"名前を含んでい
れば、Amountを1にする
衝突したパーティクルの色を
取得する
衝突したパーティクルの名前
に"Spark"が含まれていれば
Sparkフラグを立てる
2-a. Animatorを使った飲める飲み物の作り方
この例では衝突だけではなく、パーティクルが意図したパーティクル名かどうかのチェックや
パーティクルの色の取得などを行い、それに応じて液体の色や状態を変えています。
パーティクルがコップの
コライダーと衝突する
液体が満たされる
Sparkフラグが立っていれば、泡の色を設定す
る。また、先ほど取得したパーティクルの色を
液体の色に設定する。
2-b. パーリンノイズを使った徐々に色が変わるミラーボール
次にちょっと便利なツールとしてパーリンノイズを紹介しようかと思います。何か処理を行うとき、ランダ
ムな値が必要になることがありますが、完全にランダムだと困るということありませんでしょうか?アイド
ルポーズ時の身体の揺れなんか典型的で、完全にランダムに揺れてしまうと却って不自然になってしまいま
す。
ランダムだけど変化がなだらかな動き 完全にランダムな動き
2-b. パーリンノイズを使った徐々に色が変わるミラーボール
そこで活躍するのがパーリンノイズです。詳細は省きますがこれを使用するとランダム性を持ちながらも変
化がなだらかなノイズテクスチャを生成することが可能です。Unityにも関数が用意されており、Mathfクラ
スのPerlinNoiseメソッドで呼び出すことができます。
パーリンノイズ ランダムノイズ
2-b. パーリンノイズを使った徐々に色が変わるミラーボール
さて、それではこれを使ってミラーボールを実装してみます。ミラーボールの光も完全にランダムでは困る
のでパーリンノイズが活躍します。
パーリンノイズ
2-b. パーリンノイズを使った徐々に色が変わるミラーボール
といっても単にミラーボールにアタッチしたライトの色をパーリンノイズで変えてるだけなのでコードは非
常にシンプルです。
パーリンノイズを生成し、時間に応じてランダムに
値を生成する。生成した値をもとをHSVのHに代入し、
RGBに変換してライトの色にする。
【番外編?】
実践Udon
リバース
エンジニアリング
3-a. コンパイル後のUdonの中身
冒頭でUdonの仕組みを解説しましたが、Udonのプログラムが実際のところどういったファイルになってど
ういう形式で保存されているのか興味はないでしょうか?そういったUdonの低レベルの部分を考察してみよ
うと思います。
3-a. コンパイル後のUdonの中身
Udonでプログラムを作ると、Udon Program AssetというアセットとSerialized Udon Program Asset
というアセット、それにプログラム種別に応じてcsファイルやUdonGraphなどが作成されます。最後のファ
イルがソースコードとなるわけですが、これらはコンパイルされ、serializedProgramという名前で
Serialized Udon Program Assetに格納されます。
Byte配列がBASE64フォーマットで
シリアライズされている。
3-a. コンパイル後のUdonの中身
このままでは読めないので、読めるように変換します。幸いなことにUdonに読めるようにするデバッグツー
ルが含まれています。以下に方法を示します。
方法①:コンパイルシンボルに"Udon_DEBUG"を追加する
方法②:Assets /Udon/Editor/ProgramSources /SerializedUdonProgramAssetEditor.csを開いて
"[Conditional("Udon_DEBUG")]"をコメントアウトする
⇒Serialized Udon Program Assetを選択した際に、
デシリアライズされた情報が表示されるようになる
3-b. ByteCodeを読み解いてみる
読めるようになったので、これをテキストエディタ等にコピーして読み解いていきます。このデータは大き
く分けてByteCode, Heap, EntryPoints, SymbolTable, SyncMetadataTableの5つのブロックで構成さ
れています。
ByteCode:コード本文
Heap:変数の型と初期値(のようなもの)
EntryPoints:イベントトリガー
SymbolTable:型情報とアドレス
SyncMetadataTable:同期変数の情報?
3-b. ByteCodeを読み解いてみる
以下はByteCodeを読むのに必要なリファレンスです。
オペランド オペコード 説明
0x00 none NOP: 何もしません
0x01 Address PUSH: アドレスをスタックにプッシュします
0x02 none POP: スタックからアドレスをポップします
0x03 不明
0x04 Address
JUMP_IF_FALSE: スタックからアドレスをポップし、そのアドレスのヒープからブール「jumpCondition」
を取得します。
if(jumpCondition) 、プログラムカウンターをアドレスに設定します
そうでなければ、何もしません
0x05 Address JUMP: プログラムカウンターをアドレスに設定します
0x06 ExternMethodSignature
EXTERN:この署名に一致するメソッドを取得します 。
メソッドのパラメーターと同じ数のアドレスをスタックから取り出します。
ヒープからのパラメーターを使用してメソッドを呼び出します
0x07 不明 ANNOTATION: 何もしません
0x08 Address
JUMP_INDIRECT: スタックからアドレスをポップし、そのアドレスのヒープからuint 'jumpAddress' を取得
します。
プログラムカウンターを jumpAddress に設定します。
0x09 なし
COPY:スタックから 2 つのアドレスをポップし、参照値をヒープの最初のアドレスから 2 番目のアドレスに
コピーします。
3-b. ByteCodeを読み解いてみる
必要なものはそろったので読んでいきます。
0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 7,0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0,
6, 0, 0, 0, 16, 0, ・・・
コードはいくつかの単位で区切れています。(いくつかといったのは可変長であるため)
前ページのリファレンスを参考に区切ってみます。
0, 0, 0, 1, 0, 0, 0, 8
0, 0, 0, 1, 0, 0, 0, 7
0, 0, 0, 1, 0, 0, 0, 6
0, 0, 0, 1, 0, 0, 0, 4
0, 0, 0, 6, 0, 0, 0, 16
みえてきましたか?
3-b. ByteCodeを読み解いてみる
さらにリファレンスに基づいて処理の種類を書いてみましょう。
0, 0, 0, 1, 0, 0, 0, 8 PUSH 8
0, 0, 0, 1, 0, 0, 0, 7 PUSH 7
0, 0, 0, 1, 0, 0, 0, 6 PUSH 6
0, 0, 0, 1, 0, 0, 0, 4 PUSH 4
0, 0, 0, 6, 0, 0, 0, 16 EXTURN 16
後ろの8とか7とかはなにかというと、リファレンスにもありますがアドレスです。アドレスは、先ほどお
話しした通りSymbolTableにも書かれています。しかもSymbolTableには型情報が書いてあります。参照し
てみましょう。
3-b. ByteCodeを読み解いてみる
SymbolTableによると、どうやら6,7はSingle(float)型,8はUInt型の定数のようで、4は"seed1"という名
前の変数のようです。
3-b. ByteCodeを読み解いてみる
定数だとすると値はいくつでしょうか?Heapをみてみましょう。
3-b. ByteCodeを読み解いてみる
同様にEXTERN 16も調べます。UnityEngineのRandom.Range()関数だということがわかりますね。
3-b. ByteCodeを読み解いてみる
これで読み解けた内容を整理するとこうです。
0, 0, 0, 1, 0, 0, 0, 8 PUSH UInt 4294967295
0, 0, 0, 1, 0, 0, 0, 7 PUSH 7 0
0, 0, 0, 1, 0, 0, 0, 6 PUSH 6 256
0, 0, 0, 1, 0, 0, 0, 4 PUSH 4 seed1
0, 0, 0, 6, 0, 0, 0, 16 EXTURN 16 UnityEngine.Random.Range()
さらに高級言語風になおしてみるとこうです。
⇒seed1 = UnityEngine.Random.Range(0f, 256f);
実はこれ、先ほどのミラーボールのコードの
一部なのですが、ちゃんと合っています!
3-c. 読めて何が嬉しいの?
単純に知的好奇心が満たされるというのもありますが、他にもメリットがあります。
Udon自体のバグに気づくことができる。
• Udonのコンパイラの先がブラックボックスにならないので、Udon自体にバグ(コンパイラやUdonVM)が
あったとしてもそれに気づくことができる可能性がある。
エラーが起きた時に何が起きたかが理解しやすい。
• Udonがエラーを起こしたときに表示されるログはUdonVMがhaltしたものが多く、その場合エラーログが低
級言語レベルの処理で出力されるため。
• 万一手元のプロジェクトを吹き飛ばしてしまっても、ワールドデータからリバースエンジニアリング可能
• 悪用厳禁!!!!!
• 楽しい
• 楽しい
最後に
• Udonは意外と簡単(Animator組む方がよっぽど大変。。。)
• 今回は同期については触れてないので、よかったらこの後のしそさんの
お話を聞いてください。
• Udonに限らずUnity相談所やってるので、困ってたらBarContrastへい
らしてください。
• Udonじゃないですが、いろんなアバターギミック作ってるのでよかっ
たらBooth覗いてください。
Thank You!!

More Related Content

What's hot

DeepPose: Human Pose Estimation via Deep Neural Networks
DeepPose: Human Pose Estimation via Deep Neural NetworksDeepPose: Human Pose Estimation via Deep Neural Networks
DeepPose: Human Pose Estimation via Deep Neural NetworksShunta Saito
 
Generating Diverse High-Fidelity Images with VQ-VAE-2
Generating Diverse High-Fidelity Images with VQ-VAE-2Generating Diverse High-Fidelity Images with VQ-VAE-2
Generating Diverse High-Fidelity Images with VQ-VAE-2harmonylab
 
Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識Ken Morishita
 
20190706cvpr2019_3d_shape_representation
20190706cvpr2019_3d_shape_representation20190706cvpr2019_3d_shape_representation
20190706cvpr2019_3d_shape_representationTakuya Minagawa
 
Go-ICP: グローバル最適(Globally optimal) なICPの解説
Go-ICP: グローバル最適(Globally optimal) なICPの解説Go-ICP: グローバル最適(Globally optimal) なICPの解説
Go-ICP: グローバル最適(Globally optimal) なICPの解説Yusuke Sekikawa
 
[解説スライド] NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
[解説スライド] NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis[解説スライド] NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
[解説スライド] NeRF: Representing Scenes as Neural Radiance Fields for View SynthesisKento Doi
 
TensorFlow XLAは、 中で何をやっているのか?
TensorFlow XLAは、 中で何をやっているのか?TensorFlow XLAは、 中で何をやっているのか?
TensorFlow XLAは、 中で何をやっているのか?Mr. Vengineer
 
Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編Etsuji Nakai
 
【DL輪読会】Perceiver io a general architecture for structured inputs & outputs
【DL輪読会】Perceiver io  a general architecture for structured inputs & outputs 【DL輪読会】Perceiver io  a general architecture for structured inputs & outputs
【DL輪読会】Perceiver io a general architecture for structured inputs & outputs Deep Learning JP
 
【DL輪読会】Semi-Parametric Neural Image Synthesis
【DL輪読会】Semi-Parametric Neural Image Synthesis【DL輪読会】Semi-Parametric Neural Image Synthesis
【DL輪読会】Semi-Parametric Neural Image SynthesisDeep Learning JP
 
トピックモデルの話
トピックモデルの話トピックモデルの話
トピックモデルの話kogecoo
 
[DLHacks 実装] DeepPose: Human Pose Estimation via Deep Neural Networks
[DLHacks 実装] DeepPose: Human Pose Estimation via Deep Neural Networks[DLHacks 実装] DeepPose: Human Pose Estimation via Deep Neural Networks
[DLHacks 実装] DeepPose: Human Pose Estimation via Deep Neural NetworksDeep Learning JP
 
はじめてのKrylov部分空間法
はじめてのKrylov部分空間法はじめてのKrylov部分空間法
はじめてのKrylov部分空間法tmaehara
 
PythonによるCVアルゴリズム実装
PythonによるCVアルゴリズム実装PythonによるCVアルゴリズム実装
PythonによるCVアルゴリズム実装Hirokatsu Kataoka
 
無限関係モデル (続・わかりやすいパターン認識 13章)
無限関係モデル (続・わかりやすいパターン認識 13章)無限関係モデル (続・わかりやすいパターン認識 13章)
無限関係モデル (続・わかりやすいパターン認識 13章)Shuyo Nakatani
 
SSII2018TS: 3D物体検出とロボットビジョンへの応用
SSII2018TS: 3D物体検出とロボットビジョンへの応用SSII2018TS: 3D物体検出とロボットビジョンへの応用
SSII2018TS: 3D物体検出とロボットビジョンへの応用SSII
 
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例Recruit Technologies
 
(2018.3) 分子のグラフ表現と機械学習
(2018.3) 分子のグラフ表現と機械学習(2018.3) 分子のグラフ表現と機械学習
(2018.3) 分子のグラフ表現と機械学習Ichigaku Takigawa
 

What's hot (20)

DeepPose: Human Pose Estimation via Deep Neural Networks
DeepPose: Human Pose Estimation via Deep Neural NetworksDeepPose: Human Pose Estimation via Deep Neural Networks
DeepPose: Human Pose Estimation via Deep Neural Networks
 
Generating Diverse High-Fidelity Images with VQ-VAE-2
Generating Diverse High-Fidelity Images with VQ-VAE-2Generating Diverse High-Fidelity Images with VQ-VAE-2
Generating Diverse High-Fidelity Images with VQ-VAE-2
 
Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識
 
20190706cvpr2019_3d_shape_representation
20190706cvpr2019_3d_shape_representation20190706cvpr2019_3d_shape_representation
20190706cvpr2019_3d_shape_representation
 
Go-ICP: グローバル最適(Globally optimal) なICPの解説
Go-ICP: グローバル最適(Globally optimal) なICPの解説Go-ICP: グローバル最適(Globally optimal) なICPの解説
Go-ICP: グローバル最適(Globally optimal) なICPの解説
 
[解説スライド] NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
[解説スライド] NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis[解説スライド] NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
[解説スライド] NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
 
TensorFlow XLAは、 中で何をやっているのか?
TensorFlow XLAは、 中で何をやっているのか?TensorFlow XLAは、 中で何をやっているのか?
TensorFlow XLAは、 中で何をやっているのか?
 
Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編
 
【DL輪読会】Perceiver io a general architecture for structured inputs & outputs
【DL輪読会】Perceiver io  a general architecture for structured inputs & outputs 【DL輪読会】Perceiver io  a general architecture for structured inputs & outputs
【DL輪読会】Perceiver io a general architecture for structured inputs & outputs
 
【DL輪読会】Semi-Parametric Neural Image Synthesis
【DL輪読会】Semi-Parametric Neural Image Synthesis【DL輪読会】Semi-Parametric Neural Image Synthesis
【DL輪読会】Semi-Parametric Neural Image Synthesis
 
トピックモデルの話
トピックモデルの話トピックモデルの話
トピックモデルの話
 
Rの高速化
Rの高速化Rの高速化
Rの高速化
 
[DLHacks 実装] DeepPose: Human Pose Estimation via Deep Neural Networks
[DLHacks 実装] DeepPose: Human Pose Estimation via Deep Neural Networks[DLHacks 実装] DeepPose: Human Pose Estimation via Deep Neural Networks
[DLHacks 実装] DeepPose: Human Pose Estimation via Deep Neural Networks
 
はじめてのKrylov部分空間法
はじめてのKrylov部分空間法はじめてのKrylov部分空間法
はじめてのKrylov部分空間法
 
MLOps入門
MLOps入門MLOps入門
MLOps入門
 
PythonによるCVアルゴリズム実装
PythonによるCVアルゴリズム実装PythonによるCVアルゴリズム実装
PythonによるCVアルゴリズム実装
 
無限関係モデル (続・わかりやすいパターン認識 13章)
無限関係モデル (続・わかりやすいパターン認識 13章)無限関係モデル (続・わかりやすいパターン認識 13章)
無限関係モデル (続・わかりやすいパターン認識 13章)
 
SSII2018TS: 3D物体検出とロボットビジョンへの応用
SSII2018TS: 3D物体検出とロボットビジョンへの応用SSII2018TS: 3D物体検出とロボットビジョンへの応用
SSII2018TS: 3D物体検出とロボットビジョンへの応用
 
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
 
(2018.3) 分子のグラフ表現と機械学習
(2018.3) 分子のグラフ表現と機械学習(2018.3) 分子のグラフ表現と機械学習
(2018.3) 分子のグラフ表現と機械学習
 

Similar to UDEC発表原稿-Udon概論-

オープンソースで作るスマホ文字認識アプリ
オープンソースで作るスマホ文字認識アプリオープンソースで作るスマホ文字認識アプリ
オープンソースで作るスマホ文字認識アプリ陽平 山口
 
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京hecomi
 
AWS歴2週間で IoT に挑戦してみた。
AWS歴2週間で IoT に挑戦してみた。AWS歴2週間で IoT に挑戦してみた。
AWS歴2週間で IoT に挑戦してみた。Shogo Matsuda
 
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみたゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみたKohei Kadowaki
 
iOSレガシーコード改善ガイド〜マンガボックス開発における事例〜
iOSレガシーコード改善ガイド〜マンガボックス開発における事例〜iOSレガシーコード改善ガイド〜マンガボックス開発における事例〜
iOSレガシーコード改善ガイド〜マンガボックス開発における事例〜Kentaro Matsumae
 
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例Yahoo!デベロッパーネットワーク
 
ヒューマノイドのアプリ開発とモーション生成AIの導入 ROS JP UG #51
ヒューマノイドのアプリ開発とモーション生成AIの導入 ROS JP UG #51ヒューマノイドのアプリ開発とモーション生成AIの導入 ROS JP UG #51
ヒューマノイドのアプリ開発とモーション生成AIの導入 ROS JP UG #51holypong
 
文字列曖昧検索によるマルウェアバイナリ解析
文字列曖昧検索によるマルウェアバイナリ解析文字列曖昧検索によるマルウェアバイナリ解析
文字列曖昧検索によるマルウェアバイナリ解析Preferred Networks
 
AozoraYomite @InfoTalk 2012/12/21
AozoraYomite @InfoTalk 2012/12/21AozoraYomite @InfoTalk 2012/12/21
AozoraYomite @InfoTalk 2012/12/21Yuki Higuchi
 
OpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみたOpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみた徹 上野山
 
組込みAndroid入門実習
組込みAndroid入門実習組込みAndroid入門実習
組込みAndroid入門実習ksk sue
 
2016/12/17 ASP.NET フロントエンドタスク入門
 2016/12/17 ASP.NET フロントエンドタスク入門 2016/12/17 ASP.NET フロントエンドタスク入門
2016/12/17 ASP.NET フロントエンドタスク入門miso- soup3
 
スマートフォン対応、気をつけたいトラブル
スマートフォン対応、気をつけたいトラブルスマートフォン対応、気をつけたいトラブル
スマートフォン対応、気をつけたいトラブルHiroaki Wakamatsu
 
Node.js×mongo dbで3年間サービス運用してみた話
Node.js×mongo dbで3年間サービス運用してみた話Node.js×mongo dbで3年間サービス運用してみた話
Node.js×mongo dbで3年間サービス運用してみた話leverages_event
 
Programming camp 2008, Codereading
Programming camp 2008, CodereadingProgramming camp 2008, Codereading
Programming camp 2008, CodereadingHiro Yoshioka
 
B 2-1 はじめての Windows Azure
B 2-1 はじめての Windows AzureB 2-1 はじめての Windows Azure
B 2-1 はじめての Windows AzureGoAzure
 
㉒初期プロジェクトを改造!
㉒初期プロジェクトを改造!㉒初期プロジェクトを改造!
㉒初期プロジェクトを改造!Nishida Kansuke
 
cocos2d-xハンズオン勉強会 in 名古屋
cocos2d-xハンズオン勉強会 in 名古屋cocos2d-xハンズオン勉強会 in 名古屋
cocos2d-xハンズオン勉強会 in 名古屋Tomoaki Shimizu
 
Androidでへっぽこ思考戦車を作ってみた
Androidでへっぽこ思考戦車を作ってみたAndroidでへっぽこ思考戦車を作ってみた
Androidでへっぽこ思考戦車を作ってみたYusuke Ohmichi
 

Similar to UDEC発表原稿-Udon概論- (20)

オープンソースで作るスマホ文字認識アプリ
オープンソースで作るスマホ文字認識アプリオープンソースで作るスマホ文字認識アプリ
オープンソースで作るスマホ文字認識アプリ
 
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
 
SocketStream入門
SocketStream入門SocketStream入門
SocketStream入門
 
AWS歴2週間で IoT に挑戦してみた。
AWS歴2週間で IoT に挑戦してみた。AWS歴2週間で IoT に挑戦してみた。
AWS歴2週間で IoT に挑戦してみた。
 
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみたゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
 
iOSレガシーコード改善ガイド〜マンガボックス開発における事例〜
iOSレガシーコード改善ガイド〜マンガボックス開発における事例〜iOSレガシーコード改善ガイド〜マンガボックス開発における事例〜
iOSレガシーコード改善ガイド〜マンガボックス開発における事例〜
 
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
 
ヒューマノイドのアプリ開発とモーション生成AIの導入 ROS JP UG #51
ヒューマノイドのアプリ開発とモーション生成AIの導入 ROS JP UG #51ヒューマノイドのアプリ開発とモーション生成AIの導入 ROS JP UG #51
ヒューマノイドのアプリ開発とモーション生成AIの導入 ROS JP UG #51
 
文字列曖昧検索によるマルウェアバイナリ解析
文字列曖昧検索によるマルウェアバイナリ解析文字列曖昧検索によるマルウェアバイナリ解析
文字列曖昧検索によるマルウェアバイナリ解析
 
AozoraYomite @InfoTalk 2012/12/21
AozoraYomite @InfoTalk 2012/12/21AozoraYomite @InfoTalk 2012/12/21
AozoraYomite @InfoTalk 2012/12/21
 
OpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみたOpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみた
 
組込みAndroid入門実習
組込みAndroid入門実習組込みAndroid入門実習
組込みAndroid入門実習
 
2016/12/17 ASP.NET フロントエンドタスク入門
 2016/12/17 ASP.NET フロントエンドタスク入門 2016/12/17 ASP.NET フロントエンドタスク入門
2016/12/17 ASP.NET フロントエンドタスク入門
 
スマートフォン対応、気をつけたいトラブル
スマートフォン対応、気をつけたいトラブルスマートフォン対応、気をつけたいトラブル
スマートフォン対応、気をつけたいトラブル
 
Node.js×mongo dbで3年間サービス運用してみた話
Node.js×mongo dbで3年間サービス運用してみた話Node.js×mongo dbで3年間サービス運用してみた話
Node.js×mongo dbで3年間サービス運用してみた話
 
Programming camp 2008, Codereading
Programming camp 2008, CodereadingProgramming camp 2008, Codereading
Programming camp 2008, Codereading
 
B 2-1 はじめての Windows Azure
B 2-1 はじめての Windows AzureB 2-1 はじめての Windows Azure
B 2-1 はじめての Windows Azure
 
㉒初期プロジェクトを改造!
㉒初期プロジェクトを改造!㉒初期プロジェクトを改造!
㉒初期プロジェクトを改造!
 
cocos2d-xハンズオン勉強会 in 名古屋
cocos2d-xハンズオン勉強会 in 名古屋cocos2d-xハンズオン勉強会 in 名古屋
cocos2d-xハンズオン勉強会 in 名古屋
 
Androidでへっぽこ思考戦車を作ってみた
Androidでへっぽこ思考戦車を作ってみたAndroidでへっぽこ思考戦車を作ってみた
Androidでへっぽこ思考戦車を作ってみた
 

Recently uploaded

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成Hiroshi Tomioka
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 

Recently uploaded (9)

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 

UDEC発表原稿-Udon概論-