プレイ日記代わりの動画です。
WORLD06
2015年1月31日土曜日
2015年1月30日金曜日
2015年1月28日水曜日
2015年1月27日火曜日
2015年1月26日月曜日
2015年1月25日日曜日
2015年1月23日金曜日
初めてUnityをいじってみた。チュートリアルのブロック崩し編 第3回
前回までで超手抜きではありますが、基本ルールが出来ました。
ボールを加速させるルーチンを作ってみました。
条件として、60フレームごとに最小値の加速をさせてみました。
観察しててあれ?って思ったのはラケットにぶつかると速度が落ちてるみたいってことです。
摩擦とかなくしてるので落ちないと思ってたのですがそうではないようです。
また、このペースで加速させると早すぎるのと壁の外に飛び出してしまいました。
これでは困るので最大値と条件を変更したほうがいいって事と、ぶつかった時にスピードの 再設定をした方がいいみたいです。速度落ちない設定があればその方がいいとは思いますが 現状ではわからないので、とりあえずその方向で行きます。
ボールを加速させるルーチンを作ってみました。
条件として、60フレームごとに最小値の加速をさせてみました。
private float speed = 10; private int count = 0; // Use this for initialization private void Start () { rigidbody.AddForce ((transform.forward ) * speed, ForceMode.VelocityChange); } // Update is called once per frame private void Update () { count++; if (count == 60) { speed += 0.1F; count = 0; rigidbody.velocity = rigidbody.velocity.normalized * speed; } }また、わかりやすくする為に上下運動だけになるようにボールの初期方向を真上にして観察します。
観察しててあれ?って思ったのはラケットにぶつかると速度が落ちてるみたいってことです。
摩擦とかなくしてるので落ちないと思ってたのですがそうではないようです。
また、このペースで加速させると早すぎるのと壁の外に飛び出してしまいました。
これでは困るので最大値と条件を変更したほうがいいって事と、ぶつかった時にスピードの 再設定をした方がいいみたいです。速度落ちない設定があればその方がいいとは思いますが 現状ではわからないので、とりあえずその方向で行きます。
private float speed = 15; private int count = 0; private const int MAX_SPEED = 45; // Use this for initialization private void Start () { rigidbody.AddForce ((transform.forward +transform.right) * speed, ForceMode.VelocityChange); } // Update is called once per frame private void Update () { count++; if (count == 60 && MAX_SPEED > speed) { speed += 0.1F; count = 0; } } // 衝突した他オブジェクトから離れた瞬間に呼ばれるメソッドです。 private void OnCollisionExit(Collision collision) { rigidbody.velocity = rigidbody.velocity.normalized * speed; }これでとりあえずは終了。次は2Dをちょっといじってみたい。
2015年1月22日木曜日
初めてUnityをいじってみた。チュートリアルのブロック崩し編 第2回
前回はボールを動かすところまでやりました。
このままですとボールが壁に当たってそのまま転がって右上で止まってしまいます。
なのでバウンドするようにしていきます。
Project→Create→Physic Materialで新しい命令を追加します。名前は自分でわかりやすい名前をつけるといいです。
Dynamic Friction、Static Frictionは摩擦なので0に設定します。
Bouncinessを1に設定します。0が跳ね返り0で最大が1です。
Friction Combine Modeは摩擦なのでMinに設定します。
Bounce Combineは跳ね返し度合いなのでMaxに設定します。
※今回は摩擦の考慮が必要ないのでこのような設定になります。
これだけだと跳ね返りの設定だけで何に対してなのかを設定します。
先ほど作ったボールを選択します。InspectorのColliderのMaterialに設定します。
None (Physic Material)ってボックスにドラッグドロップでもいいし、その横にある○みたいなアイコンを
クリックして選択でもOKです。これで跳ね返りの設定は完了です。
ラケットを操作可能にしていきます。
Project→Create→C#で新しい命令を追加します。名前は自分でわかりやすい名前をつけるといいです。
Input自体はUnityでやってくれます。
Edit→Project Settings→Inputで確認出来ます。
ブロックを配置します。配置はいままでと同じようにします。
そして、ボールがあたった時に破壊される設定をします。
ボールが下の壁にあたったら消えるようにします。
さっきのとの違いは自身を消すのではなく、当たってきた物を消してます。
これで、最小限の物が出来ました。
次回は、ボールが徐々に早くなるってルールを入れたいです。
このままですとボールが壁に当たってそのまま転がって右上で止まってしまいます。
なのでバウンドするようにしていきます。
Project→Create→Physic Materialで新しい命令を追加します。名前は自分でわかりやすい名前をつけるといいです。
Dynamic Friction、Static Frictionは摩擦なので0に設定します。
Bouncinessを1に設定します。0が跳ね返り0で最大が1です。
Friction Combine Modeは摩擦なのでMinに設定します。
Bounce Combineは跳ね返し度合いなのでMaxに設定します。
※今回は摩擦の考慮が必要ないのでこのような設定になります。
これだけだと跳ね返りの設定だけで何に対してなのかを設定します。
先ほど作ったボールを選択します。InspectorのColliderのMaterialに設定します。
None (Physic Material)ってボックスにドラッグドロップでもいいし、その横にある○みたいなアイコンを
クリックして選択でもOKです。これで跳ね返りの設定は完了です。
ラケットを操作可能にしていきます。
Project→Create→C#で新しい命令を追加します。名前は自分でわかりやすい名前をつけるといいです。
private float speed = 10.0; // Use this for initialization private void Update () { rigidbody.AddForce( transform.right * Input.GetAxisRaw( "Horizontal" ) * accel, ForceMode.Impulse ); }と記述します。ここではStartではなくUpdate()に記述します。
Input自体はUnityでやってくれます。
Edit→Project Settings→Inputで確認出来ます。
ブロックを配置します。配置はいままでと同じようにします。
そして、ボールがあたった時に破壊される設定をします。
// 他オブジェクトと衝突した瞬間に呼ばれるメソッド private void OnCollisionEnter(Collision collision) { Destroy(gameObject); }と記述しブロックにスクリプトを追加します。
ボールが下の壁にあたったら消えるようにします。
// 他オブジェクトと衝突した瞬間に呼ばれるメソッド private void OnCollisionEnter(Collision collision) { Destroy(collision.gameObject); }これを下の壁にスクリプトを追加します。
さっきのとの違いは自身を消すのではなく、当たってきた物を消してます。
これで、最小限の物が出来ました。
次回は、ボールが徐々に早くなるってルールを入れたいです。
2015年1月19日月曜日
初めてUnityをいじってみた。 チュートリアルのブロック崩し編 第1回
インストールと登録関連は特に問題なく進みました。
Versionは4.6.1f1。
入門系のブロック崩しのチュートリアルを見ながらいじっていきます。
参考にしたチュートリアルは公式のチュートリアル「はじめての Unity」
最初にチュートリアル通りに底辺にあたる壁を配置。
設定がよくわかってなく、マウスで壁を調整しようとしてうまくいかない。
色々やってて、結局インスペクターからTransFormをいじる事に。
Position:位置、Rotation:回転、Scale:大きさとなっている。
チュートリアルどおりにPosition(0,0,0) Rotation(0,0,0) Scale(20,1,1)に設定
次に左辺にあたる部分。
Duplicateで複製し、Position(-10,0,15) Rotation(0,0,0) Scale(1,1,20)に設定
残り二辺もさくっと作成。
Position(0,0,30) Rotation(0,0,0) Scale(20,1,1)に設定
Position(10,0,15) Rotation(0,0,0) Scale(1,1,20)に設定
これで囲む壁が出来ました。
上部にある「実行(右向きの▲)ボタン」?で多分実行だろうと押す。
・・・・・・保存してなかったせいか巻き戻りみたいな事に。
やる気Down
気を取り直して、再設置してから、カメラの設定。
色々いじるがいい形にならない。
とりあえずは、全体が表示されるのでそのまま置いて、光源の追加。
ここは特に問題はありませんでした。
ラケットとボールの配置。Sphereで球体の配置が出来ます。
ここで気をつけないといけないのは、壁とラケット、ボールの位置関係。
平面ベースでやってるので今回はPositionのYを0に合わせます。あとは位置はお好みの位置で大丈夫。
これで、見た目の部分としては完了します。
動く物体の設定をします。対象はラケットとボール。
対象を選択しつつComponent→Physics→Rogodbodyを追加。
まずはボールから。
Drag:空気抵抗を0に設定。これで動いてる間は遅くならないはず。
Freeze PositionでY軸を固定。Freeze Rotationは回転要素なのでX,Y,Zを全て固定。
Y軸を固定したので必要ないかもしれませんが、Use Gravity:重力の使用のチェックをはずします。
Mass:質量はとりあえず1くらいにしておきます。
ボールの動きを入れていきます。最初に開始時の方向。
Project→Create→C#で新しい命令を追加します。名前は自分でわかりやすい名前をつけるといいです。
チュートリアルではJavaScriptでやってますが私がC#の方が慣れ親しんでるのでこちらで作成します。
speedで初期速度を設定してます。 rigidbody.AddForceで力を加えます。
ForceMode.VelocityChangeはいきなりその速度にする設定です。
その下にコメントで同じですがプロパティで設定する方法を記述しました。
とりあえずボールが動く用になりました。
かなり長くなりましたので今回はここまで。
Versionは4.6.1f1。
入門系のブロック崩しのチュートリアルを見ながらいじっていきます。
参考にしたチュートリアルは公式のチュートリアル「はじめての Unity」
最初にチュートリアル通りに底辺にあたる壁を配置。
設定がよくわかってなく、マウスで壁を調整しようとしてうまくいかない。
色々やってて、結局インスペクターからTransFormをいじる事に。
Position:位置、Rotation:回転、Scale:大きさとなっている。
チュートリアルどおりにPosition(0,0,0) Rotation(0,0,0) Scale(20,1,1)に設定
次に左辺にあたる部分。
Duplicateで複製し、Position(-10,0,15) Rotation(0,0,0) Scale(1,1,20)に設定
残り二辺もさくっと作成。
Position(0,0,30) Rotation(0,0,0) Scale(20,1,1)に設定
Position(10,0,15) Rotation(0,0,0) Scale(1,1,20)に設定
これで囲む壁が出来ました。
上部にある「実行(右向きの▲)ボタン」?で多分実行だろうと押す。
・・・・・・保存してなかったせいか巻き戻りみたいな事に。
やる気Down
気を取り直して、再設置してから、カメラの設定。
色々いじるがいい形にならない。
とりあえずは、全体が表示されるのでそのまま置いて、光源の追加。
ここは特に問題はありませんでした。
ラケットとボールの配置。Sphereで球体の配置が出来ます。
ここで気をつけないといけないのは、壁とラケット、ボールの位置関係。
平面ベースでやってるので今回はPositionのYを0に合わせます。あとは位置はお好みの位置で大丈夫。
これで、見た目の部分としては完了します。
動く物体の設定をします。対象はラケットとボール。
対象を選択しつつComponent→Physics→Rogodbodyを追加。
まずはボールから。
Drag:空気抵抗を0に設定。これで動いてる間は遅くならないはず。
Freeze PositionでY軸を固定。Freeze Rotationは回転要素なのでX,Y,Zを全て固定。
Y軸を固定したので必要ないかもしれませんが、Use Gravity:重力の使用のチェックをはずします。
Mass:質量はとりあえず1くらいにしておきます。
ボールの動きを入れていきます。最初に開始時の方向。
Project→Create→C#で新しい命令を追加します。名前は自分でわかりやすい名前をつけるといいです。
チュートリアルではJavaScriptでやってますが私がC#の方が慣れ親しんでるのでこちらで作成します。
private float speed = 10.0; // Use this for initialization private void Start () { rigidbody.AddForce ((transform.forward + transform.right) * speed, ForceMode.VelocityChange); //rigidbody.velocity = (transform.forward + transform.right) * speed; }と記述します。Start()の部分は最初からあります。
speedで初期速度を設定してます。 rigidbody.AddForceで力を加えます。
ForceMode.VelocityChangeはいきなりその速度にする設定です。
その下にコメントで同じですがプロパティで設定する方法を記述しました。
とりあえずボールが動く用になりました。
かなり長くなりましたので今回はここまで。
2015年1月18日日曜日
400in1 011~020 起動テスト編。
2015年1月17日土曜日
小悪魔ココトの宇宙人くずし
テヨンジャパンの「小悪魔ココトの宇宙人くずし」を買いました。
ブロック崩し+インベーダーって感じのゲームです。
ブロック崩し要素の方が大きい感じになります。
ストーリーモード、アーケードモード、クラシックモードの3種のモードになっています。
ストーリーモード、アーケードモードは自機がなくなるか、惑星を破壊されるとゲームオーバーです。
クラシックモードはブロック崩しさながらのミスするとゲームオーバーになります。
クラシックモードではアイテムが出ない、ジャンプが出来ないとなってます。
ストーリーを一応クリアしましたが、トロフィは全部あつめるの諦めました。
面によってはかなりきついのがあって2~3個くるしいかなって思いました。
熱中するようなゲームではないですが、暇つぶし程度にはいいかなって感じでした。
価格が500円なのでセールじゃないとちょっと高いかなって感じです。
一緒に買った「ちっちゃなげ~む Vol.1 ナイトとドラゴンのヒマつぶし」は
私には合わなかったです。自分の中では損したなって思いました。
昔ながらのゲームを3DSって感じなのですがやっててつまらなかったです。
ココトの方はブロック崩し好きなら、どんな感じかみてみるといいかも。
ブロック崩し+インベーダーって感じのゲームです。
ブロック崩し要素の方が大きい感じになります。
ストーリーモード、アーケードモード、クラシックモードの3種のモードになっています。
ストーリーモード、アーケードモードは自機がなくなるか、惑星を破壊されるとゲームオーバーです。
クラシックモードはブロック崩しさながらのミスするとゲームオーバーになります。
クラシックモードではアイテムが出ない、ジャンプが出来ないとなってます。
ストーリーを一応クリアしましたが、トロフィは全部あつめるの諦めました。
面によってはかなりきついのがあって2~3個くるしいかなって思いました。
熱中するようなゲームではないですが、暇つぶし程度にはいいかなって感じでした。
価格が500円なのでセールじゃないとちょっと高いかなって感じです。
一緒に買った「ちっちゃなげ~む Vol.1 ナイトとドラゴンのヒマつぶし」は
私には合わなかったです。自分の中では損したなって思いました。
昔ながらのゲームを3DSって感じなのですがやっててつまらなかったです。
ココトの方はブロック崩し好きなら、どんな感じかみてみるといいかも。
登録:
投稿 (Atom)