2013年11月01日

簡単なFPSゲームに挑戦11

 続きです。
 今日は地形(Terrain)を作りました。

1shootterraindesu.jpg

 何故か椰子の木...。

 もし地形の操作をご存じない方は、過去に書いたブログ記事をご参照下されば幸いです。最初から順を追っていただければ分かると思います。
------------------

ラベル:FPS Unity3d
posted by Shindo Izo at 13:36| Comment(0) | Unity3Dの練習 | 更新情報をチェックする

2013年11月02日

簡単なFPSゲームに挑戦12

 続きです。
 今日は、敵弾を被弾したら命数が減っていくようにします。

<スクリプトの追加1>
 プレイヤーの命数コントロールスクリプト(InochiControll.js)に追加します。3発被弾すると命が1つ減ります。緑字が追加分。

var inochi1 : Texture2D;
var inochi2 : Texture2D;
var inochi3 : Texture2D;

static var INOCHI = 3;
static var HITS = 0; //tuika 1102

function Update () {
 
//[tuika 1102 
  if(HITS > 2) {
      SolController.dead = true;
      INOCHI -=1;
      HITS = 0;
  }
  //tuika]     

  
    switch( INOCHI ) {
    case 3:
      guiTexture.texture = inochi3;
    break;
    
    case 2:
      guiTexture.texture = inochi2;
    break;
    
    case 1:
      guiTexture.texture = inochi1;
    break;
    
    case 0:
      //ゲームオーバー
    break;
  }

}

<スクリプトの追加2>
 プレイヤーコントロールスクリプト(SolController.js)内、以下のfunction内に1行追加します。緑字が追加分。

function OnTriggerEnter(hit : Collider){ 
  if ( hit.gameObject.tag == "fallout"){
    dead = true;
    InochiControll.INOCHI -= 1;  
  }

  if(hit.gameObject.tag == "tekidan"){
    gotHit = true;
    InochiControll.HITS +=1; //tuika 1102
    Destroy(hit.gameObject); //敵弾消去
  }
}

 これで、3発撃たれるか落下すると命が減るようになりました。
---------------
 <ご注意>私自身が全くの超初心者ですので、文中まちがいがあるかも知れません。その際はご容赦をお願いします。<(_ _)>
ラベル:FPS Unity3d
posted by Shindo Izo at 17:15| Comment(0) | Unity3Dの練習 | 更新情報をチェックする

2013年11月03日

簡単なFPSゲームに挑戦13

 続きです。
 今日は、敵大砲に味方弾が命中したとき破壊されるようにします。

<タグの追加>
 自分の弾…mikatadanを追加します。
1tagmikatadansa.jpg

<スクリプトの追加>
 プレイヤーコントロールスクリプト(SolController.js)内のfunction Update()内に1行追加します。(緑字)

function Update () {
 var controller : CharacterController = GetComponent(CharacterController);

 // Rotate around y - axis
 transform.Rotate(0, Input.GetAxis ("Horizontal") * rotateSpeed, 0);

 // Move forward / backward
 var forward : Vector3 = transform.TransformDirection(Vector3.forward);
 var curSpeed : float = speed * Input.GetAxis ("Vertical");
 controller.SimpleMove(forward * curSpeed);

 //Player 攻撃
 if(Input.GetButtonDown("Jump")) {
  var bullet = Instantiate(bulletPrefab, transform.Find("spawnPoint").transform.position, Quaternion.identity); 
  bullet.tag = "mikatadan"; //kutika 1103
  bullet.rigidbody.AddForce( transform.forward * 2000);
}
}

<敵大砲破壊>
 大砲の本体部分(TaihoHontai)を選択。Component>Rigidboy>Box collider選択。コライダーボックスを大砲の大きさに合わせ、大砲破壊するスクリプトをドロップ。
2taihocollidersetja.jpg

<大砲破壊スクリプトの内容>

//敵大砲破壊
function OnTriggerEnter(hit : Collider){
  if(hit.gameObject.tag == "mikatadan") {
    Destroy(hit.gameObject); //味方弾破壊
    Destroy(gameObject); //敵大砲破壊
  }
}

 敵砲台に弾を撃ち込むと、破壊されるようになりました。(破壊というより消えるだけですが)
------------------
 <ご注意>私自身が全くの超初心者ですので、文中まちがいがあるかも知れません。その際はご容赦をお願いします。<(_ _)>
ラベル:FPS Unity3d
posted by Shindo Izo at 11:17| Comment(0) | Unity3Dの練習 | 更新情報をチェックする

簡単なFPSゲームに挑戦14

 続きです。
 今日は、味方弾が敵に当たったときに爆発するようにし、敵の大砲を新たに設置します。

<スクリプトの追加>
 敵大砲破壊スクリプト(TaihoDestroy.js)に1行追加します。(緑字)

//敵大砲破壊
var bakuhatu : Transform; //tuika1 1103
function OnTriggerEnter(hit : Collider){
  if(hit.gameObject.tag == "mikatadan") {
    Destroy(hit.gameObject); //味方弾破壊
    var baku = Instantiate(bakuhatu,gameObject.transform.position,Quaternion.identity); //tuika2 1103
    Destroy(gameObject); //敵大砲破壊
  }
}

<爆発アセットを設定する>
 敵大砲台選択後、Standard Assets内のexplosion(か、large flames)をBakuhatu にドロップします。
1taihobakuhatudesse.jpg

<新しい敵大砲を置く>
 今あるEnemy Prefabを一旦消去。新しくPrefabを作り、Enemyとリネーム。そのPrefabに、Hierarchy内のEnemyをドロップ。新しく出来上がったEnemy PrefabをSceneにドロップ。Hierarchy内の大砲本体(TaihoHontai)を選択後、Look At Targetにプレイヤー(Soldier)をドロップで、新敵大砲の設置完了。
2targetsetteidasu.jpg

 敵大砲を2台に増やすと十字砲火状態になりました。
------------------
 <ご注意>私自身が全くの超初心者ですので、文中まちがいがあるかも知れません。その際はご容赦をお願いします。<(_ _)>
ラベル:FPS Unity3d
posted by Shindo Izo at 20:56| Comment(0) | Unity3Dの練習 | 更新情報をチェックする

2013年11月04日

簡単なFPSゲームに挑戦15

 続きです。
 今日は、メインメニューの製作です。

<メニューのシーンを作る1>
 現在開いているSceneを保存。(メニューで使うものをPrefab化しておくと新Sceneで使えます)New Scene クリック。すぐに名前をつけて保存しておきます。私の場合、Menu_MyShoot。
1newsceneda.jpg

<後の追記>上記のやり方は新しく作り替える場合でした。全く同じシーンでいい場合は、2.のNew Sceneを省いて、3.のSave Scene as ...でOKです。<(_ _)>

<メニューのシーンを作る2>
 Project内から好きなだけSceneにドロップしたり、新しくオブジェクトを作ったりしてメニューっぽい舞台を作ります。その際、プレイヤー(Soldier)の中のMain Cameraのチェックを外します。その他のスクリプトなどのチェックも外しておいた方がいいかも知れません。
2menubutai.jpg

<フォントのDL>
 デフォルトのフォントでも構わないのですが、練習のためにフリーのフォントをダウンロードしました。CAPTURE ITというフォントです。右端のDownloadをクリックし、適当なところに解凍保存します。
http://www.dafont.com/capture-it.font
3captureitdesu.jpg

<フォントのインポート>
 フォントファイルをProjectウィンドウにドロップ。Character を Unicodeにチェンジ。Applyボタンを押す。
4fontssetteida.jpg

<3Dテキストの作成>
 Menu>GameObject>Create Other>3D Textをクリックして、移動回転して好きな位置に設定&リネーム。フォントをFontにドロップ。Font Material をElement0の所にドロップ。Textで文字を入力。Charactor Size で文字の大きさ変更。で、下図のシーンのようになるはずです。
 同様にしてプレイ用テキストも作成。
5fontsettingsane.jpg

<マウスオーバーで色が変わるスクリプト追加>
 マウスオーバーで色が変えたい3D Textにスクリプトをドロップ。Component>Phisics>Box Colliderをクリックしてコライダーを追加します。このスクリプトはオブジェクトであれば何でも色を変えられます。下図のようにマウスオーバー時色が変わり、離れると元の色に戻ります。
6mouseovercolorchange.jpg

<スクリプト>

//マウスオーバーで色をチェンジ
function OnMouseEnter () {
  //Change Color
  renderer.material.color = Color.green;

}
function OnMouseExit () {
  //Change Color
  renderer.material.color = Color.white;

}

 メニューらしきものが出来上がってきました。
 ゲームの題名は、「The Soldier」にしました。
------------------
 <ご注意>私自身が全くの超初心者ですので、文中まちがいがあるかも知れません。その際はご容赦をお願いします。<(_ _)>
ラベル:FPS Unity3d
posted by Shindo Izo at 20:16| Comment(0) | Unity3Dの練習 | 更新情報をチェックする

2013年11月05日

簡単なFPSゲームに挑戦16

 続きです。
 今日は、メインメニューの完成とビルド(プログラムの生成)です。

<終了ボタンの作成>
 前回作ったプレイボタンを複製しリネーム後、移動して適当な位置に置きます。
1quittexttuika.jpg

<スクリプトの追加>
 終了ボタンのテキストコントロールスクリプト(TextController)を以下のように変更します。(LoadLevel(1)の1は、ビルドするときに出る番号です)

var isQuitButton = false;

//マウスオーバーで色をチェンジ
function OnMouseEnter () {
  //Change Color
  renderer.material.color = Color.green;

}

function OnMouseExit () {
  //Change Color
  renderer.material.color = Color.white;

}

//マウスアップで終了orプレイゲーム
function OnMouseUp() {
  if(isQuitButton) {
    Application.Quit();
  }
  else {
    Application.LoadLevel(1);
  }
}

<Is Quit Buttonのチェックを入れる>
 テキストボタンのIs Quit Buttonのチェックを入れる。(これを忘れると動作しません)
2buttonondesu.jpg

<プログラム生成>
 Menu>File>Build Settings...クリック。メニューシーン、ゲーム本体の順にScene In Build内にドロップ。Platformを選択。Target Platformを選択。Build And Runでプログラム生成&ラン。
3buildsetdessei.jpg

 やっとプログラムビルドまで来ました。
 ここでトルネードツウィンズさんのチュートリアルビデオは終わっています。後は自分で考えてやりなさい、ということでしょう。

 まだ色々問題点がありますが、改善できるようならやってみたいと思っています。
------------------
 <ご注意>私自身が全くの超初心者ですので、文中まちがいがあるかも知れません。その際はご容赦をお願いします。<(_ _)>
ラベル:FPS Unity3d
posted by Shindo Izo at 13:19| Comment(0) | Unity3Dの練習 | 更新情報をチェックする

2013年11月06日

簡単なFPSゲームに挑戦17

 前回で大まかな形が出来上がりましたが、問題点が多々あります。
 自分にできるかどうか分かりませんが、トライしてみたいと思います。

<現在の問題点>

A.ゲームオーバーにならない
 … 敵を全滅させても、プレイヤーの命が全部なくなっても永遠に続いている
B.リセットできない
 … 最初からやり直したいと思ってもできない
C.弾のスピードが遅く緊迫感がない
D.弾が地形や壁を貫通してしまう

E.音が全くない
F.プレイヤーの横スライドができない
 … 物陰の後ろに隠れて、すばやく撃つといった動作ができない
G.敵の砲台がダサイ
 … 弾を撃ってくるから砲台だと分かるが、パッと見では何なのか分からない
H.プレイヤーの武器がダサイ
I.照準(クロスヘアー)がない
 … これがないとねらいをつけにくい
J.プレイヤーの武器連射スピードが速すぎる
 バズーカ砲なのにマシンガンより速い連射ができてしまう

 E〜Jはともかく、A〜Dを改善しないと...。特にAとD。
 BとCは何とかなりそうですが、A、Dは難しそう...

<C問題の解決>
 とりあえず、簡単に改善できそうなC問題から。
 プレイヤー、敵砲台の弾のスピードをそれぞれ2000を3000に設定。弾丸(Dangan Prefab)のScaleの値を0.3×0.3×0.3に設定。弾丸消去スクリプトのLifeTimeを2に設定。
 一挙に迫力ある撃ち合いになりました。

<B問題の解決>
 プレイヤーの命のコントロールスクリプト(InochiControll.js)の中に以下の文を追加しました。

function OnGUI () {  
    if ( GUI.Button(Rect(0, 0, 60, 30), "MENU") ) {  
        Application.LoadLevel(0); //GoToMenu
    }  


 位置指定が表示ウィンドウの絶対座標なので、画面の下や右に持ってくるのは難しいです。そこで、命のGUIを真ん中、下に持って行きました。

1menubotanna.jpg

------------------
 <ご注意>私自身が全くの超初心者ですので、文中まちがいがあるかも知れません。その際はご容赦をお願いします。<(_ _)>
ラベル:FPS Unity3d
posted by Shindo Izo at 17:33| Comment(0) | Unity3Dの練習 | 更新情報をチェックする

2013年11月07日

簡単なFPSゲームに挑戦18

 続きです。

<解決済みの問題点>
  B.リセットできない → <解決>
   … 最初からやり直したいと思ってもできない
  C.弾のスピードが遅く緊迫感がない → <解決>

<未解決の問題点>
A.ゲームオーバーにならない
 … 敵を全滅させても、プレイヤーの命が全部なくなっても永遠に続いている
D.弾が地形や壁を貫通してしまう
E.音が全くない
F.プレイヤーの横スライドができない
 … 物陰の後ろに隠れて、すばやく撃つといった動作ができない
G.敵の砲台がダサイ
 … 弾を撃ってくるから砲台だと分かるが、パッと見では何なのか分からない
H.プレイヤーの武器がダサイ
I.照準(クロスヘアー)がない
 … これがないとねらいをつけにくい
J.プレイヤーの武器連射スピードが速すぎる
 バズーカ砲なのにマシンガンより速い連射ができてしまう

 BとCは前回で解決しました。今日は、簡単そうな I と問題のAをやってみたいと思います。

< I 問題の解決>
 これは非常に簡単でした。
 Menu>GameObject>GUI Textureをクリック。それに自前の照準画像をドロップ。真ん中に来るように位置調整すればおしまいです。
1shoujyuntuke.jpg

<A問題の解決1>
 案の定手こずりました。色々なことをやってみましたがうまく行かず、思案の末、命表示用GUIにもう一枚画像を増やし、命が0になったら4枚目の画像(ゲームオーバー)を表示させることにしました。
 下図は新しく作った4枚目の画像。この大きさに合わせて、命残3、命残2、命残1もそれぞれ作り直しました。
2youdieddatte.png

<A問題の解決2>
 まずプレイヤーコントロールスクリプト(SolControll.js)内、function Update()に2行追加します(緑字)。命がなくなったらキー操作を不能にします。

function Update () {
  if(InochiControll.INOCHI>0){ 
    var controller : CharacterController = GetComponent(CharacterController);

    // Rotate around y - axis
    transform.Rotate(0, Input.GetAxis ("Horizontal") * rotateSpeed, 0);

    // Move forward / backward
    var forward : Vector3 = transform.TransformDirection(Vector3.forward);
    var curSpeed : float = speed * Input.GetAxis ("Vertical");
    controller.SimpleMove(forward * curSpeed);

    //Player 攻撃
    if(Input.GetButtonDown("Jump")) {
      var bullet = Instantiate(bulletPrefab, transform.Find("spawnPoint").transform.position, Quaternion.identity);
      bullet.tag = "mikatadan"; //kutika 1103
      bullet.rigidbody.AddForce( transform.forward * 3000);
}
  }
}

<A問題の解決3>
 命コントロールスクリプト(InochiControll.js)内。
 まず、Texture2Dの宣言を追加します。 

var youdied : Texture2D;

 次に、case 0:の中に、

guiTexture.texture = youdied;

を追加し、保存したあとunityに戻って、4枚のテクスチャーをそれぞれドロップします。
 そして、何度かランしてみていい感じになるようにスケールや位置を調整します。


 これで、命が全部なくなったらゲームオーバーするようになりました。クロスヘヤーも入って雰囲気アップしました(と思います)。
------------------
 <ご注意>私自身が全くの超初心者ですので、文中まちがいがあるかも知れません。その際はご容赦をお願いします。<(_ _)>
ラベル:Unity3d FPS
posted by Shindo Izo at 21:59| Comment(0) | Unity3Dの練習 | 更新情報をチェックする

2013年11月08日

簡単なFPSゲームに挑戦19

 続きです。

<解決済みの問題点>
  A.ゲームオーバーにならない → <解決>
  B.リセットできない → <解決>
  C.弾のスピードが遅く緊迫感がない → <解決>
  I.照準(クロスヘアー)がない → <解決>

<未解決の問題点>
D.弾が地形や壁を貫通してしまう
E.音が全くない
F.プレイヤーの横スライドができない
 … 物陰の後ろに隠れて、すばやく撃つといった動作ができない
G.敵の砲台がダサイ
 … 弾を撃ってくるから砲台だと分かるが、パッと見では何なのか分からない
H.プレイヤーの武器がダサイ
J.プレイヤーの武器連射スピードが速すぎる
 バズーカ砲なのにマシンガンより速い連射ができてしまう

 BとCは前回で解決しました。今日は、簡単そうなIと問題のAをやってみたいと思います。それと、Jも。

<D問題の解決>
 さんざん悩んだあげく、他のオブジェクトにぶつかったときに弾を消去し爆発させる、という方法に落ち着きました。
 スクリプト(TamaHaretu)を弾(Dangan)にドロップ、explosionをChakudanにドロップ。
1tamaharetudesu.jpg

<スクリプトの内容>

//着弾破裂
var chakudan : Transform;
function OnTriggerEnter(hit : Collider){
    var haretu = Instantiate( chakudan,gameObject.transform.position, Quaternion.identity);
    Destroy(gameObject); //弾丸破壊
}

<J問題の解決>
 3回スペースを連打すれば一発撃てるようにしました。
 プレイヤーコントロールスクリプト(SolController.js)内のトップあたりに、

var hikigane : int;

を追加し、function Updaten内のプレイヤー攻撃に3行追加しました(緑字)。

//Player 攻撃
    if(Input.GetButtonDown("Jump")) {
      if(hikigane>2){
        var bullet = Instantiate(bulletPrefab, transform.Find("spawnPoint").transform.position, Quaternion.identity);
        bullet.tag = "mikatadan"; 
        bullet.rigidbody.AddForce( transform.forward * 3000);
        hikigane=0;
      }
      hikigane +=1;
    }


 一番気になっていたD問題が解決して良かったです。ホッ。
------------------
 <ご注意>私自身が全くの超初心者ですので、文中まちがいがあるかも知れません。その際はご容赦をお願いします。<(_ _)>
ラベル:FPS Unity3d
posted by Shindo Izo at 20:25| Comment(0) | Unity3Dの練習 | 更新情報をチェックする

2013年11月10日

簡単なFPSゲームに挑戦20

 続きです。

<解決済みの問題点>
  A.ゲームオーバーにならない → <解決>
  B.リセットできない → <解決>
  C.弾のスピードが遅く緊迫感がない → <解決>
  I.照準(クロスヘアー)がない → <解決>
  D.弾が地形や壁を貫通してしまう → <解決>
  J.プレイヤーの武器連射スピードが速すぎる → <解決>

<未解決の問題点>
E.音が全くない
F.プレイヤーの横スライドができない
 … 物陰の後ろに隠れて、すばやく撃つといった動作ができない
G.敵の砲台がダサイ
 … 弾を撃ってくるから砲台だと分かるが、パッと見では何なのか分からない
H.プレイヤーの武器がダサイ

 DとJは前回で解決しました。今日は、Eをやってみたいと思います。

<E問題の解決>
 音を出したいのは:

 a.バズーカ砲の発射音
 b.敵大砲の発射音
 c.BGM
 d.敵砲台の破壊時爆発音
 e.弾がその他のオブジェクトの当たったときの音
 

ですが、dとeはエラーが出てうまく行きませんでした。色々やってみましたがダメでした。
 そこで、最低限必要なaとb、あれば雰囲気を盛り上げるcをつけることで、とりあえず満足することにしました。dとeは今後の課題です。

<音を用意する>
 「フリー 効果音」とかで検索すると沢山あるので、そこからダウンしてきました。BGMは、本当はオリジナルでやりたいのですが、今回は練習なのでフリーの曲にしました。(mp3,wav,oggファイルなど)曲は3D Soundのチェックを外して2D Soundにしておきます。
 それらをProjectウィンドウにドロップします。

<効果音をオブジェクトにくっつける>
 音を出したいオブジェクト:

 ・プレイヤー(バズーカ砲発射音)
 ・敵大砲本体(大砲発射音)

をそれぞれに選択。それぞれ、Menu>Component>Audio>Audio Sourceをクリック。
 その時、AudioSource(Inspectorウィンドウ内)のオプションで、Play On Awakeのチェックを外しておきます。下の折れ線グラフみたいなのをいじると音の到達距離を変えられます。

<スクリプトを変更する>
 バズーカ砲の発射タイミングや敵大砲の発射タイミングで発射音が出るようにスクリプトを変更(追加)します。
 バズーカ砲は、プレイヤーコントロールスクリプト(SolController.js)内の上のほうに、

var msHassha : AudioClip;

を追加し、function Update()内のプレイヤー攻撃ルーチンの中に一行追加します。(緑字)

    //Player 攻撃
    if(Input.GetButtonDown("Jump")) {
      if(hikigane>2){
        var bullet = Instantiate(bulletPrefab, transform.Find("spawnPoint").transform.position, Quaternion.identity);
        bullet.tag = "mikatadan";
        bullet.rigidbody.AddForce( transform.forward * 3000);//henkou1106****
        audio.PlayOneShot(msHassha);
        hikigane=0;
      }
      hikigane +=1;
    }

 保存したら、バズーカ砲発射音ファイルをInspector内のMS Hasshaにドロップして完成。

 敵大砲は、敵大砲コントロールスクリプト(TaihoController.js)内の上の方に、

var taihoHassha : AudioClip;

を追加し、さらにfunction Shoot(byou)内の大砲発射ルーチンの中に一行追加します(緑字)。

function Shoot(byou) {

 if  (byou > jikanHozon){
  var bullet = Instantiate(bulletPrefab, transform.Find("spawnPoint").transform.position, Quaternion.identity);
  bullet.gameObject.tag = "tekidan"; //敵弾tag
  bullet.rigidbody.AddForce( transform.forward * 2500);
  audio.PlayOneShot(taihoHassha);
  jikanHozon = byou;
 }
}

 保存したら、大砲発射音ファイルをInspector内のTaiho Hasshaにドロップして完成。

<BGMが鳴るようにする>
 空のオブジェクト(Menu>GameObject>Empty Objectをクリック)を作り、それを選択した状態でMenu>Component>Audio>Audio Sourceをクリック。BGMファイルをInspector内Audio Clipにドロップ。Play On AwakeとLoopのチェックを入れる。 
 今度はHierarchyウィンドウ内で、上で作った空のオブジェクト(BGMとリネーム)を選択。Sceneウィンドウでプレイヤーの顔の前当たりに移動し、HierarchyウィンドウでBGMをプレイヤー(Soldier)の中にドロップして完成。
1bgmwokuttuketa.jpg

 音量のバランスは何度もプレイしてみて少しずつ変更して行くしかありません。

<最後に...>
 E問題が解決して、大体ゲームの形になりました。これにて、「簡単なFPSゲームに挑戦」は終了します。
 F、G、H問題は、また機会があったら挑戦したいと思います。
------------------
 <ご注意>私自身が全くの超初心者ですので、文中まちがいがあるかも知れません。その際はご容赦をお願いします。<(_ _)>
ラベル:FPS Unity3d
posted by Shindo Izo at 10:35| Comment(0) | Unity3Dの練習 | 更新情報をチェックする

簡単なFPSゲームに挑戦21

 前回で終了するはずだったのですが、思いついたことがありました。
 それは、このステージの終わりがないということです。終わりにするには、

 a.敵を全滅させたら終わりにする
 b・どこかに到達すれば終わりにする

といったことが考えられます。今回は、bにします。
 どこかに到達したら、次のステージ(レベル)に行ける、という風にしたいと思います。

<到達点の目印>
 箱でも玉でもドアでも小屋でも何でもいいんですが、今回は練習も兼ねてパーティクルを使いたいと思います。パーティクルゾーンに触れたら次のステージに飛ぶ、という風にしたいと思います。(次のステージは作ってないので、現在のステージを最初からやり直す設定です)

<到達点を作る1>
 空のオブジェクト(Empty Object)を作り適当にリネーム(ToutatuTenにします)、Menu>Component>Legacy Particlesの中にある、Ellipsoid Particle Emitter,Particle Animator,Particle Rendererをそれぞれクリックしてくっつけます。
1particledessee.jpg

<到達点を作る2>
 Inspectorウィンドウの中の設定を、色々いじって好きな形、大きさ、強さなどを決めます。下の値は試行錯誤中のものです。(Unity付属のParticle Assets をインポートしておく必要があります)
2particlesetteisa.jpg

<到達点を作る3>
 到達点(ToutatuTen)を選択して、menu>Component>Physics>Box Colliderをクリックしてコライダーをくっつけ、EnterDoorとリネームしたスクリプトもドロップしてくっつけます。
 ついでに、3D Textもくっつけてみました。

<スクリプトの内容>

function OnTriggerEnter (touch : Collider) {
  if (touch.name == "Soldier") {
    //Application.LoadLevel(2); //次のレベルへ(未作成)
    InochiControll.INOCHI = 3;
    InochiControll.HITS = 0;
    Application.LoadLevel(1); //このレベルの最初に戻る
  }
}

<完成図>
3nextleveldaze.jpg

------------------
 <ご注意>私自身が全くの超初心者ですので、文中まちがいがあるかも知れません。その際はご容赦をお願いします。<(_ _)>
ラベル:FPS Unity3d
posted by Shindo Izo at 22:03| Comment(0) | Unity3Dの練習 | 更新情報をチェックする

2013年11月24日

透明マッピング unity3D

 何回やっても、透明マッピングのやり方を忘れてしまうのでもうやだ〜(悲しい顔)、記事にして残しておこうと思います。

<舞台の準備>
 CubeとPlaneを置きました。Planeの方に透明マップをしようと思います。
1planeyooi.jpg

<マップをインポートする>
 ペイントソフトでバックを黒にした(透明になる部分)マップを描き、保存したファイルをインポート。Alpha from Grayscaleのチェックを入れます。
2alphayoui.jpg

<マップを透明に設定する>
 取り込んだマップを貼り付けたマテリアルをPlaneにドロップ。Mesh RendererのShaderをTransparent/Deffuseにチェンジして完成です。
3transparentsentaku2.jpg

 ちなみに、Transparentの意味は、「透明な」だそうです。

 マイFPSゲームを作り始めました。完成するかどうか...?? 下はゲームの一場面です。

ダンジョンを行くプレーヤー
4danjonwalkingsa.jpg

------------------
 <ご注意>私自身が全くの超初心者ですので、文中まちがいがあるかも知れません。その際はご容赦をお願いします。<(_ _)>

posted by Shindo Izo at 18:08| Comment(0) | Unityのお勉強 | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。