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

Twitterのsnowflakeについて
TwitterのsnowflakeについてTwitterのsnowflakeについて
Twitterのsnowflakeについて
moai kids
 

What's hot (20)

FJcloud-Vの無料トライアルで雑にWordPressを入れてみた(リベンジ)
FJcloud-Vの無料トライアルで雑にWordPressを入れてみた(リベンジ)FJcloud-Vの無料トライアルで雑にWordPressを入れてみた(リベンジ)
FJcloud-Vの無料トライアルで雑にWordPressを入れてみた(リベンジ)
 
Twitterのsnowflakeについて
TwitterのsnowflakeについてTwitterのsnowflakeについて
Twitterのsnowflakeについて
 
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
 
マスターデータの キャッシュシステムの改善の話
マスターデータの キャッシュシステムの改善の話マスターデータの キャッシュシステムの改善の話
マスターデータの キャッシュシステムの改善の話
 
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTest Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるか
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
 
急速に進化を続けるCNIプラグイン Antrea
急速に進化を続けるCNIプラグイン Antrea 急速に進化を続けるCNIプラグイン Antrea
急速に進化を続けるCNIプラグイン Antrea
 
Unityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechconUnityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechcon
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
実践イカパケット解析
実践イカパケット解析実践イカパケット解析
実践イカパケット解析
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
 
Addressables で大量のリソース管理・困りどころと解消法
Addressables で大量のリソース管理・困りどころと解消法Addressables で大量のリソース管理・困りどころと解消法
Addressables で大量のリソース管理・困りどころと解消法
 
4つの戦犯から考えるサービスづくりの失敗
4つの戦犯から考えるサービスづくりの失敗4つの戦犯から考えるサービスづくりの失敗
4つの戦犯から考えるサービスづくりの失敗
 
非同期処理の基礎
非同期処理の基礎非同期処理の基礎
非同期処理の基礎
 
JavaのテストGroovyでいいのではないかという話
JavaのテストGroovyでいいのではないかという話JavaのテストGroovyでいいのではないかという話
JavaのテストGroovyでいいのではないかという話
 
ブレソルでテラバイト級データのALTERを短時間で終わらせる
ブレソルでテラバイト級データのALTERを短時間で終わらせるブレソルでテラバイト級データのALTERを短時間で終わらせる
ブレソルでテラバイト級データのALTERを短時間で終わらせる
 
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things
 
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介
 
mypy - 待望のPython3.9型ヒント対応
mypy - 待望のPython3.9型ヒント対応mypy - 待望のPython3.9型ヒント対応
mypy - 待望のPython3.9型ヒント対応
 

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

ゲームエンジン導入セミナー【UDK編】
ゲームエンジン導入セミナー【UDK編】ゲームエンジン導入セミナー【UDK編】
ゲームエンジン導入セミナー【UDK編】
Junya "Jun" Shimoda
 
ゆるロボ製作所ができるまで
ゆるロボ製作所ができるまでゆるロボ製作所ができるまで
ゆるロボ製作所ができるまで
Mikito Yoshiya
 
ゆるロボ製作所開発事例 – ドローコール削減
ゆるロボ製作所開発事例 – ドローコール削減 ゆるロボ製作所開発事例 – ドローコール削減
ゆるロボ製作所開発事例 – ドローコール削減
Mikito Yoshiya
 

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

d3jsではじめるデータビジュアライゼーション入門
d3jsではじめるデータビジュアライゼーション入門d3jsではじめるデータビジュアライゼーション入門
d3jsではじめるデータビジュアライゼーション入門
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

Recently uploaded (10)

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 

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