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
580
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
810
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
golang-bob.pdf
iwatsukayura
0
130
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
290
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
CodeRabbitの効果検証と過ごしてみた3ヶ月
armondando
0
230
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
990
最近”作らせてる” ローカルAIアプリの話
akit37
0
460
phperだってパンチカードでコーディングしたい
o0h
PRO
0
320
Railsバージョンを4倍にした話
optim
0
290
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
600
Workers Cache を知る
syumai
0
360
外から家のPCの電源入れたい!をPHPで解決する
kawashimo0
1
130
Next.js: The final boss of Web Performance
guaca
0
190
Featured
See All Featured
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
330
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
How GitHub (no longer) Works
holman
316
150k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
630
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
530
WENDY [Excerpt]
tessaabrams
14
40k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
GitHub's CSS Performance
jonrohan
1033
470k
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1.2k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.9k
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サーバーで処理すればよ かったのでは!?
まとめ