Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Godot Game EngineでGUI作成
Search
Yoshiki Shibukawa
August 28, 2020
Technology
5.1k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Godot Game EngineでGUI作成
Yoshiki Shibukawa
August 28, 2020
More Decks by Yoshiki Shibukawa
See All by Yoshiki Shibukawa
あなたはContextの挙動を説明できますか?
shibukawa
0
1.8k
妄想Real World HTTP第二版
shibukawa
0
4.5k
Other Decks in Technology
See All in Technology
AI駆動開発が変える、大規模開発の前提 ーHuman in the Loop から Human on the Loop へ / AIE2026
visional_engineering_and_design
30
22k
Claude Code の Sandbox 機能を Anthropic Sandbox Runtime(srt) で試そう!/lets-play-anthropic-sandbox-runtime
tomoki10
1
330
サプライチェーンセキュリティの空白地帯 - 信頼できる”依存性”の未来を考える
rung
PRO
2
800
エンジニアリング戦略の作り方 / Crafting Engineering Strategy
iwashi86
15
5k
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.8k
Microsoft Build Keynoteふりかえり
tomokusaba
0
120
LLMと共に進化するプロセスを目指して
ymatsuwitter
12
3.7k
Snowflakeと仲良くなる第一歩
coco_se
3
310
"何を作るか"を任される エンジニアは、どう育つのか
yutaokafuji
1
270
protovalidate-es を導入してみた
bengo4com
0
160
ITエンジニアを取り巻く環境とキャリアパス / A career path for Japanese IT engineers
takatama
4
1.8k
Platform Engineering as a Product: Criteria for Improvement and Multi-Tenant Design
kumorn5s
0
530
Featured
See All Featured
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
56k
Discover your Explorer Soul
emna__ayadi
2
1.1k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
140
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
What does AI have to do with Human Rights?
axbom
PRO
1
2.2k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.5k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
170
The Cult of Friendly URLs
andyhume
79
6.9k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
1.6k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
380
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.5k
Transcript
GodotでGUIアプリ作成 LT大会#10 Future Tech Summer! TIG 渋川よしき ゴドーと読みます
2 お前誰よ 渋川よしき 本田技術研究所:〜 2010年12月 DeNA:〜2017年8月 フューチャー(株):2017年9月〜 三女の父 著書 つまみぐい勉強法(共著)、
Real World HTTP第2版、Mithril、 Goならわかるシステムプログラミング 翻訳 エキスパートPythonプログラミング、 ソフトウェア開発スクラム、 ポモドーロテクニック入門、 アート・オブ・コミュニティ etc 好きな言語 JavaScript® / Go / Python プログラミング以外 インラインスケート@光が丘公園 アカウント github.com/shibukawa twitter.com/shibu_jp
3 今日、PyCon.jp 2020で発表してきました
ゲームエンジンと私 • 前職でngCoreというUSの会社が作ったゲームエンジン用にゲームのライブラリを 開発したり、ゲーム開発ツールを作ったり • 前々職で研修の自由研究で、pygameで有限要素法のシミュレーションを 実装してみたり • 趣味でUnreal Engineを触ったり
https://medium.com/swlh/what-makes-godot-engine-great-for-advance-gui-applications-b1cfb941df3b ゲームエンジンでGUIアプ リケーション作るのが未来 というブログ
いま個人的に注目している4大ゲームエンジン Pros Cons Unreal Engine 4/5 写実的なグラフィックス CADや外部ツール連携最強 ノンゲームでは今のところライセンス料不 要
強力な開発環境必須(CPU/GPU) モバイルはUnityの方が強い Unity 3D モバイルの安定度No.1 アセットストア充実 うちの規模だとライセンス購入必須 Egret Engine HTML5ゲームが盛んな中国でシェア No.1で小さいランタイム BSD 英語・日本語情報少ない TypeScriptでパフォーマンス弱め Godot Game Engine MITで企業バックがない中では安定して 機能も多い 比較的小さいランタイムで、WASMで HTML対応も 外部ツール連携は弱い 他にも、EbitenとかDefoldとか
キーワード:ノンゲーム • ゲームエンジンだけどゲーム以外の用途 ◦ 映像制作 ◦ マンションの内覧のデジタル化(含む VR) ◦ 自動車などのデジタルカタログ
• ゲームエンジンのイベントには必ずセッションが作られるようになってきた
プレイアブル広告 • 最近増えてきた形態 • 全画面占拠し、ちょっとゲームを体験 ◦ 漫画を読ませるパターンも今週初めて見た • 動画広告の最後にこれに移行する組み合わせパターンも •
容量1MBでJSも画像や音もbase64で1ファイルのHTMLに全部押し 込む必要あり(Facebook広告の場合) ◦ HTML5専用ゲームエンジンの出番
エンプラ視点でみる用途別の選択 • それぞれ主力環境が異なる ◦ 50インチ超のモニターで見せる展示用の リアルタイムCGならUnreal Engine ▪ WebRTCストリーミング配信もできる! ◦
VR/ARやモバイルが主軸、一般コンシューマー にアプリ配布もあるなら Unity 3D ↑ ◦ Godot Game Engineはこの間ぐらい ↓ ◦ とにかくファイルサイズを小さくしたい、 1MB以下でプレイアブル広告での配信 ブラウザでの利用がメインなら Egret
Godot Game Engine
Godot Game Engine • OSSで開発されていて、MITで公開されているゲームエンジン ◦ 内部構造やAPIはよくあるプロ向けのゲームエンジンと同じようなアーキテクチャ ◦ 2Dも3Dも両方対応しており、 2D利用時のパフォーマンスが良い
◦ 4.0が近々リリースで、3Dの表現力も相当高まる予定 • 実装の言語選択は柔軟 ◦ PythonっぽいGDScriptがメインだが、Visual Scriptもあり ◦ 公式でC#対応のバイナリも配布しているのと、 C++APIがあり各種言語のバインディングも • IDEもGodot Game Engineを使って作られている ◦ 開発環境、ランタイム一式のダウンロードのサイズが 30MBほど ◦ ゲーム用のオブジェクトだけではなく、 IDEで使うようなUI部品も多数提供されている
https://medium.com/swlh/what-makes-godot-engine-great-for-advance-gui-applications-b1cfb941df3b Godotのお話 もともと気になってい たが、GUIサポートが 手厚いのを知って今回 触って見た
プログラミングモデル • シーンを作り、それをインスタンス化 ◦ シーン=Javaでいうところのクラスのようなもの ◦ シーンはいくつかのノードが木構造になっている ◦ Javaと異なり、シーンエディタで最初からインスタンス化させておくことも可能 •
シーンやノードにスクリプト(GDScript、ビジュアルスクリプト)を付与 • シグナルでやライフサイクルメソッドでスクリプトを起動 ◦ 衝突、タイマー、GUIのボタンなどもシグナル ◦ スクリプトから他のノードの変数やメソッドにアクセス このあたりの仕組みはだいたいどのゲームエンジンも共通
普通のモバイルアプリっぽい機能 • GUIを作る機能は豊富に揃っている ◦ ツリービューやテーブルに使えそうなものも ◦ 日付のピッカーとウェブビューはない • 通信機能も ◦
HTTPRequest、WebSocket、WebRTC
ということで、作ってみました
某居酒屋注文タブレット風: 実質1.5日ぐらい(子供が寝たあと時間で)
JSONでメニュー情報流し 込んで表示 あと数行書けばウェブサー バーからメニュー配信もで きそう
オーダーリストをスライドイ ンアニメーションで もうちょい頑張ればオー ダーをサーバーへ送信する などもできそう
UI操作をビジュアル言語でカスタ マイズするのは楽しい 割り勘計算をやっています 偉い人と若い人で傾斜をつける 計算は要件の煮詰めが必要
ウェブに対するゲームエンジンの利点 • ブラウザ以外にも、Android/iOSネイティブ化、PCなどにも展開できる • スクロールの滑らかさ、応答性の良さ、タイミング、 うごきの滑らかさにフォーカスしてチューニングしやすい • (Godotは弱いが)外部のオーサリングツール(Digital Content Creation
Tool)で 作ったグラフィックやアニメーションをAs Isで取り込んでそのまま再生 • 秒間60フレームを超える描画も可能 ◦ iPad Proのような120フレームの機体ならそれにあわせて設定を向上できる
ビジュアル言語 • おもちゃのように見えるが、ゲーム業界でビジュアル言語は15年以上、実用的に使 われている ◦ プログラマー、アーティストという役職を分けるのではなく、全員がコミットできるようにするという設 計思想で、非プログラマーも使える言語として利用されている ◦ Unreal Engine
4では専業プログラマーであってもビジュアル言語だけで十分という人も増えている
学び方 • Packt Publishingから書籍1、ビデオ2が販売中 ◦ 書籍: Godot Engine Game Development
Project: 良い設計指標が盛り込まれている ◦ 動画: Game Development Project with Godot (3時間) ◦ 動画: Ultimate Godot Game Developer Projects (6.8時間) - 書籍の内容そのまま 3時間動画で学んだ後に 書籍を読むとよさそう • 個別のトピックは検索すると チュートリアル動画が出てくる
アフターコロナのニューノーマルの時代 • 直接販売のみでは販売機会が激減 • ECサイトは静的な写真のみ ◦ 小さいスマホの画面や PCの画面で伝わる情報量を増やす ◦ ゲームエンジンが行ってきたようなリアルへのこだわりをプラスで新たな付加価値を
◦ スクロールの気持ち良さなど操作性でも一歩先へ
例えばこういう演出 • パーティクル(粒子)エンジンで演出を強調 ◦ 光の効果、湯気 • ノーマル(法線)マップで光沢を強調→リアルタイムに動かす • バーテックス(頂点)モーフィングで柔らかさを強調 •
フォトグラメトリーを利用して3Dモデル化 ◦ 写真から3Dモデルを作る技法も最近増えてきた
まとめ • ゲームエンジンはエンプラとまったく違う進化をしてきたテクノロジー • Godot Game Engineで今までにないアプリ体験を ◦ 動きのあるデモ的な画面を素早く作ってみるとか ◦
動きのある実装は楽しい ◦ ゲームならではのオーバーリアル表現もプラスできる • 配布形態もさまざま ◦ Godotならモバイルアプリとしてはランタイムも小さく、 B2B2Cでも活用可能。WebAssemblyで配信 もできる ◦ 他のゲームエンジンならさらに多様( WebRTCで動画配信、ウェブ広告) • ビジュアル言語は何かオリジナルのを作ってみたいところ ◦ いろいろ業務でアイディアとか蓄積されてきたので今意欲が高まっている