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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
大喜利で理解するLLM as a Judge / Understanding LLM-as-a-Judge through Ogiri
rockname
0
190
SalesForceを内製化!? ~ HR事業を支える顧客管理基盤のインフラを大公開 ~
oku053
0
130
Unity6 URPによる海底をテーマにしたVJシステムの解説 | Unity Shader 完全に理解した 勉強会
gam0022
0
330
難しいけど、読めた。- OSSの入口に立った話。
sts11142
0
140
Are APIs Still Relevant in the AI Era?
soyuka
0
420
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
690
【加筆修正版】Laravel のアプリケーションをどこにデプロイするか #phpcon_ehime
akase244
0
150
App Storeの外へ──日本のiOSサイドローディング入門 for iOSDC Japan 2026
yuukiw00w
0
310
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
470
仕様駆動開発による爆速プロダクト開発 / Bakusoku Spec Driven Development
kobakei
0
190
Ghostty + Neovimで作る 透明でカッコ良い開発環境
j341nono
0
150
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.1k
Featured
See All Featured
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
460
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
400
Side Projects
sachag
456
43k
Test your architecture with Archunit
thirion
2
2.4k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Leo the Paperboy
mayatellez
10
2.3k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
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サーバーで処理すればよ かったのでは!?
まとめ