2014年11月24日月曜日

ボールカメラを酔わないようにする その3

「ボールとカメラは別」
>>ほい















 「ボールの位置を取得して、毎フレームごとにボールにカメラをついていかせる」
「っていうスクリプトをカメラにくっつける」
>>そぉい









using UnityEngine;
using System.Collections;

public class BallFollowCamera : MonoBehaviour {
    GameObject BlueBall;
    public float distance;
    public float height;
//    public float limit;

//    private Vector3 initialPosition;
   
    // Use this for initialization
    void Start () {
        BlueBall = GameObject.FindWithTag ("BlueBall");
        Debug.Log ("BlueBall: " + BlueBall.name);
    }
   
    // Update is called once per frame
    void Update () {
        this.transform.position = new Vector3(BlueBall.transform.position.x, BlueBall.transform.position.y + height, BlueBall.transform.position.z+ distance);
    }
}





「完」


そして・・・













やったぁ!!!!!
できたぁ!
ボールカメラキタ━━━━(゚∀゚)━━━━!!



後は、
「ボールの発射スクリプトを調整する」
「戻ってこないようにする板の可動範囲の調節」

だ!



※他の課題
「玉の撃ちだす方向の調整(Vector3の理解)」
「点数関連機能の実装」
「ボールの個数制限や点数系統の例外処理」
「発射機構の改善(引っ張って打つ奴の実装)」
「コリントの板に木目のテクスチャをキレイに貼り付ける(最難関)」
ここまで来て、やっとAndroidとPC(ブラウザ)版の公開になります。

次回作は予定済み!もう見本の材料も用意済み!お楽しみに!

2014年11月9日日曜日

ボールの発射スクリプトを調整する その2 + ボールカメラを酔わないようにする その2 + 【新課題】 戻ってこないようにする板の可動範囲の調節 その1

毎度の如く、「タイトルが長い」。
しょうがない。課題が増えていくんだもの。うーやだよー課題増えるのやだよ~(´・ω・`)ショボーン

とりあえず、
「ボールの発射スクリプトを調整する」

「ボールカメラを酔わないようにする」
だ。
「ボールカメラを酔わないようにする」
は後で・・・として、先に
「ボールの発射スクリプトを調整する」
だ。
今まで、
( ballObject.transform.forward ) * Speed + ballObject.transform.right,  ・・・
だった。
これ、forwardでやってたからダメだった。






だから言ったじゃないか!






この通り。
これを
new Vector3(2,StartY,Speed),  ・・・
にすると・・・






こ の 通 り。






やった進んだ!
Vector3でxyzを指定してやったらできた!



さてと次。
「戻ってこないようにする板の可動範囲の調節」
だ。
単純にこれは、あの斜めの板がまるで壊れたかのように真っ直ぐになっちゃう現象。

修正するところ
ヒンジジョイントの設定

簡単!・・・と思って行った時期も私にはありました。
「回転が到達できる最低/最高角度」
> なんかグワン!っていく
「Springを設定しないと自動的に戻ってこない」
> なんか重力関連で自動で戻ってきてた

  1. 設定してみた。
  2. 動作見てみた。
  3. なんかあんまり変わらんかった。(´・ω・`)ショボーン
角度ってなんなの!?
n°とかそれなの?
それともxyzに準じた角度なの?
よくわからん。
バネとかもあんまり意味を成してないような気もする。
Shadeだから?ShadeのObjectだから?それともUnity側?

あれは置いといて次。
「ボールカメラを酔わないようにする」
だ。
ググったり考えたりしたら、
「ボールとカメラは別で、カメラをボールの動きに合わせて毎フレームごとにボールについていかせる」
ってことをやればいい、ってことに気がついた。
「何言ってんだこいつ」
って思うかもだが、詳しく簡単に言うとこう。
  1. ボールとカメラは別。
  2. ボールの位置を取得して、毎フレームごとにボールにカメラをついていかせる。
  3. っていうスクリプトをカメラにくっつける。
こんな感じ。

この先書くのは次回かな・・・。
ボール回るようになったのはいいんだけど、なんで解決済みの課題からまた課題が出てくるのが不思議。

2014年11月7日金曜日

ボールを回転させる その2 + 【新課題】ボールの発射スクリプトを調整する その1 + 【新課題】ボールカメラを酔わないようにする その1

ボールを回転させる話・・・
なんと、バウンドさせる奴が悪さをしていた!
動摩擦係数と静止摩擦力がになっていた!
そりゃ回らないよ。
「摩擦力0」って。

なんで分かった?
  1. 別のプロジェクトで試してみた
  2. いろいろ比較した
  3. その結果、Physics Material(バウンドさせる奴)が無いことに気づく
  4. コピペして割り当てる
  5. 回らん。
  6. ググって確認した
  7. 摩擦力0だった。
というわけだ。

というわけで、摩擦を初期値の
「0.4」
にした。

回った!やっt・・・え?








おいどういうことだよ




多分回った事により、発射スクリプトの
「forward」
のところ。多分狂ったんだと思われる。

それと、これ





なんということでしょう







おいボールカメラ。
これじゃぁ酔うじゃないか。




結論
回転はいいんだ。
発射のスクリプトと
ボールカメラを酔わないようにする。



また課題増えた・・・(´・ω・`)ショボーン

2014年11月2日日曜日

壁をなくす その2 + 【新課題】ボールを回転させる その1

「ボールのy座標が『0』より下になったらReset処理を発動させる」
というスクリプトを書いてボールにくっつければ、完成!
ってことにしたい。

何と言うか・・・。
見つけたこととすれば、
「Resetを押すと、戻ってくることには戻ってくる」
「戻ってくるはいいけど、突き抜けてく」

簡単に言うと、回転やら移動やらを止めた状態で初期位置にテレポートさせればいいわけだ。
なんで移動を止めるか。
それは、ボールに割り当てたComponentの中で、
「RigidBody」
という、物理属性を与えるComponentを与えていた。
重力を有効にしていた。
落ちることで加速されていくため、超高速移動Objectとして当たり判定を突き抜けていた。
そのために止める。

それには、こういうプログラムを使う。
ballObject.rigidbody.velocity = Vector3.zero;
ballObject.rigidbody.angularVelocity = Vector3.zero;
上は移動を止める、
下は回転を止める。

まぁこれで出来たわけだ。





・・・まてよ?
ボールってほんとに回転してる?
 いやまさかぁ。
そのまさかがある?


あった。


_人人人人人人_
>回転してねぇ!<
 ̄Y^Y^Y^Y^Y^Y^ ̄

あの
「見た目が鉄のようなボール」。
回転してるように見えたあのボールも、実は

残念!それは目の錯覚だよ!
 テクスチャをわかりやすいやつに変えたら発覚した。
どうしてこうなった。



とりあえず、回転させたい。
でも回転などのやつにも、標準でunityは制限をかけているようだ。(まーた課題が増えた(´・ω・`)ショボーン)






壁をなくし、落ちた時の対処もできた!
でも、ボールが回転してなかったのは盲点だった。チッキショォォ!

また次回!

2014年11月1日土曜日

影の見え方 + 壁をなくす その1


 影の見え方を見るため、ライトを変えてみる。













これと













これを













これに。


すると













これから













これに。

ライトを変えた理由としては、ダボとか釘とかの影が出るかな~と思ったため。


・・・違和感あるな。
釘とかの影が出てこない・・・。
壁も違和感が・・・

そうだ。
別の課題をちゃちゃっとやって終わらせてみるか。

別の課題
「壁をなくす」

いけるんじゃね?
やってみた。













こんな感じ。
壁の影的違和感はなくなった。


問題はまだあるが。





釘とかの影が出てないこと。

調べたら、
ライトは、Shadow と投影することもできます。 影は、Pro 専用の機能です。 影プロパティは、ライトごとに調整可能です。
 「影はUnity Proな!
って書いてあった(´・ω・`)ショボーン
でも、なんか変な影的何かは出てるんだよなぁ・・・あの黒い部分。
この黒い部分は、結局光が当たってないところらしい。

調べたら、
「無料版でもUnity4.2から『HardShadow』のみ使用可能」
「『SoftShadow』でもHardShadowに自動でなる」
「出力プラットフォームが『Android・IOS・BlackBerry』だとできない」
と書いてあり、見てみたら、

_人人人_
>Android<
 ̄Y^Y^Y^ ̄
やってしもた・・・。

変える前

























影はこちら













キタ━━━━(゚∀゚)━━━━!!
影キタ━━━━(゚∀゚)━━━━!!


もう一つの課題、
それは、ボールがどっか行っちゃうんじゃね?ってこと。
このコリント、落ちるとResetできなくなるんだよなぁ・・・

というわけで
「ボールのy座標が『0』より下になったらReset処理を発動させる」
というスクリプトを書いてボールにくっつければ、完成!
ってことにしたい。

とりあえずここまで!
続きは次回!