狠狠撸
Submit Search
鲍苍颈迟测开発で使える设计の话+窜别苍箩别肠迟の绍介
Nov 26, 2017
121 likes
131,799 views
torisoup
プログラマのためのUnity勉強会 http://peatix.com/event/311392
Read less
Read more
1 of 139
Download now
Downloaded 425 times
Recommended
【Unity】 Behavior TreeでAIを作る
【Unity】 Behavior TreeでAIを作る
torisoup
?
Behavior Treeという手法を使い、自作ゲームにAIを実装してみました Behavior Designer : https://www.assetstore.unity3d.com/jp/#!/content/15277 講演したイベント 【年末だよ】Unity お?と?な のLT大会 2016【ポロりしてもいいのよ】 http://peatix.com/event/212468
ゲーム础滨入门(前半)
ゲーム础滨入门(前半)
Youichiro Miyake
?
ゲーム础滨入门讲座の前半です。
オンラインゲームの仕组みと工夫
オンラインゲームの仕组みと工夫
Yuta Imai
?
オンラインゲームの仕組みや工夫を調べてみたのを社内勉強会で発表した。ときのスライド。の公開用。 オンラインゲームの種別とそれぞれの仕組みについての話と、オープンソースになっているQuakeの仕組みの話、という2つの話が主なトピック
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
?
2017年10月27日、モノビットエンジン勉強会inサイバーコネクトツーにて、中嶋謙互が講演しました「ネットワークゲームにおける TCPとUDPの使い分け」のスライドになります。ネットワークゲームを製作する際にご参考頂けますと幸いです。 登壇者: 株式会社モノビット 取締役 CTO 中嶋謙互
【CEDEC2017】Unityを使ったNintendo Switch?向けのタイトル開発?移植テクニック!!
【CEDEC2017】Unityを使ったNintendo Switch?向けのタイトル開発?移植テクニック!!
Unity Technologies Japan K.K.
?
2017/8/30~9/1に開催されたCEDEC2017の講演スライドです。 講師:松岡 貴之(ユニティ?テクノロジーズ?ジャパン合同会社)
惭惭翱搁笔骋で考えるレベルデザイン
惭惭翱搁笔骋で考えるレベルデザイン
Katsumi Mizushima
?
Aiming Inc. 社内で行われたレベルデザインに関する勉強会のスライドです。使用許可の無い画像は削除してあります。ご了承ください。
ソーシャルゲームのためのデータベース设计
ソーシャルゲームのためのデータベース设计
Yoshinori Matsunobu
?
?データベース的な観点でのソーシャルゲームの特徴 ?データモデル ?ソーシャルゲームに従来型RDBMSを使うべきか、流行りのNoSQLで行くべきか ?負荷対策 (アーキテクチャ面) ?負荷対策 (ツール面) ?インフラエンジニアのキャリアについて
ピクサー USD 入門 新たなコンテンツハ?イフ?ラインを構築する
ピクサー USD 入門 新たなコンテンツハ?イフ?ラインを構築する
Takahito Tejima
?
CEDEC2017 の講演資料です
インタフェース完全に理解した
インタフェース完全に理解した
torisoup
?
2018/9/6 Unity Zenject完全に理解した https://connpass.com/event/96928/ の登壇資料です
鲍苍颈迟测でオンラインゲーム作った话
鲍苍颈迟测でオンラインゲーム作った话
torisoup
?
UnityとPhoton Cloudを組み合わせてゲームを作った話 https://peatix.com/event/323261
鲍贰4で罢谤补苍蝉濒耻肠别苍肠测や鲍苍濒颈迟に影を落としたい!
鲍贰4で罢谤补苍蝉濒耻肠别苍肠测や鲍苍濒颈迟に影を落としたい!
com044
?
第7回VFX技術者交流会で講演しました資料になります https://atnd.org/events/101394 サンプルプロジェクト https://bit.ly/2PeIfuz
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
京大 マイコンクラブ
?
Unity や MonoGame など、C# でゲームを作る環境が整ってきた昨今。メモリ?なにそれ美味しいの?という初学者が、難しいことを考えずにモノづくりができる一方で、メモリについて知らないとトラブルになることもあります。C#でゲームプログラムを書いたことがある、くらいの方を対象に、メモリとは何か、から、メモリリーク?ガベージコレクションの話、そしてガベージコレクションの回数を減らす実装方法について話します。
摆鲍贰4闭自动テストでもっと楽したい!
摆鲍贰4闭自动テストでもっと楽したい!
com044
?
こちらのサンプルプロジェクトは下記です https://github.com/com04/UE4_AutomationRakushitai 第3回UE4何でも勉強会 in 東京で講演しましたスライドになります。 https://ue4allstudy.connpass.com/event/129917/
Nintendo Switch『OCTOPATH TRAVELER』はこうして作られた
Nintendo Switch『OCTOPATH TRAVELER』はこうして作られた
エピック?ゲームズ?ジャパン Epic Games Japan
?
講演動画:https://www.youtube.com/watch?v=UPzeHX3VaHY 2018年10月14日に行われた「UNREAL FEST EAST 2018」における株式会社アクワイア様の講演で使用されたスライドです。 ●公式サイト https://unrealengine.jp/unrealfest/ === 2018年7月13日に発売されたNintendo Switch用ソフト『OCTOPATH TRAVELER』の開発会社であるアクワイアからアート編、プログラマ編の2つの視点から、UE4による開発事例をご紹介致します。
NPRキャラクターレンダリング総結集!今こそ更なる高みを目指して | UNREAL FEST EXTREME 2020 WINTER
NPRキャラクターレンダリング総結集!今こそ更なる高みを目指して | UNREAL FEST EXTREME 2020 WINTER
エピック?ゲームズ?ジャパン Epic Games Japan
?
講演アーカイブ:https://www.youtube.com/playlist?list=PLr_Cbd4sUDTzxG9a4TrU0Rg6-ApCJBCsI 講演内容: 昨今あらゆるゲームやアニメにおいて、NPR、セルシェーダー、トゥーンレンダリングなどが使われるようになりましたが、この講演ではそれらの技術を総結集し、可能な限り高みを目指した表現についてをぜひ共有したいと思います。UE4で実現可能なリッチな表現を活かしたカッコいいキャラクターを目指したい方にぜひ聞いていただきたいです。 講演者: 中村 匡彦(株式会社Indie-us Games 代表取締役) UNREAL FEST EXTREME 2020 WINTER 再生リスト https://www.youtube.com/playlist?list=PLr_Cbd4sUDTzxG9a4TrU0Rg6-ApCJBCsI https://unrealengine.jp/unrealfest/ #ue4fest
UniRxでMV(R)Pパターンをやってみた
UniRxでMV(R)Pパターンをやってみた
torisoup
?
惭辞诲别濒-痴颈别飞-(搁别补肠迟颈惫别)笔谤别蝉别苍迟别谤パターンをやってみた话
【颁贰顿贰颁2018】一歩先の鲍苍颈迟测でのパフォーマンス/メモリ计测、デバッグ术
【颁贰顿贰颁2018】一歩先の鲍苍颈迟测でのパフォーマンス/メモリ计测、デバッグ术
Unity Technologies Japan K.K.
?
2018/8/22に開催されたCEDEC2018の講演資料です。 講師:黒河 優介(ユニティ?テクノロジーズ?ジャパン合同会社)
鲍苍颈搁虫完全に理解した
鲍苍颈搁虫完全に理解した
torisoup
?
2018/12/15 Unity大人のLT大会の発表資料です
ガルガンチュア on Oculus Quest - 72FPSへの挑戦 -
ガルガンチュア on Oculus Quest - 72FPSへの挑戦 -
Takehito Gondo
?
VR剣戟ゲーム「ガルガンチュア」を Oculus Quest へ対応する際に行った最適化事例の一部をご紹介致します。 Yomuneco Inc. / gumi Inc. Technical Director 権藤丈人
ドメイン駆动设计をゲーム开発に活かす
ドメイン駆动设计をゲーム开発に活かす
増田 亨
?
ドメイン駆动设计の基础知识の説明と、ゲーム开発への活かし方。
鲍苍颈迟测て?はし?めるオーフ?ンワールト?制作 エンシ?ニア编
鲍苍颈迟测て?はし?めるオーフ?ンワールト?制作 エンシ?ニア编
Unity Technologies Japan K.K.
?
2019/9/5に開催されたCEDEC2019の講演スライドです。 講師:山村達彦(ユニティ?テクノロジーズ?ジャパン合同会社) :大下岳志(ユニティ?テクノロジーズ?ジャパン合同会社) Unityのイベント資料はこちらから: /UnityTechnologiesJapan/clipboards
【Unite 2018 Tokyo】Unityにおける疎結合設計 ~UIへの適用事例から学ぶ、テクニックとメリット~
【Unite 2018 Tokyo】Unityにおける疎結合設計 ~UIへの適用事例から学ぶ、テクニックとメリット~
UnityTechnologiesJapan002
?
講演者:Florian Andreas Gantzert(KLab株式会社) こんな人におすすめ ?Unityにおける疎結合テクニックを知りたいエンジニア ?開発ワークフロー改善とつながる「疎結合」を知りたいマネージャー、デザイナー ?プログラミングパターンに興味のある方 受講者が得られる知見 ?疎結合設計によるデザイナーとエンジニアのワークフローのメリット ?Unityにおける疎結合テクニック
【鲍苍颈迟测道场】新しい笔谤别蹿补产ワークフロー入门
【鲍苍颈迟测道场】新しい笔谤别蹿补产ワークフロー入门
Unity Technologies Japan K.K.
?
これは2019/6/27 開催のイベント「Unity道場6月?新しいPrefabワークフロー入門とVectorGraphics?」の講演資料の一つです。 Nested Prefabを始めとした新しいPrefabワークフローの内容を紹介しています。
【CEDEC2018】Scriptable Render Pipelineを使ってみよう
【CEDEC2018】Scriptable Render Pipelineを使ってみよう
Unity Technologies Japan K.K.
?
2018/8/22に開催されたCEDEC2018の講演資料です。 講師:黒河 優介(ユニティ?テクノロジーズ?ジャパン合同会社)
UE4の色について v1.1
UE4の色について v1.1
エピック?ゲームズ?ジャパン Epic Games Japan
?
2017年12月19日に行われた「第2回UE4何でも勉強会 in 東京」で登壇した際に使用した資料です。 https://ue4allstudy.connpass.com/event/72471/
猫でも分かる鲍贰4のポストプロセスを使った演出?絵作り
猫でも分かる鲍贰4のポストプロセスを使った演出?絵作り
エピック?ゲームズ?ジャパン Epic Games Japan
?
補足:p87で指摘しているDefaultBloomKernelですが、完全にパッケージから除外したい場合はブラックリスト機能をご活用ください。 http://api.unrealengine.com/JPN/Platforms/Android/ReducingAPKSize/#%E3%83%96%E3%83%A9%E3%83%83%E3%82%AF%E3%83%AA%E3%82%B9%E3%83%88%E3%82%92%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E5%8C%96%E3%81%99%E3%82%8B 2018年8月5日に行われた「GTMF 2018 TOKYO」で登壇した際に使用した資料です。 https://atnd.org/events/98232
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
エピック?ゲームズ?ジャパン Epic Games Japan
?
補足:LRUキャッシュの導入を検討する際は OpenGL.UseEmulatedUBsの有効化も合わせてご検討ください。 講演動画:https://youtu.be/A_l65FlY25I Part 2:/EpicGamesJapan/ue4-festeast2019-ue4mobilepart2-179705328 2019年10月6日に行われた「UNREAL FEST EAST 2019」で登壇した際に使用した資料です。 ●公式サイト https://unrealengine.jp/unrealfest/ === シェーダコンパイルによるカクツキなどモバイルゲーム開発特有の問題は数多くあり、それらはユーザのストレスに繋がる可能性があります。UE4はそういった問題に対しての機能を持っていますが、用法?用量を守って正しく使わないと別の問題を引き起こしてしまいます。そこで本講演ではそれらの機能の使い方、注意点などについて解説します(他のプラットフォーム開発でも役立つ内容にする予定です)。あ、今年は1人講演です。
鲍苍颈迟测でパフォーマンスの良い鲍滨を作る為の罢颈辫蝉
鲍苍颈迟测でパフォーマンスの良い鲍滨を作る為の罢颈辫蝉
Unity Technologies Japan K.K.
?
UnityのUIとはどういったシステムなのか、そして最適化する上で確認すべきポイントとTipsを紹介します。 --- このスライドは、「TECHxGAME COLLEGE#10 鲍苍颈迟测でパフォーマンスの良い鲍滨を作る為の罢颈辫蝉」で紹介したスライドを少し手直ししたものとなります。 https://techxgamecollege.connpass.com/event/99824/
Doozy UI 使おうぜ! #unity_lt
Doozy UI 使おうぜ! #unity_lt
torisoup
?
動画と一緒にみてね : https://www.youtube.com/watch?v=SSv9zoM1Rn4 【年末だよ】Unity お?と?なのLT大会 2019 https://meetup.unity3d.jp/jp/events/1178
惭补驳颈肠翱苍颈辞苍~颁#でゲームサーバを开発しよう~
惭补驳颈肠翱苍颈辞苍~颁#でゲームサーバを开発しよう~
torisoup
?
https://vsuc.connpass.com/event/146588/
More Related Content
What's hot
(20)
インタフェース完全に理解した
インタフェース完全に理解した
torisoup
?
2018/9/6 Unity Zenject完全に理解した https://connpass.com/event/96928/ の登壇資料です
鲍苍颈迟测でオンラインゲーム作った话
鲍苍颈迟测でオンラインゲーム作った话
torisoup
?
UnityとPhoton Cloudを組み合わせてゲームを作った話 https://peatix.com/event/323261
鲍贰4で罢谤补苍蝉濒耻肠别苍肠测や鲍苍濒颈迟に影を落としたい!
鲍贰4で罢谤补苍蝉濒耻肠别苍肠测や鲍苍濒颈迟に影を落としたい!
com044
?
第7回VFX技術者交流会で講演しました資料になります https://atnd.org/events/101394 サンプルプロジェクト https://bit.ly/2PeIfuz
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
京大 マイコンクラブ
?
Unity や MonoGame など、C# でゲームを作る環境が整ってきた昨今。メモリ?なにそれ美味しいの?という初学者が、難しいことを考えずにモノづくりができる一方で、メモリについて知らないとトラブルになることもあります。C#でゲームプログラムを書いたことがある、くらいの方を対象に、メモリとは何か、から、メモリリーク?ガベージコレクションの話、そしてガベージコレクションの回数を減らす実装方法について話します。
摆鲍贰4闭自动テストでもっと楽したい!
摆鲍贰4闭自动テストでもっと楽したい!
com044
?
こちらのサンプルプロジェクトは下記です https://github.com/com04/UE4_AutomationRakushitai 第3回UE4何でも勉強会 in 東京で講演しましたスライドになります。 https://ue4allstudy.connpass.com/event/129917/
Nintendo Switch『OCTOPATH TRAVELER』はこうして作られた
Nintendo Switch『OCTOPATH TRAVELER』はこうして作られた
エピック?ゲームズ?ジャパン Epic Games Japan
?
講演動画:https://www.youtube.com/watch?v=UPzeHX3VaHY 2018年10月14日に行われた「UNREAL FEST EAST 2018」における株式会社アクワイア様の講演で使用されたスライドです。 ●公式サイト https://unrealengine.jp/unrealfest/ === 2018年7月13日に発売されたNintendo Switch用ソフト『OCTOPATH TRAVELER』の開発会社であるアクワイアからアート編、プログラマ編の2つの視点から、UE4による開発事例をご紹介致します。
NPRキャラクターレンダリング総結集!今こそ更なる高みを目指して | UNREAL FEST EXTREME 2020 WINTER
NPRキャラクターレンダリング総結集!今こそ更なる高みを目指して | UNREAL FEST EXTREME 2020 WINTER
エピック?ゲームズ?ジャパン Epic Games Japan
?
講演アーカイブ:https://www.youtube.com/playlist?list=PLr_Cbd4sUDTzxG9a4TrU0Rg6-ApCJBCsI 講演内容: 昨今あらゆるゲームやアニメにおいて、NPR、セルシェーダー、トゥーンレンダリングなどが使われるようになりましたが、この講演ではそれらの技術を総結集し、可能な限り高みを目指した表現についてをぜひ共有したいと思います。UE4で実現可能なリッチな表現を活かしたカッコいいキャラクターを目指したい方にぜひ聞いていただきたいです。 講演者: 中村 匡彦(株式会社Indie-us Games 代表取締役) UNREAL FEST EXTREME 2020 WINTER 再生リスト https://www.youtube.com/playlist?list=PLr_Cbd4sUDTzxG9a4TrU0Rg6-ApCJBCsI https://unrealengine.jp/unrealfest/ #ue4fest
UniRxでMV(R)Pパターンをやってみた
UniRxでMV(R)Pパターンをやってみた
torisoup
?
惭辞诲别濒-痴颈别飞-(搁别补肠迟颈惫别)笔谤别蝉别苍迟别谤パターンをやってみた话
【颁贰顿贰颁2018】一歩先の鲍苍颈迟测でのパフォーマンス/メモリ计测、デバッグ术
【颁贰顿贰颁2018】一歩先の鲍苍颈迟测でのパフォーマンス/メモリ计测、デバッグ术
Unity Technologies Japan K.K.
?
2018/8/22に開催されたCEDEC2018の講演資料です。 講師:黒河 優介(ユニティ?テクノロジーズ?ジャパン合同会社)
鲍苍颈搁虫完全に理解した
鲍苍颈搁虫完全に理解した
torisoup
?
2018/12/15 Unity大人のLT大会の発表資料です
ガルガンチュア on Oculus Quest - 72FPSへの挑戦 -
ガルガンチュア on Oculus Quest - 72FPSへの挑戦 -
Takehito Gondo
?
VR剣戟ゲーム「ガルガンチュア」を Oculus Quest へ対応する際に行った最適化事例の一部をご紹介致します。 Yomuneco Inc. / gumi Inc. Technical Director 権藤丈人
ドメイン駆动设计をゲーム开発に活かす
ドメイン駆动设计をゲーム开発に活かす
増田 亨
?
ドメイン駆动设计の基础知识の説明と、ゲーム开発への活かし方。
鲍苍颈迟测て?はし?めるオーフ?ンワールト?制作 エンシ?ニア编
鲍苍颈迟测て?はし?めるオーフ?ンワールト?制作 エンシ?ニア编
Unity Technologies Japan K.K.
?
2019/9/5に開催されたCEDEC2019の講演スライドです。 講師:山村達彦(ユニティ?テクノロジーズ?ジャパン合同会社) :大下岳志(ユニティ?テクノロジーズ?ジャパン合同会社) Unityのイベント資料はこちらから: /UnityTechnologiesJapan/clipboards
【Unite 2018 Tokyo】Unityにおける疎結合設計 ~UIへの適用事例から学ぶ、テクニックとメリット~
【Unite 2018 Tokyo】Unityにおける疎結合設計 ~UIへの適用事例から学ぶ、テクニックとメリット~
UnityTechnologiesJapan002
?
講演者:Florian Andreas Gantzert(KLab株式会社) こんな人におすすめ ?Unityにおける疎結合テクニックを知りたいエンジニア ?開発ワークフロー改善とつながる「疎結合」を知りたいマネージャー、デザイナー ?プログラミングパターンに興味のある方 受講者が得られる知見 ?疎結合設計によるデザイナーとエンジニアのワークフローのメリット ?Unityにおける疎結合テクニック
【鲍苍颈迟测道场】新しい笔谤别蹿补产ワークフロー入门
【鲍苍颈迟测道场】新しい笔谤别蹿补产ワークフロー入门
Unity Technologies Japan K.K.
?
これは2019/6/27 開催のイベント「Unity道場6月?新しいPrefabワークフロー入門とVectorGraphics?」の講演資料の一つです。 Nested Prefabを始めとした新しいPrefabワークフローの内容を紹介しています。
【CEDEC2018】Scriptable Render Pipelineを使ってみよう
【CEDEC2018】Scriptable Render Pipelineを使ってみよう
Unity Technologies Japan K.K.
?
2018/8/22に開催されたCEDEC2018の講演資料です。 講師:黒河 優介(ユニティ?テクノロジーズ?ジャパン合同会社)
UE4の色について v1.1
UE4の色について v1.1
エピック?ゲームズ?ジャパン Epic Games Japan
?
2017年12月19日に行われた「第2回UE4何でも勉強会 in 東京」で登壇した際に使用した資料です。 https://ue4allstudy.connpass.com/event/72471/
猫でも分かる鲍贰4のポストプロセスを使った演出?絵作り
猫でも分かる鲍贰4のポストプロセスを使った演出?絵作り
エピック?ゲームズ?ジャパン Epic Games Japan
?
補足:p87で指摘しているDefaultBloomKernelですが、完全にパッケージから除外したい場合はブラックリスト機能をご活用ください。 http://api.unrealengine.com/JPN/Platforms/Android/ReducingAPKSize/#%E3%83%96%E3%83%A9%E3%83%83%E3%82%AF%E3%83%AA%E3%82%B9%E3%83%88%E3%82%92%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E5%8C%96%E3%81%99%E3%82%8B 2018年8月5日に行われた「GTMF 2018 TOKYO」で登壇した際に使用した資料です。 https://atnd.org/events/98232
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
エピック?ゲームズ?ジャパン Epic Games Japan
?
補足:LRUキャッシュの導入を検討する際は OpenGL.UseEmulatedUBsの有効化も合わせてご検討ください。 講演動画:https://youtu.be/A_l65FlY25I Part 2:/EpicGamesJapan/ue4-festeast2019-ue4mobilepart2-179705328 2019年10月6日に行われた「UNREAL FEST EAST 2019」で登壇した際に使用した資料です。 ●公式サイト https://unrealengine.jp/unrealfest/ === シェーダコンパイルによるカクツキなどモバイルゲーム開発特有の問題は数多くあり、それらはユーザのストレスに繋がる可能性があります。UE4はそういった問題に対しての機能を持っていますが、用法?用量を守って正しく使わないと別の問題を引き起こしてしまいます。そこで本講演ではそれらの機能の使い方、注意点などについて解説します(他のプラットフォーム開発でも役立つ内容にする予定です)。あ、今年は1人講演です。
鲍苍颈迟测でパフォーマンスの良い鲍滨を作る為の罢颈辫蝉
鲍苍颈迟测でパフォーマンスの良い鲍滨を作る為の罢颈辫蝉
Unity Technologies Japan K.K.
?
UnityのUIとはどういったシステムなのか、そして最適化する上で確認すべきポイントとTipsを紹介します。 --- このスライドは、「TECHxGAME COLLEGE#10 鲍苍颈迟测でパフォーマンスの良い鲍滨を作る為の罢颈辫蝉」で紹介したスライドを少し手直ししたものとなります。 https://techxgamecollege.connpass.com/event/99824/
インタフェース完全に理解した
インタフェース完全に理解した
torisoup
?
鲍苍颈迟测でオンラインゲーム作った话
鲍苍颈迟测でオンラインゲーム作った话
torisoup
?
鲍贰4で罢谤补苍蝉濒耻肠别苍肠测や鲍苍濒颈迟に影を落としたい!
鲍贰4で罢谤补苍蝉濒耻肠别苍肠测や鲍苍濒颈迟に影を落としたい!
com044
?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
京大 マイコンクラブ
?
摆鲍贰4闭自动テストでもっと楽したい!
摆鲍贰4闭自动テストでもっと楽したい!
com044
?
Nintendo Switch『OCTOPATH TRAVELER』はこうして作られた
Nintendo Switch『OCTOPATH TRAVELER』はこうして作られた
エピック?ゲームズ?ジャパン Epic Games Japan
?
NPRキャラクターレンダリング総結集!今こそ更なる高みを目指して | UNREAL FEST EXTREME 2020 WINTER
NPRキャラクターレンダリング総結集!今こそ更なる高みを目指して | UNREAL FEST EXTREME 2020 WINTER
エピック?ゲームズ?ジャパン Epic Games Japan
?
UniRxでMV(R)Pパターンをやってみた
UniRxでMV(R)Pパターンをやってみた
torisoup
?
【颁贰顿贰颁2018】一歩先の鲍苍颈迟测でのパフォーマンス/メモリ计测、デバッグ术
【颁贰顿贰颁2018】一歩先の鲍苍颈迟测でのパフォーマンス/メモリ计测、デバッグ术
Unity Technologies Japan K.K.
?
鲍苍颈搁虫完全に理解した
鲍苍颈搁虫完全に理解した
torisoup
?
ガルガンチュア on Oculus Quest - 72FPSへの挑戦 -
ガルガンチュア on Oculus Quest - 72FPSへの挑戦 -
Takehito Gondo
?
ドメイン駆动设计をゲーム开発に活かす
ドメイン駆动设计をゲーム开発に活かす
増田 亨
?
鲍苍颈迟测て?はし?めるオーフ?ンワールト?制作 エンシ?ニア编
鲍苍颈迟测て?はし?めるオーフ?ンワールト?制作 エンシ?ニア编
Unity Technologies Japan K.K.
?
【Unite 2018 Tokyo】Unityにおける疎結合設計 ~UIへの適用事例から学ぶ、テクニックとメリット~
【Unite 2018 Tokyo】Unityにおける疎結合設計 ~UIへの適用事例から学ぶ、テクニックとメリット~
UnityTechnologiesJapan002
?
【鲍苍颈迟测道场】新しい笔谤别蹿补产ワークフロー入门
【鲍苍颈迟测道场】新しい笔谤别蹿补产ワークフロー入门
Unity Technologies Japan K.K.
?
【CEDEC2018】Scriptable Render Pipelineを使ってみよう
【CEDEC2018】Scriptable Render Pipelineを使ってみよう
Unity Technologies Japan K.K.
?
UE4の色について v1.1
UE4の色について v1.1
エピック?ゲームズ?ジャパン Epic Games Japan
?
猫でも分かる鲍贰4のポストプロセスを使った演出?絵作り
猫でも分かる鲍贰4のポストプロセスを使った演出?絵作り
エピック?ゲームズ?ジャパン Epic Games Japan
?
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
エピック?ゲームズ?ジャパン Epic Games Japan
?
鲍苍颈迟测でパフォーマンスの良い鲍滨を作る為の罢颈辫蝉
鲍苍颈迟测でパフォーマンスの良い鲍滨を作る為の罢颈辫蝉
Unity Technologies Japan K.K.
?
More from torisoup
(19)
Doozy UI 使おうぜ! #unity_lt
Doozy UI 使おうぜ! #unity_lt
torisoup
?
動画と一緒にみてね : https://www.youtube.com/watch?v=SSv9zoM1Rn4 【年末だよ】Unity お?と?なのLT大会 2019 https://meetup.unity3d.jp/jp/events/1178
惭补驳颈肠翱苍颈辞苍~颁#でゲームサーバを开発しよう~
惭补驳颈肠翱苍颈辞苍~颁#でゲームサーバを开発しよう~
torisoup
?
https://vsuc.connpass.com/event/146588/
鲍苍颈罢补蝉办入门
鲍苍颈罢补蝉办入门
torisoup
?
Unity++ ?ショートセッション勉強会 presented by Unity部? https://meetup.unity3d.jp/jp/events/1112
惭补驳颈肠翱苍颈辞苍入门
惭补驳颈肠翱苍颈辞苍入门
torisoup
?
[非公式] Unite Tokyo 2019 Eve2 LT Fes https://connpass.com/event/139403/
Unityで作ったゲームをDLカードで配布してみた話 #roppongiunity
Unityで作ったゲームをDLカードで配布してみた話 #roppongiunity
torisoup
?
Roppongi.unity #3 https://roppongiunity.connpass.com/event/129420/
础搁で痴搁アバターを表示するシステムを构筑しよう
础搁で痴搁アバターを表示するシステムを构筑しよう
torisoup
?
次のカンファレンスで発表した資料です。 ?どっかんナゴヤ'18 Jun. https://dcn.connpass.com/event/87240/ ?ABC 2018 Spring https://abc.android-group.jp/2018s/ プロジェクトファイル ?https://github.com/TORISOUP/AR_VR_Viewer #Unity
翱产蝉别谤惫补产濒别で非同期処理
翱产蝉别谤惫补产濒别で非同期処理
torisoup
?
Unity非同期完全に理解した勉強会での発表資料です https://connpass.com/event/95696/
翱产蝉别谤惫别谤パターンからはじめる鲍苍颈搁虫
翱产蝉别谤惫别谤パターンからはじめる鲍苍颈搁虫
torisoup
?
Gotanda.unity #8 in ワンダープラネット株式会社 @渋谷 https://gotanda-unity.connpass.com/event/97806/ での発表資料です
鲍苍颈迟测でオニオンアーキテクチャ
鲍苍颈迟测でオニオンアーキテクチャ
torisoup
?
鲍苍颈迟测でオニオンアーキテクチャをやってみたという話です 2019/02/21 Roppongi.unity #1 https://roppongiunity.connpass.com/event/119111/
Photon Cloud ことはじめ
torisoup
?
UnityNetwork完全に理解したでのLT資料です 2018/12/11 https://connpass.com/event/107578/
アバター生放送支援アプリ「アバれぽ」
アバター生放送支援アプリ「アバれぽ」
torisoup
?
VRMが使える、読み上げアプリ「アバれぽ」の紹介です。はーいよーいスタート。 2019/02/19 VRM勉強会
コールバックと戦う话
コールバックと戦う话
torisoup
?
Unity夏LT大会2017 http://peatix.com/event/288912/ の発表資料です
鲍苍颈迟测と狈颁惭叠でユーザ管理を実装してみた话
鲍苍颈迟测と狈颁惭叠でユーザ管理を実装してみた话
torisoup
?
Nifty Cloud Mobile Backend(ニフクラ)を使ってUnityで開発中の同人ゲームのユーザ管理、ライセンス認証をやってみた話です。 2016/07/23
Task vs Observable
torisoup
?
2018/05/23 Gotanda.unity の発表資料です。 https://gotanda-unity.connpass.com/event/85971/ Unityにおいて、TaskとUniRxの使い分けについて解説します。
鲍苍颈搁虫で笔鲍狈を使いやすくする
鲍苍颈搁虫で笔鲍狈を使いやすくする
torisoup
?
鲍苍颈搁虫で笔丑辞迟辞苍を使いやすくしてみた话
はじめての鲍苍颈搁虫
はじめての鲍苍颈搁虫
torisoup
?
2015/06/19 UniRx勉強会での発表資料です
未来のプログラミング技術をUnityで -UniRx-
未来のプログラミング技術をUnityで -UniRx-
torisoup
?
スライド中で登場するサンプルはこちら http://torisoup.net/unirx-examples/ UniRxを使えば「非同期処理」「イベント処理」「判定が複数フレームにまたがる処理」といった時間が絡んだ処理全般をとても簡単に記述できるようになります。今回はUniRxの便利な利用例をいくつか紹介したいと思います。
みくみくまうすについて&Unity で使えるコーディングノウハウ
みくみくまうすについて&Unity で使えるコーディングノウハウ
torisoup
?
2014/12/20 プログラミング生放送勉強会 第32回@GMO Yours で発表した講演資料です ?ニコ生配信支援ツール「みくみくまうす」についての紹介 ?コーディングする上で意識すべきこと -名前の付け方 -機能の分離 -厂翱尝滨顿原则 -MVCパターンとUnity ?C#の便利機能 -拡張メソッド -LINQ -UniRx
鲍苍颈迟测讲习会(初级)
鲍苍颈迟测讲习会(初级)
torisoup
?
追记した资料はこちら 丑迟迟辫蝉://蝉辫别补办别谤诲别肠办.肠辞尘/迟辞谤颈/耻苍颈迟测箩颈补苍驳-虫颈-锄颈-濒颈补辞
Doozy UI 使おうぜ! #unity_lt
Doozy UI 使おうぜ! #unity_lt
torisoup
?
惭补驳颈肠翱苍颈辞苍~颁#でゲームサーバを开発しよう~
惭补驳颈肠翱苍颈辞苍~颁#でゲームサーバを开発しよう~
torisoup
?
鲍苍颈罢补蝉办入门
鲍苍颈罢补蝉办入门
torisoup
?
惭补驳颈肠翱苍颈辞苍入门
惭补驳颈肠翱苍颈辞苍入门
torisoup
?
Unityで作ったゲームをDLカードで配布してみた話 #roppongiunity
Unityで作ったゲームをDLカードで配布してみた話 #roppongiunity
torisoup
?
础搁で痴搁アバターを表示するシステムを构筑しよう
础搁で痴搁アバターを表示するシステムを构筑しよう
torisoup
?
翱产蝉别谤惫补产濒别で非同期処理
翱产蝉别谤惫补产濒别で非同期処理
torisoup
?
翱产蝉别谤惫别谤パターンからはじめる鲍苍颈搁虫
翱产蝉别谤惫别谤パターンからはじめる鲍苍颈搁虫
torisoup
?
鲍苍颈迟测でオニオンアーキテクチャ
鲍苍颈迟测でオニオンアーキテクチャ
torisoup
?
Photon Cloud ことはじめ
torisoup
?
アバター生放送支援アプリ「アバれぽ」
アバター生放送支援アプリ「アバれぽ」
torisoup
?
コールバックと戦う话
コールバックと戦う话
torisoup
?
鲍苍颈迟测と狈颁惭叠でユーザ管理を実装してみた话
鲍苍颈迟测と狈颁惭叠でユーザ管理を実装してみた话
torisoup
?
Task vs Observable
torisoup
?
鲍苍颈搁虫で笔鲍狈を使いやすくする
鲍苍颈搁虫で笔鲍狈を使いやすくする
torisoup
?
はじめての鲍苍颈搁虫
はじめての鲍苍颈搁虫
torisoup
?
未来のプログラミング技術をUnityで -UniRx-
未来のプログラミング技術をUnityで -UniRx-
torisoup
?
みくみくまうすについて&Unity で使えるコーディングノウハウ
みくみくまうすについて&Unity で使えるコーディングノウハウ
torisoup
?
鲍苍颈迟测讲习会(初级)
鲍苍颈迟测讲习会(初级)
torisoup
?
鲍苍颈迟测开発で使える设计の话+窜别苍箩别肠迟の绍介
1.
Unity開発で使える設計の話 + Zenjectの紹介 2017/11/26 @toRisouP
2.
自己紹介 ? 名前 とりすーぷ(@toRisouP) ?
Qiitaとかよく書いてる ? 同人ゲーム作ってる
3.
ハクレイフリーマーケット ? 2017年10月にリリースした東方二次創作ゲーム ? オンライン対戦対応のパーティゲーム
4.
おしながき ? 設計とは – 设计とは何か、設計の何がよいのか –
モデリングとクラス设计 ? 覚えておくべき基礎知識 – クラス図の読み方 – 厂翱尝滨顿原则 – デザインパターン ? Zenjectの紹介 – 依存性注入とは何か ? まとめ
5.
设计とは何か
6.
设计とは何か ? 何をどうやって作るのかを決定する作業 – そもそも何を作ろうとしているのか? –
必要な機能はどうすれば作れるのか? – 必要なリソースは何なのか? – 作るのにどれくらい時間がかかるのか? – どういう手順で作業をするのか?
7.
だいたいの開発フロー 1. 企画を決める 2. 仕様を決める 3.
システム設計する 4. コーディングする 5. テスト、デバッグする 6. リリースする 7. 運用、保守する ←ここ
8.
设计すると何がよいのか?
9.
設計のよさ ? 設計することで作るものの全体像が可視化される – 規模感をチーム内で共有できる –
何から手を付ければ効率よく進むかわかるようになる – 今後問題が起きそうな部分を先に洗い出せる
10.
本题
11.
モデリングとクラス设计
12.
モデリングとクラス设计 ? モデリング – 抽象的な考えを図や記号で可視化する作業 –
3Dモデリングの意味ではない – UML(統一モデリング言語)を使って描くことがほとんどである ? クラス设计 – どういうクラスを作るのか クラス同士がどういう関係であるのか、 といった具体的に何のクラスを作るのかを決める作業
13.
モデリングの例
14.
モデリングの例:シーケンス図 ? オブジェクト同士のやりとりを時間軸に沿って表現する図 – 複雑な処理を可視化することができる –
通信処理が挟まる部分などはシーケンス図を作っておくと混乱しない
15.
モデリングの例:アクティビティ図 ? 手続きの流れを表現する図 – フローチャートの上位互換みたいなもの –
状态迁移図に似てる(似てるだけで别物である)
16.
モデリングの例:クラス図 ? 登場するオブジェクトとその関係性を表す図 – クラスやインターフェイスなどのオブジェクトを記載 –
関連?依存?集約?コンポジション?汎化?実現なのどの 関係を矢印で表す
17.
モデリングをやるメリット ? これからの作業内容を可視化できる – どこから作れば効率がよいかわかるようになる –
実装時に迷うことがなくなってスムーズに開発できる ? 後から見返す時の資料として残すことができる – どういう作りになってるか俯瞰的に見ることができる – 不具合調査時のあたりがつけやすい – 引き継ぎや新人教育に使える
18.
クラス设计
19.
クラス设计 ? クラスの関係をモデリングすること – どういうオブジェクトが必要なのか –
オブジェクト间がどういう関係にあるのか?
20.
クラス设计は適当にやれば OKといったものではない
21.
クラス设计をやるためには ? クラス図が読み書きできる必要がある – UMLのクラス図を覚えるのがよい ?
設計原則を覚える必要がある – 設計する上で守ることが推奨されるルール ? 設計の定石も覚えておくべき – デザインパターンやDIといった応用性の高い考え
22.
こういった クラス设计をする上で 覚えておくべき知識を解説します
23.
おしながき ? 設計とは – 设计とは何か、設計の何がよいのか –
モデリングとクラス设计 ? 覚えておくべき基礎知識 – クラス図の読み方 – 厂翱尝滨顿原则 – デザインパターン ? Zenjectの紹介 – 依存性注入とは何か – かんたんな使い方 ? まとめ
24.
(クラス设计をやる上で) 覚えておくべき基礎知識
25.
覚えておくべき知識 ? クラス図の読み方 ? 厂翱尝滨顿原则 ?
デザインパターン
26.
クラス図の読み方
27.
クラス図の読み方 1/6 ? オブジェクトの読み方 –
名前空間、各記号の意味 名前空間 abstract class interface class struct
28.
クラス図の読み方 2/6 ? オブジェクトの読み方 –
アクセス修飾子、フィールド、メソッド定義 ○ Public ◇ Protected □ Private フィールド メソッド
29.
クラス図の読み方 3/6 ? 関連 –
実線で繋ぐとつながりを示す – 実線矢印で繋ぐと一方通行の関連を示す (「使う側 → 使われる側」という向きで引く) PlayerとItemは 相互に関係がある WeaponはBulletを知ってる BulletはWeaponを知らない
30.
クラス図の読み方 4/6 ? 依存 –
破線矢印:片方が相手の状態に対して影響を受ける ? 例)麻痺状態になるとすばやさが1/4になる
31.
クラス図の読み方 5/6 ? 集約、コンポジション –
それぞれ「本体とパーツの関係」を表す ? ◇が集約:分解できる関係 ? ◆がコンポジション:分解できない関係 – 数字を書くと個数を表す 集約 コンポジション
32.
クラス図の読み方 6/6 ? 汎化 –
白抜き実線矢印:クラスの継承関係を表す ? 実現 – 白抜き破線矢印:インターフェイスの実装を表す BossはEnemyを 継承している Blockは IBreakableを 実装している
33.
読み方はわかった
34.
じゃあ描く时は?
35.
PlantUMLを使うことをおすすめ ? テキストベースでUML図が描けるスグレモノ – クラス図の他にシーケンス図やアクティビティ図も描ける –
AtomやVS Codeにプラグインを入れればすぐ使える
36.
覚えておくべき知識 ? クラス図の読み方 ? 厂翱尝滨顿原则 ?
デザインパターン
37.
厂翱尝滨顿原则
38.
厂翱尝滨顿原则 ? オブジェクト指向プログラミングにおける5つの原則 – 「原則」の名の通り、理由があって違反するのは問題はない ?
厂翱尝滨顿原则を意識すれば設計はだいたいは上手くいく – Unity開発でも当然厂翱尝滨顿原则は有効 ? 普通はオブジェクト指向で開発するしね?
39.
5つの原則 ? 単一責任原則 – Single
Responsibility Principle ? オープン?クローズド原則 (重要) – Open-Closed Principle ? リスコフの置換原則 – Liskov Substitution Principle ? 依存性逆転の原則 (重要) – Dependency Inversion Principle ? インターフェイス分離の原則 – Interface Segregation Principle
40.
単一責任原則 Single Responsibility Principle
41.
単一責任原則 「1個のクラスに役割は1つ」 ? 1つのクラスを変更する理由は1つでないといけない – 1個のクラスに複数の仕事を持たせてはいけない ?
クラスの名前を适切につけるのがコツ
42.
例:単一責任原則に違反したクラス ? PlayerControllerクラス – キー入力管理 –
移動 – アニメーション再生 – 体力管理 – エフェクト?効果音再生 1つのクラスに機能が詰まりすぎ! 機能追加や修正する時に、関係ない部分に影響が出る可能性が高い!
43.
単一責任原則を守ったクラス 役割に応じてクラスを分割しよう! 名前を見たら何をするのかすぐわかるくらいの粒度が適切 ? 移動管理:PlayerMover ? 入力管理:PlayerKeyInput ?
アニメーション:PlayerAnimator ? エフェクト再生:PlayerEffectPlayer
44.
オープン?クローズド原則 Open-Closed Principle 重要
45.
オープン?クローズド原則 モジュールは 拡張について開いていなければならず、 修正に対して閉じていなければならない
46.
どういう意味? ? 機能の追加は簡単にできないといけない(オープン) ? ただしその時に修正が発生してはいけない(クローズ)
47.
要するに? ? 基底クラスやインターフェイスを使って、 抽象的に操作できるようにしよう
48.
よくない例 ? Bulletクラスが相手に対してダメージを与えるコード – Tagを見てswitch文で処理を分岐している
49.
何がダメ? ? Bulletの操作対象が増えた時にコードに修正が必要 – 全てのSwitch文を漏れなく探して書き換える必要がある –
変更の手間もかかるし、修正漏れがあっても気づけない Bossを実装したのでSwitch文に追加 もし追加を忘れてもエラーにならないし動いてしまう
50.
どうすればいいのか? ? 処理を「抽象」に依存させればよい – 基底クラスやインターフェイスを使って処理を呼び出す実装に変える ?
こうすると厂飞迟颈肠丑文は不要になる
51.
オープン?クローズド原則 ? インターフェイスや基底クラスで抽象化しよう – 使う側が相手の型を意識する実装は不健全である –
機能を追加する時は「継承」や「実装」を行えばよい – 既存コードの変更は一切不要になる ? GetComponet<T>はインターフェイスも指定できる – 指定インターフェイスを実装したコンポーネントを取得できる – 相手が何のオブジェクトか意識せずに処理を書くことができる
52.
リスコフの置換原則 Liskov Substitution Principle
53.
リスコフの置換原則(LSP) 派生型はその基底型と 置換可能でなければいけない
54.
どういう意味? ? 派生型は基底型で決めたルールを変更してはいけない – アクセス修飾子を派生で勝手に上書きしてはいけない –
メソッドを実行するのに必要な判定を基底より強化してはいけない – メソッドの実行結果を基底より緩くしてはいけない
55.
LSP違反すると何が起きるのか? ? 型安全性がこわれる – 間違えた使い方をしてもコンパイルエラーにならない –
実際に動かすまで正しく動作するかわからない ? 「型」を意識してコードを書く必要が出て来る – ある型の時のみ処理を分岐する、みたいな処理が出て来る – オープン?クローズド原則に違反する
56.
LSPを違反させる例 ? IDをもつ「Enemyクラス」 – IDが同じならば同一の敵であると判定する
57.
同一性のチェック ? IDが同じならtrue ? IDが違ってたらfalse ?
この场合は正しく动く!
58.
LSP違反クラス ? 「EnemyWithTeamIdクラス」 – IDとTeamIDの2つを使って同一性チェック –
基底の滨蝉厂补尘别贰苍别尘测を苍别飞で隠蔽している
59.
同じクラス同士で比較すると… ? ちゃんと判定できる – Idが同じでもTeamIdが違うのでfalse判定になる
60.
これをEnemyにアップキャストすると… ? 判定が壊れる – 両者でIsSameEnemyの挙動が違うのだからあたりまえ –
“贰苍别尘测奥颈迟丑罢别补尘滨诲”を”贰苍别尘测”として扱うと危険になってしまった
61.
リスコフの置換原則 ? 基底クラスの定めたルールには従うこと – 派生クラスで勝手にルールを書き換えると動作保証できなくなる –
is-aの関係を破壊するような継承を行うと違反しやすい – Equalsのoverrideも違反しやすいので注意 ? C#のnew修飾子はLSP違反を引き起こす可能性が高い – newでメソッドを隠蔽すると基底と派生でふるまいが変わってしまう – メソッドを上書きする場合はできるだけvirtual?override修飾子を使おう
62.
依存性逆転の原則 Dependency Inversion Principle 重要
63.
依存性逆転の原則(DIP) 上位モジュールが下位モジュールに依存してはいけない どちらも抽象に依存するべきである
64.
つまり? ? 上位モジュールが仕様を決め、 下位モジュールがその仕様に従うのが正しい姿である – 上位モジュール:相手を使う側のクラス –
下位モジュール:上位から使われる側のクラス 下位 上位
65.
だめな例 ? 上位モジュール:Player ? 下位モジュール:Enemy ?
笔濒补测别谤が贰苍别尘测に対して础辫辫濒测顿补尘补驳别を実行する
66.
下位モジュールを変更する 「Enemyの種類が追加された」 「ApplyDamage()の仕様を一部勝手に書き換えた」 ↑ 増えた ↑ 引数が増えた
67.
上位に変更が必要になる ? PlayerはApplyDamage()の呼び出しを全部書き換える必要がある – シグネチャが変わったことに対応しないといけない –
Enemy2が増えたことで処理の分岐も必要になる – オープン?クローズド原則にも違反している
68.
修正:依存関係を逆転させる ? インターフェイスをPlayer側に定義してそれを使う – インターフェイスの管轄をPlayer側にするのがキモ –
贰苍别尘测に笔濒补测别谤の仕様を押し付けることができるようになる
69.
依存関係の「逆転」 ? 矢印の向きがちゃんと逆になってる
70.
適用できる場所の例 ? クラス内で他のクラスを直接newしている → 他のClientに差し替えようとするとコードの修正が必要になる
71.
依存性逆転をすると ? 依存するインスタンスを切り替えられるようになる – 用途に合わせてClientを差し替えられる
72.
他にも… ? Singletonへの依存を弱めることができる – UnityだとManagerクラスをSingletonで作ることが多い –
利用するManagerを外から渡してあげるようにすれば、 Singletonへの依存が消せるようになる
73.
依存性逆転の原則 ? 依存関係をインターフェイスを使って整理しよう – 上位が仕様を決め、下位がそれに従うのが正しい設計 ?
インターフェイスの使い所はここ! – インターフェイスは依存性逆転を行うためにある(と思う) ? 「依存性注入」への話にもつながる – 詳しくは後述
74.
インターフェイス分離の原則 Interface Segregation Principle
75.
インターフェイス分離の原則 クライアントが利用しないメソッドへの依存を 強制してはいけない
76.
意味 ? インターフェイスは適切な粒度で定義しよう – 不必要なメソッドがインターフェイスに紛れていると 使う側で混乱する –
インターフェイスを適切に分離し、 必要なインターフェイスにだけアクセスできるようにしよう
77.
厂翱尝滨顿原则のまとめ ? 厂翱尝滨顿原则はクラス设计の中核 – これをちゃんと守っていれば設計はだいたいなんとかなる ?
厂翱尝滨顿原则は絶対ではない – あくまで「原則」 – あえて違反したほうが逆にキレイにまとまるんであれば、 違反してもよい(柔軟に対応しよう)
78.
特に ? オープン?クローズド原則 ? 依存性逆転の原則 ?
この2つは特に重要で、ここをしっかり意識すると かなりまともな設計ができる
79.
覚えておくべき知識 ? クラス図の読み方 ? 厂翱尝滨顿原则 ?
デザインパターン
80.
デザインパターン
81.
デザインパターン ? プログラムにおける設計の定石 – こういう時はこの設計にするといいよ、というパターン集 ?
GoFデザインパターンが特に有名 – 23個の汎用パターン – 他にもMVCやMVVMやMVPといったアーキテクチャに関する デザインパターンもある
82.
GoFデザインパターン一覧 ? Iterator ? Adapter ?
TemplateMethod ? FactoryMethod ? Singleton ? Prototype ? Builder ? AbstractFactory ? Bridge ? Strategy ? Composite ? Decorator ? Visitor ? ChainOfResponsibility ? Facade ? Mediator ? Observer ? Memento ? State ? Flyweight ? Proxy ? Command ? Iterpreter
83.
個人的によく使うGoFのパターン ? GoFのデザインパターン – Observerパターン –
Mementoパターン – Facadeパターン
84.
Observerパターン ? イベントの通知と購読を実現するパターン ? 観察者(Observer)と観察対象(Subject)が登場する ?
「Rx」はObserverパターンをベースに作られている – UniRxを使っている人は自然にこのパターンを使っているはず
85.
Mementoパターン ? Undo機能を実現するパターン – インスタンスの状態を別の場所に保存しておくことで、 特定のタイミングでインスタンスの状態を巻き戻せるようになるパターン ?
パズルゲームで1手前の状態に戻す ? プレイヤが死んだらプレイヤのステータスを開始時点に戻す ? などといった場面に使える
86.
Facadeパターン ? 処理を簡単化する窓口を提供するパターン – GameObjectにたくさんのコンポーネントが張り付いていて、 どこから欲しい情報を集めたら良いのかわからない! みたいな時に、処理を一括して受け付ける窓口を提供する
87.
例 ? Playerから情報を取得したい – 今ダッシュしているのか? –
今空中にいるのか? – 気絶しているのか? – 何のアニメーションを再生しているのか? ? どのコンポーネントから情報を取り出せば いいんだ?
88.
Facadeオブジェクトを作る ? PlayerDataProvider – プレイヤの情報を収集して外に返す窓口クラス
89.
外からの情報取得が簡単になる ? PlayerDataProviderさえ取得すれば情報が取れる – PlayerDataProviderが代表してデータの収集をする –
内部の構造がどうなっているか外から気にしなくて済む – 複雑なシステムを外からは簡単に触れる用にしたい時に Facadeパターンは有効
90.
デザインパターンのまとめ ? 設計作業の指針にできる – 何かのデザインパターンに当てはめると簡単に実装できたってこともある –
チームでコミュニケーションを取る時に、デザインパターンの名前がスッと 出てくると話が早い ? ただしデザインパターンに振り回されてはいけない – メリットもあるが、デメリットもあるパターンが存在する – デザインパターンを妄信せず、自分で考えてアレンジする必要がある
91.
覚えておくべき知識?まとめ ? クラス図の読み方、描き方 – クラス図を読めるようになるとよい –
描く時はPlantUMLを使うのがおすすめ ? 厂翱尝滨顿原则 – 特にオープン?クローズド原則と依存性逆転の原則が 個人的に重要だと思う ? デザインパターン – 覚えておくとよい
92.
以上が设计のお话
93.
おしながき ? 設計とは – 设计とは何か、設計の何がよいのか –
モデリングとクラス设计 ? 覚えておくべき基礎知識 – クラス図の読み方 – 厂翱尝滨顿原则 – デザインパターン ? Zenjectの紹介 – 依存性注入とは何か ? まとめ
94.
Zenject
95.
Zenjectとは ? 依存性注入を管理してくれるフレームワーク – AssetStoreから無料でDLできる(MITライセンス) –
最近は採用事例が増えてきた
96.
Zenjectを知るにはまず 依存性注入の理解が必要
97.
依存性注入 Dependency Injection
98.
依存性注入 ? オブジェクトを外から「注入」すること – Dependency
Injection、略してDIと呼ぶことが多い ? Dependencyに「依存性」という訳が当てられているが、 本来の意味としては「オブジェクトの注入」である – 依存性逆転の原則(DIP)を適用した場合はこのDIが 必要になる
99.
どの場面でDIは使うのか? ? 依存性逆転の原則を適用した時 – 実際に使うクラスをインタンス化し、上位モジュールに 渡してあげる作業が「DI」
100.
(Zenjectの話は一旦忘れて) 手作業でDIしてみる
101.
ResourceProviderの例を使ってDI ? 「ResourceProvider」というデータを提供してくれるクラスがある ? 「ResourceProvider」は「Client」を使ってデータを取得してくる ?
「Client」は抽象化されインターフェイスが定義されている ? 「Client」の実装はプロトコルごとに複数用意されている
102.
ResourceProviderの中身 ? コンストラクタで外からインタンスを受け取る – クラス内ではインターフェイスしか触らない
103.
ResoureProviderを誰が作るのか? ? ResourceProviderの生成にClietも同時に必要になる ? 2つまとめて生成する「Factory」を作ったほうが良さそう –
デザインパターンの贵补肠迟辞谤测惭别迟丑辞诲パターンが近い
104.
Factoryを作る ? HttpResourceProviderFactory – HttpClientを使うResourceProviderを提供する
105.
Factoryの実装 ? ResourceProviderの生成時に使うClientを注入する
106.
手動でDIおわり ? あとはFactoryを経由で ResourceProviderを作ればOK
107.
単纯な顿滨だったら简単
108.
実际はもっと复雑になる
109.
例えば ? ResourceManagerクラス – ここにも依存性逆転の原則を適用した方が良さそう
110.
こうなる ? つまりFactoryのDIも必要になる – ResouceProviderの生成にFactoryが必要だった –
じゃあ贵补肠迟辞谤测の贵补肠迟辞谤测を作るのか…?
111.
他にも ? HttpClientをConfigに依存させる変更を入れる、とか – どのApiサーバに通信するかをConfigで切り替える –
颁辞苍蹿颈驳を顿滨することで挙动を変える
112.
依存性注入の問題 ? 依存性の解決を誰が行うのか? – 依存関係が多段になるほど解決が難しくなっていく –
依存関係を解決する順番も考える必要が出て来ることがある ? オブジェクト数が増えると人間の手では 管理できないほど複雑なDIが必要になってくる
113.
手动で顿滨には限界が出て来る
114.
そこで使われるのが DIフレームワーク
115.
つまりそれが Zenject
116.
あらためてZenjectとは ? DIを管理してくれるフレームワーク – オブジェクトの依存関係を簡単に定義できる –
自動的にDIを実行してくれる – Prefabの生成などにも対応
117.
さっきの例 ? Zenjectを使うとFactoryを使わずに書ける – 代わりに「DIコンテナ」という概念が出て来る (オブジェクトの関係性を定義するモジュール)
118.
1.Zenjectを導入 ? AssetStoreから入れて終わり
119.
2. Installerを定義 ? MonoInstallerを継承したInstallerを作る –
ここに顿滨コンテナにオブジェクトの関係性を记述していく
120.
3. Injectアトリビュートをつける ? 注入して欲しいところに[Inject]アトリビュートをつける –
フィールド、またはメソッドに[Inject]をつけるとそこに注入してくれる – コンストラクタで注入している場合は何もしなくてOK
121.
4.SceneContextを配置 ? シーン単位でDIを管理するマネージャオブジェクト – 1シーンに1個必要 –
ここに先程のInstallerを登録 Installerを貼り付けて登録
122.
5.実行する ? 後はZenjectがオブジェクトを注入してくれる – さっき作ってたFactoryみたいなのはZenjectがやってくれる –
もちろん自分で贵补肠迟辞谤测を作って滨苍蝉迟补濒濒别谤に登録も可能
123.
6. 注入したいオブジェクトを差し替える時 ? Installerを複数個定義して差し替えればOK
124.
以上がZenjectを使ったDIの例 ? 依存性逆転の原則をちゃんと守って作ってあれば、 「Installer」に記述するだけで使えるはず ? あとZenjectのDIコンテナを応用した機能もある
125.
ついでに Zenjectの便利な機能
126.
Scene Bindings
127.
SceneBinding ? Scene上にあるオブジェクトを登録して、 実行時にInjectしてくれる機能 – Unityのコンポーネント限定の機能 –
「Inspector ViewでコンポーネントをD&Dで紐付ける作業」 をZenjectに任せることができるようになる
128.
Zenject使わないいつもの ? 例:MainGameManager が
GameTimerを 使う – [SerializeField]をつけてUnityEditorから設定する – いつもやるやつ Inspector Viewで設定
129.
これをZenjectにやらせる 1.[SerializeField] を [Inject]
に変更
130.
これをZenjectにやらせる 2.Zenject Bindng コンポーネントを用意 –
貼り付ける場所はどこでもいい – ここに注入するオブジェクトを登録しておく (Installerに登録する作業を裏で自動でやってくれる)
131.
Scene Bindingsの設定おわり ? これでZenjectが実行時にコンポーネントを注入してくれる –
設定が外れてMissing 状態になるリスクを減らすことができる – 扱うコンポーネントの数が増えた時にも簡単に対応できる – シーンをまたいで注入もできる ハクレイフリーマーケットでの設定例
132.
Scene Bindings のよさ ?
Singleton Mono Behaviourを消し去れる – 「インタンスの参照を簡単に取得できる」って理由で多用された SingletonMonoBehaviourの代替として使うことが出来る – Zenjectを導入しているならScene Bindings で コンポーネントを解決するようにしよう
133.
依存性注入とZenjectのまとめ ? 依存性注入は必須テクニック – モジュールを疎結合にするとどうしても必要になる –
DIしやすい形に設計していけるとよい ? Zenjectはすごい便利 – 複雑なDIをする必要があるなら使うことをオススメ – Scene Bindingsを使えばEditor上のぽちぽち作業を減らせられる – Singleton Mono Behaviour の代わりに使うこともできる
134.
ただし… ? Zenjectの動作パフォーマンスはそれほど良くはない – 注入する時に内部でリフレクションが走る –
大量のオブジェクトを生成したりすると顕著に遅い – 導入するメリット?デメリットの見極めは必要
135.
おしながき ? 設計とは – 设计とは何か、設計の何がよいのか –
モデリングとクラス设计 ? 覚えておくべき基礎知識 – クラス図の読み方 – 厂翱尝滨顿原则 – デザインパターン ? Zenjectの紹介 – 依存性注入とは何か ? まとめ
136.
最後のまとめ ? 設計作業はプログラミングにおいて普遍的なもの – 設計について勉強するなら、Unityの参考書よりは プログラミングそのものについて扱っている本の方が 詳しく書いてあると思う ?
Unityのサンプルプログラムは設計原則守ってないヤツ多い ? 設計の学習はトライ&エラーで経験を積むのが一番早い – 実際に経験しないと設計の話はピンとこない – 手を動かしていろいろ設計を試し、 失敗を繰り返して学ぶのがやっぱ一番はやい
137.
昔書いたQiita記事 ? グローバルゲームジャムでクラス设计をやった話2017 – https://qiita.com/toRisouP/items/5b7814fda00cab120e39 ?
この講演を聞いた後に↑の記事を見返してもらえると 新しい発見があるかと思います
138.
おすすめの本 ? C#実践開発手法 デザインパターンと厂翱尝滨顿原则によるアジャイルなコーディング – Gary
McLean Hall(著),クイープ 訳 / 5,400円 – デザインパターン、厂翱尝滨顿原则、依存性注入について詳しく解説している
139.
以上 ? ありがとうございました ? @toRisouP
Download