SlideShare a Scribd company logo
1 of 30
Download to read offline
Unityでつくる
はじめてのPONG

2012/9/15 パンダの会 その七
HTML5-West.jp kadoppe




                        1
自己紹介
• 名前:門脇   恒平 (28) @kadoppe

• 職業:エンジニア
Rails, (Java¦Coffee)Script, Objective-C

• 肩書き:
HTML5-West.jpコアメンバー/ShareWis Inc. CTO

• 趣味:ポッドキャスト/        Ust配信

                        2
本日の資料

• プレゼンスライド


• SlideShare: http://www.slideshare.net/kadoppe


• プロジェクト


• http://kadoppe.com/downloads/pong.zip



                        3
Chapter 1:
Unityとはなんぞや。



             4
5
Unityとは?
• 3Dゲーム開発ツール


• スローガン:「ゲーム開発を民主化する!」


                      シンプルで
   高度な知識が必要
                     わかりやすい
               民主化


    多額の出費            お手頃価格




                6
Unityの2つの側面
• 3Dゲーム統合開発環境


•   3Dコンテンツをインタラクティブに編集

•   Windows, Mac OS Xで動作

• ゲームエンジン


•   マルチプラットフォーム

    •   Windows, Mac OS X, Webブラウザ, iOS, Android

                          7
プログラミング言語


 JavaScript   or       C#



Web屋さんだったらJavaScriptがオススメ?



               8
気になるお値段
                    無印         Pro
    Unity
                    無料       ¥127,500
 (Win, Mac, Web)

    + iOS          ¥34,500   ¥127,500

 + Android         ¥34,500   ¥127,500


      趣味で使う分には無料で十分!


                      9
サンプルゲーム




      10
Chapter 2:
Unityでつくる
はじめてのPONG


             11
ライブコーディング
         といってもコーディングは少ないです




    12
何をつくろうか考えた

ゲームをほとんどつくったことがない。




シンプルなゲームしか多分つくれない。



  シンプル+ゲーム = PONG !?


              13
これからつくるもの
• PONG(ポン)


  • 1972年に登場したシンプルな卓球ゲーム




出典:http://www.justpushstart.com/2012/02/atari-wants-you-to-make-pong-for-ios/
                                                                                出典:http://gigazine.net/news/20061023_plasma_pong/




                                                                           14
開発手順
•   目標:PONG(一人遊び用)の完成

•   Step 1:設計

•   Step 2:パーツの配置

•   Step 3:カメラと光源の設定

•   Step 4:ボールを動かす

•   Step 5:ラケットを動かす

•   Step 6:ゴールの検出

•   Step 7:Web用に書き出す
                       15
準備:Unityの画面レイアウト



                               インスペクタ
                               オブジェクトの
                               様々な値を設定




   ヒエラルキー         プロジェクト
 ゲームの世界に配置されている     ゲームに必要な
 オブジェクトの階層構造を表示   ファイルを管理・表示



                    16
Step 1
         設計
                壁




                ボール   ラケット
ゴール                          ゴール
         ラケット

                壁



                17
Step 2
         パーツの配置
• あらかじめ用意されている基本的な形状を利用


• 位置・角度・大きさを指定していく




            Sphere (球体)        直方体 (Cube)


         Cube・Sphereを使ってパーツをどんどん配置

                          18
Step 3
         カメラと光源の設定

• なんだか暗い


• アングルもよくない




          カメラ(プレイヤーの視点)の移動

         Directional Light(線光源)の配置


                     19
Step 4
         ボールを動かす


• 手順1:ボールに物理特性を設定する


• 手順2:ボールに初速を加える


• 手順3:ボールが跳ね返るようにする




             20
Step 4   手順1:ボールに物理特性を設定する



• 物体に何かしらの運動をさせたい時は物理特性が必要



     ボールに物理特性「Rigidbody(剛体)」を設定




                 21
Step 4    手順2:ボールに初速を加える
• ボールは力を与えないと動かない


• スクリプトからボールに対してさまざなま作用を与え
 ることが可能
 rigidbody.AddForce( // 力を加えるメソッド
     (transform.forward + transform.right) * 10, // 力の向きと強さ
     ForceMode.VelocityChange // 力の与え方
     );


          JavaScriptでボールに初速を与えてみる

                             22
Step 4   手順3:ボールが跳ね返るようにする


• ボールが跳ね返らない
                           ぺた・・




  ボールや壁に跳ね返るような「Material(材質)」を設定



                23
Step 5
         ラケットを動かす
• カーソルキー入力でラケットに力を与える

 rigidbody.AddForce(
     transform.right * Input.GetAxisRaw(“Horizontal”) * 1000.0,
     ForceMode.Impulse
     );



    ラケットに物理特性「Rigidbody(剛体)」を設定

  JavaScriptでキー入力をもとにラケットに力を与えてみる



                               24
Step 6
         ゴールの検出

• ボールとゴールの衝突→ゴール


• せめてボールを中央に戻したい


 function OnCollisionEnter(info : Collision) {
   // ボールが何かとぶつかった時の処理
 }

                   ボールと壁の衝突を検出
         衝突検出後、ボールを中央にワープさせる

                                25
Step 6
         Web用に書き出す
• 2通りの出力方法


• どちらもブラウザにプラグインが必要




          Unity        Flash



                  26
完成!




暗く・見づらい   見やすい・動く   ブラウザで!




             27
さらに学びたい方へ

• はじめての               Unity ¦ Developer [UNITY]
 http://japan.unity3d.com/developer/document/tutorial/my-first-unity/



• [書籍]       Unity入門



• Unityユーザー助け合い所
 https://www.facebook.com/groups/unityuserj/?bookmark_t=group




                                                 28
まとめ
• 3Dゲーム開発ツール「Unity」


 • 使いやすい3Dコンテンツエディタ


 • マルチプラットフォーム


• PONG(のようなもの)を実際につくってみた




                 29
おしまい!

ご清聴ありがとうございました!



       30

More Related Content

What's hot

Git flowの活用事例
Git flowの活用事例Git flowの活用事例
Git flowの活用事例Hirohito Kato
 
新規事業が対峙する現実からエンジニアリングを俯瞰する #devsumiB #devsumi
新規事業が対峙する現実からエンジニアリングを俯瞰する #devsumiB #devsumi新規事業が対峙する現実からエンジニアリングを俯瞰する #devsumiB #devsumi
新規事業が対峙する現実からエンジニアリングを俯瞰する #devsumiB #devsumiItsuki Kuroda
 
福井県CDO補佐官提案
福井県CDO補佐官提案福井県CDO補佐官提案
福井県CDO補佐官提案Yukio Okajima
 
VIPER アーキテクチャによる iOS アプリの設計
VIPER アーキテクチャによる iOS アプリの設計VIPER アーキテクチャによる iOS アプリの設計
VIPER アーキテクチャによる iOS アプリの設計Yuichi Adachi
 
【AgileJapan2022】アジャイルで進めるSDGs実現への歩み_稲葉涼太20221115.pdf
【AgileJapan2022】アジャイルで進めるSDGs実現への歩み_稲葉涼太20221115.pdf【AgileJapan2022】アジャイルで進めるSDGs実現への歩み_稲葉涼太20221115.pdf
【AgileJapan2022】アジャイルで進めるSDGs実現への歩み_稲葉涼太20221115.pdfRyota Inaba
 
文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜
文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜
文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜Mikito Yoshiya
 
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ増田 亨
 
衝突判定
衝突判定衝突判定
衝突判定Moto Yan
 
【Unity道場スペシャル 2017札幌】最適化をする前に覚えておきたい技術 -札幌編-
【Unity道場スペシャル 2017札幌】最適化をする前に覚えておきたい技術 -札幌編-【Unity道場スペシャル 2017札幌】最適化をする前に覚えておきたい技術 -札幌編-
【Unity道場スペシャル 2017札幌】最適化をする前に覚えておきたい技術 -札幌編-Unity Technologies Japan K.K.
 
AI時代の要件定義
AI時代の要件定義AI時代の要件定義
AI時代の要件定義Zenji Kanzaki
 
Objective-C のキャストと Swift の型変換を比べてみる #akibaswift
Objective-C のキャストと Swift の型変換を比べてみる #akibaswiftObjective-C のキャストと Swift の型変換を比べてみる #akibaswift
Objective-C のキャストと Swift の型変換を比べてみる #akibaswiftTomohiro Kumagai
 
LayerXのQAチームで目指したい動き方 (社内資料)
LayerXのQAチームで目指したい動き方 (社内資料)LayerXのQAチームで目指したい動き方 (社内資料)
LayerXのQAチームで目指したい動き方 (社内資料)mosa siru
 
はじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダーはじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダーSaeko Yamamoto
 
アーキテクチャのレビューについて - JaSST Review '18
アーキテクチャのレビューについて - JaSST Review '18アーキテクチャのレビューについて - JaSST Review '18
アーキテクチャのレビューについて - JaSST Review '18Yusuke Suzuki
 
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜Preferred Networks
 
Leanstartupをリーンにヤル #リーンスタートアップ
Leanstartupをリーンにヤル #リーンスタートアップLeanstartupをリーンにヤル #リーンスタートアップ
Leanstartupをリーンにヤル #リーンスタートアップItsuki Kuroda
 
どうして昔の人は八進数でしゃべるのか?
どうして昔の人は八進数でしゃべるのか?どうして昔の人は八進数でしゃべるのか?
どうして昔の人は八進数でしゃべるのか?たけおか しょうぞう
 
テストを書こう、Unity編
テストを書こう、Unity編テストを書こう、Unity編
テストを書こう、Unity編Hiroto Imoto
 
MRTK V2で積木アプリを作る
MRTK V2で積木アプリを作るMRTK V2で積木アプリを作る
MRTK V2で積木アプリを作るTakahiro Miyaura
 

What's hot (20)

Git flowの活用事例
Git flowの活用事例Git flowの活用事例
Git flowの活用事例
 
新規事業が対峙する現実からエンジニアリングを俯瞰する #devsumiB #devsumi
新規事業が対峙する現実からエンジニアリングを俯瞰する #devsumiB #devsumi新規事業が対峙する現実からエンジニアリングを俯瞰する #devsumiB #devsumi
新規事業が対峙する現実からエンジニアリングを俯瞰する #devsumiB #devsumi
 
福井県CDO補佐官提案
福井県CDO補佐官提案福井県CDO補佐官提案
福井県CDO補佐官提案
 
VIPER アーキテクチャによる iOS アプリの設計
VIPER アーキテクチャによる iOS アプリの設計VIPER アーキテクチャによる iOS アプリの設計
VIPER アーキテクチャによる iOS アプリの設計
 
【AgileJapan2022】アジャイルで進めるSDGs実現への歩み_稲葉涼太20221115.pdf
【AgileJapan2022】アジャイルで進めるSDGs実現への歩み_稲葉涼太20221115.pdf【AgileJapan2022】アジャイルで進めるSDGs実現への歩み_稲葉涼太20221115.pdf
【AgileJapan2022】アジャイルで進めるSDGs実現への歩み_稲葉涼太20221115.pdf
 
文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜
文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜
文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜
 
Tackling Complexity
Tackling ComplexityTackling Complexity
Tackling Complexity
 
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
 
衝突判定
衝突判定衝突判定
衝突判定
 
【Unity道場スペシャル 2017札幌】最適化をする前に覚えておきたい技術 -札幌編-
【Unity道場スペシャル 2017札幌】最適化をする前に覚えておきたい技術 -札幌編-【Unity道場スペシャル 2017札幌】最適化をする前に覚えておきたい技術 -札幌編-
【Unity道場スペシャル 2017札幌】最適化をする前に覚えておきたい技術 -札幌編-
 
AI時代の要件定義
AI時代の要件定義AI時代の要件定義
AI時代の要件定義
 
Objective-C のキャストと Swift の型変換を比べてみる #akibaswift
Objective-C のキャストと Swift の型変換を比べてみる #akibaswiftObjective-C のキャストと Swift の型変換を比べてみる #akibaswift
Objective-C のキャストと Swift の型変換を比べてみる #akibaswift
 
LayerXのQAチームで目指したい動き方 (社内資料)
LayerXのQAチームで目指したい動き方 (社内資料)LayerXのQAチームで目指したい動き方 (社内資料)
LayerXのQAチームで目指したい動き方 (社内資料)
 
はじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダーはじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダー
 
アーキテクチャのレビューについて - JaSST Review '18
アーキテクチャのレビューについて - JaSST Review '18アーキテクチャのレビューについて - JaSST Review '18
アーキテクチャのレビューについて - JaSST Review '18
 
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
 
Leanstartupをリーンにヤル #リーンスタートアップ
Leanstartupをリーンにヤル #リーンスタートアップLeanstartupをリーンにヤル #リーンスタートアップ
Leanstartupをリーンにヤル #リーンスタートアップ
 
どうして昔の人は八進数でしゃべるのか?
どうして昔の人は八進数でしゃべるのか?どうして昔の人は八進数でしゃべるのか?
どうして昔の人は八進数でしゃべるのか?
 
テストを書こう、Unity編
テストを書こう、Unity編テストを書こう、Unity編
テストを書こう、Unity編
 
MRTK V2で積木アプリを作る
MRTK V2で積木アプリを作るMRTK V2で積木アプリを作る
MRTK V2で積木アプリを作る
 

Similar to UnityでつくるはじめてのPONG

ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみたゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみたKohei Kadowaki
 
Windows10とRaspberryPiで MakerFaireTokyoに参加
Windows10とRaspberryPiでMakerFaireTokyoに参加Windows10とRaspberryPiでMakerFaireTokyoに参加
Windows10とRaspberryPiで MakerFaireTokyoに参加Yuki Ando
 
ゲームエンジン導入セミナー【UDK編】
ゲームエンジン導入セミナー【UDK編】ゲームエンジン導入セミナー【UDK編】
ゲームエンジン導入セミナー【UDK編】Junya "Jun" Shimoda
 
Oculus 体験・勉強会「VRコンテンツ制作入門」 2015/05/13
Oculus 体験・勉強会「VRコンテンツ制作入門」 2015/05/13Oculus 体験・勉強会「VRコンテンツ制作入門」 2015/05/13
Oculus 体験・勉強会「VRコンテンツ制作入門」 2015/05/13Hiromichi Yamada
 
Cocos2dを使ったi phoneゲーム開発手法
Cocos2dを使ったi phoneゲーム開発手法Cocos2dを使ったi phoneゲーム開発手法
Cocos2dを使ったi phoneゲーム開発手法Nishida Kansuke
 
「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainer「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainerYuta Matsumura
 
ゆるロボ製作所ができるまで
ゆるロボ製作所ができるまでゆるロボ製作所ができるまで
ゆるロボ製作所ができるまでMikito Yoshiya
 
㉒初期プロジェクトを改造!
㉒初期プロジェクトを改造!㉒初期プロジェクトを改造!
㉒初期プロジェクトを改造!Nishida Kansuke
 
Cocos2d-xを用いたゲームアプリ「めちゃギントン」開発の裏側
Cocos2d-xを用いたゲームアプリ「めちゃギントン」開発の裏側Cocos2d-xを用いたゲームアプリ「めちゃギントン」開発の裏側
Cocos2d-xを用いたゲームアプリ「めちゃギントン」開発の裏側Akihiro Matsuura
 
はじめてのUnity教室 講義用ppt
はじめてのUnity教室 講義用pptはじめてのUnity教室 講義用ppt
はじめてのUnity教室 講義用pptTaro Takano
 
ゆるロボ製作所開発事例 – ドローコール削減
ゆるロボ製作所開発事例 – ドローコール削減 ゆるロボ製作所開発事例 – ドローコール削減
ゆるロボ製作所開発事例 – ドローコール削減 Mikito Yoshiya
 
Cocos2d-x でのクラウドサービス活用方法 - 週刊アスキーセミナー
Cocos2d-x でのクラウドサービス活用方法 - 週刊アスキーセミナーCocos2d-x でのクラウドサービス活用方法 - 週刊アスキーセミナー
Cocos2d-x でのクラウドサービス活用方法 - 週刊アスキーセミナーAkihiro Matsuura
 
UnityとBlenderハンズオン第8章
UnityとBlenderハンズオン第8章UnityとBlenderハンズオン第8章
UnityとBlenderハンズオン第8章yaju88
 
GSGL 2012 さくらソフト
GSGL 2012 さくらソフトGSGL 2012 さくらソフト
GSGL 2012 さくらソフトsakurasoft
 
誰でも今日から実践できるUnity x PlayFab(Demoパート)
誰でも今日から実践できるUnity x PlayFab(Demoパート)誰でも今日から実践できるUnity x PlayFab(Demoパート)
誰でも今日から実践できるUnity x PlayFab(Demoパート)YutoNishine
 
20121123 アド部定例会 unityアプリに広告を入れる方法
20121123 アド部定例会 unityアプリに広告を入れる方法20121123 アド部定例会 unityアプリに広告を入れる方法
20121123 アド部定例会 unityアプリに広告を入れる方法Yasuyuki Kamata
 
[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1MinGeun Park
 
Oculus 体験・勉強会「VRコンテンツ制作入門」
Oculus 体験・勉強会「VRコンテンツ制作入門」Oculus 体験・勉強会「VRコンテンツ制作入門」
Oculus 体験・勉強会「VRコンテンツ制作入門」Hiromichi Yamada
 

Similar to UnityでつくるはじめてのPONG (20)

ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみたゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
 
Windows10とRaspberryPiで MakerFaireTokyoに参加
Windows10とRaspberryPiでMakerFaireTokyoに参加Windows10とRaspberryPiでMakerFaireTokyoに参加
Windows10とRaspberryPiで MakerFaireTokyoに参加
 
ゲームエンジン導入セミナー【UDK編】
ゲームエンジン導入セミナー【UDK編】ゲームエンジン導入セミナー【UDK編】
ゲームエンジン導入セミナー【UDK編】
 
Oculus 体験・勉強会「VRコンテンツ制作入門」 2015/05/13
Oculus 体験・勉強会「VRコンテンツ制作入門」 2015/05/13Oculus 体験・勉強会「VRコンテンツ制作入門」 2015/05/13
Oculus 体験・勉強会「VRコンテンツ制作入門」 2015/05/13
 
Unity ゲーム開発
Unity ゲーム開発Unity ゲーム開発
Unity ゲーム開発
 
Cocos2dを使ったi phoneゲーム開発手法
Cocos2dを使ったi phoneゲーム開発手法Cocos2dを使ったi phoneゲーム開発手法
Cocos2dを使ったi phoneゲーム開発手法
 
「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainer「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainer
 
ゆるロボ製作所ができるまで
ゆるロボ製作所ができるまでゆるロボ製作所ができるまで
ゆるロボ製作所ができるまで
 
㉒初期プロジェクトを改造!
㉒初期プロジェクトを改造!㉒初期プロジェクトを改造!
㉒初期プロジェクトを改造!
 
Cocos2d-xを用いたゲームアプリ「めちゃギントン」開発の裏側
Cocos2d-xを用いたゲームアプリ「めちゃギントン」開発の裏側Cocos2d-xを用いたゲームアプリ「めちゃギントン」開発の裏側
Cocos2d-xを用いたゲームアプリ「めちゃギントン」開発の裏側
 
はじめてのUnity教室 講義用ppt
はじめてのUnity教室 講義用pptはじめてのUnity教室 講義用ppt
はじめてのUnity教室 講義用ppt
 
ゆるロボ製作所開発事例 – ドローコール削減
ゆるロボ製作所開発事例 – ドローコール削減 ゆるロボ製作所開発事例 – ドローコール削減
ゆるロボ製作所開発事例 – ドローコール削減
 
Cocos2d-x でのクラウドサービス活用方法 - 週刊アスキーセミナー
Cocos2d-x でのクラウドサービス活用方法 - 週刊アスキーセミナーCocos2d-x でのクラウドサービス活用方法 - 週刊アスキーセミナー
Cocos2d-x でのクラウドサービス活用方法 - 週刊アスキーセミナー
 
UnityとBlenderハンズオン第8章
UnityとBlenderハンズオン第8章UnityとBlenderハンズオン第8章
UnityとBlenderハンズオン第8章
 
GSGL 2012 さくらソフト
GSGL 2012 さくらソフトGSGL 2012 さくらソフト
GSGL 2012 さくらソフト
 
誰でも今日から実践できるUnity x PlayFab(Demoパート)
誰でも今日から実践できるUnity x PlayFab(Demoパート)誰でも今日から実践できるUnity x PlayFab(Demoパート)
誰でも今日から実践できるUnity x PlayFab(Demoパート)
 
20121123 アド部定例会 unityアプリに広告を入れる方法
20121123 アド部定例会 unityアプリに広告を入れる方法20121123 アド部定例会 unityアプリに広告を入れる方法
20121123 アド部定例会 unityアプリに広告を入れる方法
 
[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1
 
Oculus 体験・勉強会「VRコンテンツ制作入門」
Oculus 体験・勉強会「VRコンテンツ制作入門」Oculus 体験・勉強会「VRコンテンツ制作入門」
Oculus 体験・勉強会「VRコンテンツ制作入門」
 
Fuse02
Fuse02Fuse02
Fuse02
 

More from Kohei Kadowaki

Pebble + JavaScriptでつくるスマートウォッチアプリ
Pebble + JavaScriptでつくるスマートウォッチアプリPebble + JavaScriptでつくるスマートウォッチアプリ
Pebble + JavaScriptでつくるスマートウォッチアプリKohei Kadowaki
 
Firefox OSでSVGをつかってみた
Firefox OSでSVGをつかってみたFirefox OSでSVGをつかってみた
Firefox OSでSVGをつかってみたKohei Kadowaki
 
Inline SVG - トラブルとその対策
Inline SVG - トラブルとその対策Inline SVG - トラブルとその対策
Inline SVG - トラブルとその対策Kohei Kadowaki
 
Webでもできるデータビジュアライゼーション
WebでもできるデータビジュアライゼーションWebでもできるデータビジュアライゼーション
WebでもできるデータビジュアライゼーションKohei Kadowaki
 
いまさら聞けない!?Backbone.js 超入門
いまさら聞けない!?Backbone.js 超入門いまさら聞けない!?Backbone.js 超入門
いまさら聞けない!?Backbone.js 超入門Kohei Kadowaki
 
D3.js と SVG によるデータビジュアライゼーション
D3.js と SVG によるデータビジュアライゼーションD3.js と SVG によるデータビジュアライゼーション
D3.js と SVG によるデータビジュアライゼーションKohei Kadowaki
 
プログラマーのお仕事
プログラマーのお仕事プログラマーのお仕事
プログラマーのお仕事Kohei Kadowaki
 
5分でわかる?Backbone.js ことはじめ
5分でわかる?Backbone.js ことはじめ5分でわかる?Backbone.js ことはじめ
5分でわかる?Backbone.js ことはじめKohei Kadowaki
 
SVGでつくるインタラクティブWebアプリケーション
SVGでつくるインタラクティブWebアプリケーションSVGでつくるインタラクティブWebアプリケーション
SVGでつくるインタラクティブWebアプリケーションKohei Kadowaki
 
インラインSVGをつかって地図っぽいものをつくってみる
インラインSVGをつかって地図っぽいものをつくってみるインラインSVGをつかって地図っぽいものをつくってみる
インラインSVGをつかって地図っぽいものをつくってみるKohei Kadowaki
 
ShareWisをFirefoxで動かすためのSVG的とりくみ
ShareWisをFirefoxで動かすためのSVG的とりくみShareWisをFirefoxで動かすためのSVG的とりくみ
ShareWisをFirefoxで動かすためのSVG的とりくみKohei Kadowaki
 
d3jsではじめるデータビジュアライゼーション入門
d3jsではじめるデータビジュアライゼーション入門d3jsではじめるデータビジュアライゼーション入門
d3jsではじめるデータビジュアライゼーション入門Kohei Kadowaki
 
WebSocket + Node.jsでつくるチャットアプリ
WebSocket + Node.jsでつくるチャットアプリWebSocket + Node.jsでつくるチャットアプリ
WebSocket + Node.jsでつくるチャットアプリKohei Kadowaki
 
WebSocketことはじめ
WebSocketことはじめWebSocketことはじめ
WebSocketことはじめKohei Kadowaki
 

More from Kohei Kadowaki (16)

Pebble + JavaScriptでつくるスマートウォッチアプリ
Pebble + JavaScriptでつくるスマートウォッチアプリPebble + JavaScriptでつくるスマートウォッチアプリ
Pebble + JavaScriptでつくるスマートウォッチアプリ
 
Firefox OSでSVGをつかってみた
Firefox OSでSVGをつかってみたFirefox OSでSVGをつかってみた
Firefox OSでSVGをつかってみた
 
Inline SVG - トラブルとその対策
Inline SVG - トラブルとその対策Inline SVG - トラブルとその対策
Inline SVG - トラブルとその対策
 
Webでもできるデータビジュアライゼーション
WebでもできるデータビジュアライゼーションWebでもできるデータビジュアライゼーション
Webでもできるデータビジュアライゼーション
 
いまさら聞けない!?Backbone.js 超入門
いまさら聞けない!?Backbone.js 超入門いまさら聞けない!?Backbone.js 超入門
いまさら聞けない!?Backbone.js 超入門
 
D3.js と SVG によるデータビジュアライゼーション
D3.js と SVG によるデータビジュアライゼーションD3.js と SVG によるデータビジュアライゼーション
D3.js と SVG によるデータビジュアライゼーション
 
プログラマーのお仕事
プログラマーのお仕事プログラマーのお仕事
プログラマーのお仕事
 
5分でわかる?Backbone.js ことはじめ
5分でわかる?Backbone.js ことはじめ5分でわかる?Backbone.js ことはじめ
5分でわかる?Backbone.js ことはじめ
 
SVGでつくるインタラクティブWebアプリケーション
SVGでつくるインタラクティブWebアプリケーションSVGでつくるインタラクティブWebアプリケーション
SVGでつくるインタラクティブWebアプリケーション
 
インラインSVGをつかって地図っぽいものをつくってみる
インラインSVGをつかって地図っぽいものをつくってみるインラインSVGをつかって地図っぽいものをつくってみる
インラインSVGをつかって地図っぽいものをつくってみる
 
ShareWisをFirefoxで動かすためのSVG的とりくみ
ShareWisをFirefoxで動かすためのSVG的とりくみShareWisをFirefoxで動かすためのSVG的とりくみ
ShareWisをFirefoxで動かすためのSVG的とりくみ
 
d3jsではじめるデータビジュアライゼーション入門
d3jsではじめるデータビジュアライゼーション入門d3jsではじめるデータビジュアライゼーション入門
d3jsではじめるデータビジュアライゼーション入門
 
SocketStream入門
SocketStream入門SocketStream入門
SocketStream入門
 
WebSocket + Node.jsでつくるチャットアプリ
WebSocket + Node.jsでつくるチャットアプリWebSocket + Node.jsでつくるチャットアプリ
WebSocket + Node.jsでつくるチャットアプリ
 
AndroidでWebSocket
AndroidでWebSocketAndroidでWebSocket
AndroidでWebSocket
 
WebSocketことはじめ
WebSocketことはじめWebSocketことはじめ
WebSocketことはじめ
 

Recently uploaded

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 

Recently uploaded (8)

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 

UnityでつくるはじめてのPONG

  • 2. 自己紹介 • 名前:門脇 恒平 (28) @kadoppe • 職業:エンジニア Rails, (Java¦Coffee)Script, Objective-C • 肩書き: HTML5-West.jpコアメンバー/ShareWis Inc. CTO • 趣味:ポッドキャスト/ Ust配信 2
  • 3. 本日の資料 • プレゼンスライド • SlideShare: http://www.slideshare.net/kadoppe • プロジェクト • http://kadoppe.com/downloads/pong.zip 3
  • 5. 5
  • 6. Unityとは? • 3Dゲーム開発ツール • スローガン:「ゲーム開発を民主化する!」 シンプルで 高度な知識が必要 わかりやすい 民主化 多額の出費 お手頃価格 6
  • 7. Unityの2つの側面 • 3Dゲーム統合開発環境 • 3Dコンテンツをインタラクティブに編集 • Windows, Mac OS Xで動作 • ゲームエンジン • マルチプラットフォーム • Windows, Mac OS X, Webブラウザ, iOS, Android 7
  • 8. プログラミング言語 JavaScript or C# Web屋さんだったらJavaScriptがオススメ? 8
  • 9. 気になるお値段 無印 Pro Unity 無料 ¥127,500 (Win, Mac, Web) + iOS ¥34,500 ¥127,500 + Android ¥34,500 ¥127,500 趣味で使う分には無料で十分! 9
  • 12. ライブコーディング といってもコーディングは少ないです 12
  • 14. これからつくるもの • PONG(ポン) • 1972年に登場したシンプルな卓球ゲーム 出典:http://www.justpushstart.com/2012/02/atari-wants-you-to-make-pong-for-ios/ 出典:http://gigazine.net/news/20061023_plasma_pong/ 14
  • 15. 開発手順 • 目標:PONG(一人遊び用)の完成 • Step 1:設計 • Step 2:パーツの配置 • Step 3:カメラと光源の設定 • Step 4:ボールを動かす • Step 5:ラケットを動かす • Step 6:ゴールの検出 • Step 7:Web用に書き出す 15
  • 16. 準備:Unityの画面レイアウト インスペクタ オブジェクトの 様々な値を設定 ヒエラルキー プロジェクト ゲームの世界に配置されている ゲームに必要な オブジェクトの階層構造を表示 ファイルを管理・表示 16
  • 17. Step 1 設計 壁 ボール ラケット ゴール ゴール ラケット 壁 17
  • 18. Step 2 パーツの配置 • あらかじめ用意されている基本的な形状を利用 • 位置・角度・大きさを指定していく Sphere (球体) 直方体 (Cube) Cube・Sphereを使ってパーツをどんどん配置 18
  • 19. Step 3 カメラと光源の設定 • なんだか暗い • アングルもよくない カメラ(プレイヤーの視点)の移動 Directional Light(線光源)の配置 19
  • 20. Step 4 ボールを動かす • 手順1:ボールに物理特性を設定する • 手順2:ボールに初速を加える • 手順3:ボールが跳ね返るようにする 20
  • 21. Step 4 手順1:ボールに物理特性を設定する • 物体に何かしらの運動をさせたい時は物理特性が必要 ボールに物理特性「Rigidbody(剛体)」を設定 21
  • 22. Step 4 手順2:ボールに初速を加える • ボールは力を与えないと動かない • スクリプトからボールに対してさまざなま作用を与え ることが可能 rigidbody.AddForce( // 力を加えるメソッド (transform.forward + transform.right) * 10, // 力の向きと強さ ForceMode.VelocityChange // 力の与え方 ); JavaScriptでボールに初速を与えてみる 22
  • 23. Step 4 手順3:ボールが跳ね返るようにする • ボールが跳ね返らない ぺた・・ ボールや壁に跳ね返るような「Material(材質)」を設定 23
  • 24. Step 5 ラケットを動かす • カーソルキー入力でラケットに力を与える rigidbody.AddForce( transform.right * Input.GetAxisRaw(“Horizontal”) * 1000.0, ForceMode.Impulse ); ラケットに物理特性「Rigidbody(剛体)」を設定 JavaScriptでキー入力をもとにラケットに力を与えてみる 24
  • 25. Step 6 ゴールの検出 • ボールとゴールの衝突→ゴール • せめてボールを中央に戻したい function OnCollisionEnter(info : Collision) { // ボールが何かとぶつかった時の処理 } ボールと壁の衝突を検出 衝突検出後、ボールを中央にワープさせる 25
  • 26. Step 6 Web用に書き出す • 2通りの出力方法 • どちらもブラウザにプラグインが必要 Unity Flash 26
  • 27. 完成! 暗く・見づらい 見やすい・動く ブラウザで! 27
  • 28. さらに学びたい方へ • はじめての Unity ¦ Developer [UNITY] http://japan.unity3d.com/developer/document/tutorial/my-first-unity/ • [書籍] Unity入門 • Unityユーザー助け合い所 https://www.facebook.com/groups/unityuserj/?bookmark_t=group 28
  • 29. まとめ • 3Dゲーム開発ツール「Unity」 • 使いやすい3Dコンテンツエディタ • マルチプラットフォーム • PONG(のようなもの)を実際につくってみた 29