カテゴリー別アーカイブ: unity3D

 Unity, 開発記録 4月13日、P184、ラジコンカーゲームを作る、Unityで作るスマートフォン3Dゲーム開発講座、

 Unity, 開発記録 4月13日、P184、ラジコンカーゲームを作る、Unityで作るスマートフォン3Dゲーム開発講座、
 
 P184、ラジコンカーゲームを作るを作成します。この書籍は、手順通りに進めることができるチュートリアル形式です。そのため、初心者向けとして非常に優れています。図説もカラーなので理解しやすいです。
 Unityは、スクリプトと画面操作の2種類の設定があるため、文字ベースの説明では非常に理解しにくく、学習しにくい面があります。そのため、カラー画像とかユーチューブの動画などで学習した方が効率的です。
 
 まずは、無料の装甲車をダウンロードします。そこそこ丁寧に作られた3Dモデルが無料でダウンロードできるというのは便利です。
 こういったサンプルモデルデータが無料でダウンロードできるというのは非常に便利です。

前回の開発

ブロック射撃ゲーム、Unity、Webゲーム、無料

ブロック射撃ゲーム、Unity、Webゲーム、無料

 画面上にあるブロックを射撃するシンプル簡単ゲームです。あんまり、おもしろくないです。いわゆるチュートリアルというものなので。
 制限時間内に、画面上に指示された色のブロックに命中するとポイントが加算されます。指示された色でないブロックに命中すると減点になります。
たとえば、画面中に、Shoot Blue Boxesと表示されているときは、青いブロックを狙います。

 
書籍のチュートリアルを参考にしました。こちらのページで表示できます。
ブロック射撃ゲーム、made by unity

<感想>
 Unityは、「簡単」、「プログラムをあまり書かなくともゲームができる」というほど簡単ではないと思いました。
 確かに、3Dオブジェクトを配置し、表示し、しかも物理演算ができることは、非常にすばらしく、とっても簡単です。
 しかし、ゲームを作って遊ぶレベルにするには、結局のところは、CやC++等のコード技術、知識が必要になるというのがわかりました。
 10年、20年前であれば、3Dオブジェクトを画面上に表示させることですら大変だったのに、いまでは、衝突演算すら、画面に配置して、設置をチェックオンするだけで動き出します。これは、かつて、3Dソフトが数十万円し、数秒のアニメーションに数時間を要した時代を体験した人間からすると、Unityのさくさく感は感動ものです。
 しかも、ほぼ同じ設定で、Webでもスマートフォンでも同じ構成で動作するというのも感心させられます。
 
 
 

スキャン前後の処理時間の短縮とモータースピードの高速化とあいまって、さらなる高速スキャン。同梱のスタンドを使用することにより、本体を立て置きしたままでA4サイズまでの定型書類がスキャンできます。消費電力:動作時約2.5W(最大)/待機時約1.4W 重量(約):1.6kg

海賊女帝ボアハンコックのセクシープロポーションを造形化したフィギュアです。九蛇の女帝であり、七武海の一員であり、絶世の美女であるハンコックは、海賊応仁ルことを夢見るルフィに恋する乙女でもあります。

百花繚乱の柳生十兵衛の魅力的なプロポーションを表現したフィギュアです。

Unity学習、書籍、「Unity入門」P186、スコアの計測|サバイバルゲーム、投稿者Brackeys氏 (1)進行中

  Unity学習、書籍、「Unity入門」P186、スコアの計測
 
 「Unity入門」高橋啓治郎著を参考にしています。
 Chapter5ブロックシューターです。
 非常に参考になるチャプターです。
 弾の発射、衝突による物体の削除、弾と物体の衝突によるスコア計測など一通りの基本的内容が学習できます。
 
 現在は、P186のスコアの計測まで進みました。そして、無事終了しました。
 書籍のチュートリアルを参考にしました。
ブロック射撃ゲーム、made by unity実際の動きをWeb上で確認できます。

 

 ーー
 
 Unity学習、サバイバルゲーム、投稿者Brackeys氏 (1)進行中
 
 1. Unity Tutorial Basics – Create a Survival Game
 キャラクター視点での探索型
 
 
 4/4終了
 Unityに準備されているモジュールを呼び込み実際に作成するチュートリアルです。
 Doomのように(というかゲームはほとんどしていないので、Doom、バイオハザード1、メタルギアソリッドPS2版くらいしかプレイしていません。)、プレイヤー視点で画面を移動します。すでにキーに設定がされていて、スペースボタンでジャンプもします。
 サバイバルゲーム作成では、基本中の基本ですが、Unity習得では非常に役立つ動画です。
 プロジェクト名 /servibal_brackeysにて作成
 
 
 2. Unity Tutorial Melee Combat- Create a Survival Game
 
 これからです。
4/5 
 

Unity エラーメモ 大文字小文字がきちんと記載されているのかをチェック function OnCollisionEnter(collisionInfo:Collision)

Unity エラーメモ 大文字小文字が明確に記載されているのかをチェック function OnCollisionEnter(collisionInfo:Collision)

今日のUnityスクリプトエラーメモです。
コンパイラーがなにか間違いを指摘するかと思ったのですが、意外に指摘してくれずに10分ほど奮闘しました。

function onCollisionEnter(collisionInfo:Collision)
として記載し、コンパイルエラーがなくても動作していたのですが、本来の動きをしていなかった。

「 On」を「on」にして記載してしまった誤記でした。
正しくは、On,,,
でした。
function OnCollisionEnter(collisionInfo:Collision)
正常に動かないときは、
大文字小文字がきちんと記載されているのかを確認しましょう。

他の設定かと思ってしまいました。

Unityピンポンゲーム学習中 7Aから7B 動画Animation

Unityピンポンゲーム学習中 7Aから7B 動画Animation

そろそろ飽きてきましたね。
丁寧に説明してくれています。非常にありがたいのですが、逆に丁寧すぎて、はやく先に進みたいのに、ながながと説明されて学習しにくい面があります。
まさに、本の場合と動画の場合の短所がここででてしまいます。
理解できていると本の方が早く進めますが、わからないときは動画のほうがありがたい。
逆に、理解できているときは、動画では、なかなか先に進めずに、ぼーっと待つしか無いので、いらいらします。

備考:
ポンゲームたんに、ボールが跳ね返るだけで、ブロック崩しゲームではありません。でも、サーバにアップすると動かせるようになりますので、簡単です。
Webで作成しながら、アイフォン向けにもできそうです。Unity

Unity tutorial (beginner) – Pong Game – How To Make Mobile Games (iphone and android) – part 7A
アニメーションの設定、テクスチャを移動させてアニメーションさせる
Animationウィンドウを開き、NewClipして、GridMaterialのMainTexOffsetYについて、キーフレームを設定します。

Unity tutorial (beginner) – Pong Game – How To Make Mobile Games (iphone and android) – part 7B
複数のPaddleバーを作成します。いままでは、一つのパドルにスクリプトを設定していました。
複数のバーの場合は、親オブジェクト(EmptyObject)を作り、この親オブジェクトにスクリプトを設定して、複数のバーを制御します。
 特に難しい設定をせずに、いままで設定していたバーのスクリプトを解除(チェックボックスを解除)し、親オブジェクトに設定するだけです。
 ちょっと注意すべきは、親のオブジェクトの座標をきちんと把握してから、子供オブジェクトに設定しないと、座標がおかしいことになりそうです。

とりあえず、ここまで見ていれば良さそうです。
今度は、書籍の方を見ながら、Unityを学習しようと思います。

前回のUnityの学習6Aから6Cまでの動画

Unityピンポンゲーム学習中 6Aから6C 動画テクスチャ、マテリアル、パーティクル

Unityピンポンゲーム学習中 6Aから6C 動画テクスチャ、マテリアル、パーティクル

ポンゲームたんに、ボールが跳ね返るだけで、ブロック崩しゲームではありません。でも、サーバにアップすると動かせるようになりますので、簡単です。
Webで作成しながら、アイフォン向けにもできそうです。Unity

Unity tutorial – Pong Game – How To Make Mobile Games – part 6A
テクスチャ、マテリアル,Photoshotp elementsで作成したPSDファイルをそのまま保存してもUnityは読み込んでくれる。
Editメニュー−>Rendering Optionを選択して、AmbientLightでWhiteにする

materialを追加します。
そして、textureフォルダを作成して、そこに画像を保存します。ファインダーからファイルをUnityアプリ側へドラッグしてもOKです。
ambient
すると、いままでボールが黒かったのが、白くなります。
画面は、設定後です。

ーー
Unity tutorial (beginner) – Pong Game – How To Make Mobile Games (iphone and android) – part 6B
MainCameraオブジェクトを選択して、Backgroundの色を黒に変えます。
パーティクルを追加
パーティクルを使わなければ、必要は無いようです。

次は、MainCamerのバックグラウンドの色です。

back
すると、バックが青色から黒に変わりました。

次は、ParticleSystemです。
パーティクルシステムを追加すると、画面で確認できます。

ここらへんは、つかうときにいろいろとためすしかなさそうです。


パーティクルの続き
Unity tutorial (beginner) – Pong Game – How To Make Mobile Games (iphone and android) – part 6C
>ちょっと説明が長くて、眠くなります。特に必要ないかもね。
スパークするようなパーティクルの設定
ここで、ボールがバーに当たったタイミングで、パーティクルが表示されません。プレーするとずっとパーティクルが表示されたままです。
どうやら、設定がなにか足らないようですね。

次は、ボールが壁に当たったときに、パーティクルが動作するスクリプトです。
パーティクルはプレハブを使用します。そうしないと、画面中に無関係のパーティクルが表示されてしまいます。

ball.js

前回の学習は5Aから5C

アイフォンアプリ製作Unityピンポンゲーム学習中 5Aから5C 動画

Unityピンポンゲーム学習中 5Aから5C 動画

今回は、シーン間の変数を保持するPlayerPrefsとスコアです。

Unity tutorial – Pong Game – How To Make Mobile Games – part 5A


Unity tutorial – Pong Game – How To Make Mobile Games – part 5B
scoreの表示、PlayerPrefs 変数保持プロパティ

MainGame.js
CreateEmptyで作ったオブジェクトに設定します。
Scoreの点数を増加させます。


Unity tutorial – Pong Game – How To Make Mobile Games – part 5C
ゲーム画面でハイスコアになったときに、最初の画面にハイスコアを表示させる。
つまり異なるシーン間で変数をやりとりする。

ballオブジェクトにGeneralScriptをかぶせる
ball.jsとMainGame.jsは相互関係になります。
ここがみそです。
ballにGeneralScriptをかぶせる

menuシーンに、highScore3DTextを作成します。

MenuScene.jsも書き換えます。そして、MenuシーンのGeneralScriptのhigh Scrore 3DTextに3DTextであるhighScore3DTextを選択します。
ここがみそです。
generalscript

前回のUnity学習動画ブログ

メモ Unity 3D text meshを使ったメニューの作り方 C#編

メモ Unity 3D text meshを使ったメニューの作り方 C#編
マウスが重なるとテキストの色を変化させる

Building A Game In Unity Part 1: The Main Menu Tutorial 1/2
mouseEnter 利用によるメニューの作り方

Building A Game In Unity Part 1: The Main Menu Tutorial 2/2
how to make a main menu in Unity3D using delegates in C#
デリゲートを使ったメニュー

Unityピンポンゲームの作り方動画はこちら

Unityピンポンゲーム学習中 3Aから4C動画

Unityピンポンゲーム学習中 3Aから4C動画

ポンゲームたんに、ボールが跳ね返るだけで、ブロック崩しゲームではありません。でも、サーバにアップすると動かせるようになりますので、簡単です。
Webで作成しながら、アイフォン向けにもできそうです。Unity

とりあえず、2A、2Bまで学習しました。
ここまでのpaddle.jsスクリプトです。
RaycastHitの必要性が始めはわかりませんでした。

CubeオブジェクトTabDetectionBoxを見えないように、マウスのイベント座標の取得用に配置するというのはテクニックだなと思いました。
まさに、3Dならでは手法でしょう

Unity tutorial – Pong Game – How To Make Mobile Games – part 3A

Sphere球にrigidbodyを追加します。
unity_rigi

重力gravityは解除。

ball.jsを作成します。

4cでの変更点です。

ただし、今のままでは、壁がないので、ボールが動いて画面(カメラ)から消えます。次の3Bで壁を作ることが必要です。

Unity tutorial – Pong Game – How To Make Mobile Games – part 3B

sphereにPhysicsのBouncyをMaterialにドラッグします。
次に、壁をコピペして囲い壁を作ります。
ボールのスピードが遅いので、Edit,project setting,physicsから2を0.1にします。
unity_rigi_pro2

また、4cでせつめいしますが、ここで壁にもBouncyを与えておきます。Paddole(バー)にも与えます。
設定についてもBouncyは、DynamicFriction、StaticFrictionとも0です。


Unity tutorial – Pong Game – How To Make Mobile Games – part 4A

現在のシーンをmenuシーンとして別名保存します。別名保存の前に、現在作業中のシーンは保存しておきます。
3D textを追加します。
そしてBOX Colliderを設定します。これが、ボタンのようになります。
menu_box1

次で、メニューのスクリプトを入力します。

ーー
Unity tutorial – Pong Game – How To Make Mobile Games – part 4B

menuScene.js

Create Emptyを追加、「GeneralScript」にします
menuScript.jsをこの「GeneralScript」にドラッグします。
つまり、3Dtextにはドラッグしません。
実行したときに、BuildSettingに追加するのを忘れないようにしてください。そうしないと警告になります。


Unity tutorial – Pong Game – How To Make Mobile Games – part 4C

ball.jsに追加します。すでに、Update()を記載している場合は、不要です。


前回の学習状況