Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
AWSで雰囲気でつくる! VRChatの写真変換ピタゴラスイッチ
Search
AnaTofuZ
April 04, 2025
Programming
570
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWSで雰囲気でつくる! VRChatの写真変換ピタゴラスイッチ
2025/04/04のJAWS-UG山梨 【第5回】勉強会でのLTです
https://jaws-ug-yamanashi.connpass.com/event/346675/
AnaTofuZ
April 04, 2025
More Decks by AnaTofuZ
See All by AnaTofuZ
Perl GraphQL 高速化バトル 2026年5月版
anatofuz
0
74
k1LoW/deckのすすめ
anatofuz
2
800
Perl1.0 Deep Drive 0.01
anatofuz
0
250
Rubyの国のPerlMonger
anatofuz
3
2.6k
Pythonで爆速でHello, World!する
anatofuz
0
140
思いつきで推しの誕生日記念コンテンツを2日で作る技術
anatofuz
0
210
令和最新版 Perlコーディングガイド
anatofuz
5
11k
rakulangで実装する! RubyVM
anatofuz
6
6.3k
沖縄の大学で育った学生がエンジニアになるまで
anatofuz
2
8.1k
Other Decks in Programming
See All in Programming
CodeRabbitの効果検証と過ごしてみた3ヶ月
armondando
0
200
すこし踏み込む CancellationToken
htkym
2
1.7k
パーソナライズPodcastを作った話
repunit11
0
130
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
210
カツオ、ご期待ください
suneo3476
0
160
最近”作らせてる” ローカルAIアプリの話
akit37
0
430
mrbgem 三角測量 開発
ogom
0
220
golang-bob.pdf
iwatsukayura
0
110
プロダクトコードからライブラリの境界を見つける
elmetal
PRO
0
110
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
680
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
570
複雑なUIコンポーネントとの ⻑い付き合い⽅:波及するバグからテスト戦略を経て、安全な再設計へ
mixplace
0
280
Featured
See All Featured
Deep Space Network (abreviated)
tonyrice
0
360
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Why Our Code Smells
bkeepers
PRO
340
58k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
510
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
920
4 Signs Your Business is Dying
shpigford
187
23k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
270
The SEO identity crisis: Don't let AI make you average
varn
0
580
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
77k
Transcript
AWSで雰囲気でつくる! VRChatの写真変換 ピタゴラスイッチ 八雲アナグラ(@AnaTofuZ) 2025/04/04 JAWS-UG山梨 【第5回】勉強会
• 八雲アナグラ(@AnaTofuZ) • Webアプリケーションエンジニア ◦ 株式会社コードタクトで教育系のアプリケーションやってます • 1月から甲府でフルリモート ◦ 山梨出身ですがそれまでは沖縄とか京都にいました
◦ 5/31になんでもあり技術イベントHoutou.pmを甲府で開催予定 • 今日は趣味100%の話です 自己紹介
• 無料で遊べるVR SNS ◦ 別にVR機器なくても遊べる • Meta Questやスマホからも起動可能 ◦ 機能制限がちょっとあるのでゲーミングPCから接続が推奨
◦ つまり基本windows端末から起動する • テレワーク限界成人男性が会話機会を獲得できる貴重なサービス VRChat
• VRChatにはカメラ機能がある • 外カメ/内カメがあるので 自撮りも比較的簡単にできる カメラ https://metacul-frontier.com/?p=14064
• 撮影したデータは c://Users/<user>/Pictures/VR Chat 以下にyyyy-mmのディレクトリ が切られて保存される • VRChat_yyyy-mm-dd_hh:mm: dd_解像度.pngの命名規則で保存 撮影データ
• オフ会の時にVRChat上での写真をスマホ で表示したものをTwitterにあげる文化 • バックアップ用途としてもローカル以外 の場所で写真を管理したい ◦ Amazon Photosとかで管理したい 写真を外でみたい
• VRChatで撮影した写真のディレクトリをAmazon Photosでアップロード 対象に選択 • あとはAmazon Photosのwindowsアプリがいい感じにアップロードして くれる というわけで
• VRChatで撮影した写真のディレクトリをAmazon Photosでアップロード 対象に選択 • あとはAmazon Photosのwindowsアプリがいい感じにアップロードして くれる というわけで 勝ったッ!第1部完!
• VRChatで撮影した写真のディレクトリをAmazon Photosでアップロード 対象に選択 • あとはAmazon Photosのwindowsアプリがいい感じにアップロードして くれる というわけで 勝ったッ!第1部完!
• Amazon Photosにアップロードすると撮影日が設定されず順不同で表 示されてしまいアルバムとしては微妙な状態に • VRChat上ではカメラで撮影するものの、現実ただの画像出力で日付デー タがpngに書き込まれない仕様になっている ◦ 写真系のサービスにアップロードすると撮影日が不定いなる ◦
撮影日のメタデータを書き込んだ上でクラウド等に保存したい 撮影日順に並ばない ...
• 画像のメタデータの規格 • 一種のKVSと考えると早い • 撮影日はDateTimeOriginalというキーでYYYY:MM:DD HH:MM:SS形 式のvalueを設定すると認識される Exif ❯
exiftool PXL_20250127_001602781.jpg ExifTool Version Number : 13.00 File Name : PXL_20250127_001602781.jpg Directory : . File Size : 842 kB File Modification Date/Time : 2025:01:27 09:17:30+09:00 File Access Date/Time : 2025:02:16 21:11:33+09:00
• WindowsからVRChatの画像にExifの撮影日を書き込みたい • 個人的な理由であまりwindowsのプログラミングしたくない ◦ windows側の作業はローコストにしたい • 写真は大事なデータなのでクラウドでも保存したい • JAWS-UGがあるのでなんかAWSでやっときたい
やりたいこと
• WindowsからVRChatの画像にExifの撮影日を書き込みたい • 個人的な理由であまりwindowsのプログラミングしたくない ◦ windows側の作業はローコストにしたい • 写真は大事なデータなのでクラウドでも保存したい • JAWS-UGがあるのでなんかAWSでやっときたい
やりたいこと よっしゃじゃあ AWSでやるぞ!!
• WindowsからS3に画像アップロードが実は可能 ◦ aws cliを使う ◦ win scpを使う ▪ win
scpだといい感じの送信処理がすでに組み込まれてるので 楽 • 開発に関してはとりあえず手動でブラウザからアップロードして検証する windows から S3
• 最近の規格でPNGでもExifを書き込めるようになったがExif処理ライブラ リ側が未対応のものが現時点で多い ◦ コントリビュートチャンスとも言える • PNGではなくTIFFまたJPGEGに一度変換するとすんなりとExifを書き込 める • golangだと標準ライブラリPNGからJPEGに変換できる
◦ golangでlambdaをつくる PNGのつらみ
winscpで画像送信 lambdaでjpg変換しつつ EXIFを付与 winscpで画像取得
• lambdaのOS専用ランタイムをさっとつくる • golangのバイナリをbootstrapという名前でビルドする ◦ CGO_ENABLED=0 GOOS=linux go build -tags
lambda.norpc -o bootstrap ▪ CGO_ENABLED=0にしないとホストのglibcに依存して上手く起 動できない • zipで固めてアップロード!! lambdaアップロード
• 固めてアップロードする工程が面倒なのでlambrollを使う ◦ https://github.com/fujiwara/lambroll • lambroll init --function-name=anatofuz-XXX ◦ これですでに作成したlambdaリソースを引っ張る
• あとは生成されたfunction.jsonに設定を書き込む ◦ タイムアウト秒数の指定とか • バイナリを生成したらlambroll deployで全自動でアップロード lambroll
{ "Architectures": [ "x86_64" ], "EphemeralStorage": { "Size": 512 },
"FunctionName": "anatofuz-XXX", "Handler": "bootstrap", "LoggingConfig": { "LogFormat": "Text", "LogGroup": "/aws/lambda/anatofuz-XXX" }, "MemorySize": 128, "Role": "arn:aws:iam::.......", "Runtime": "provided.al2023", "SnapStart": { "ApplyOn": "None" }, "Timeout": 10, "TracingConfig": { "Mode": "PassThrough" } }
lambdaのトリガーで s3を指定
アップロードして ...
変換されてるつぽい
変換後の方に書き込まれてる !!
None
None
無事に日付順に!!! その結果
• windows起因で画像をaws ピタゴラスイッチでいい感じにした • lambrollでのデプロイ便利だった • 趣味でもAWSは便利!!! • あれこれローカルにNASしてミニPCのLinuxサーバーで処理すればよ かったのでは!?
まとめ