新ゲーム「Caplus(キャプラス)」開発日記10
新ゲーム「Caplus(キャプラス)」開発日記9
本日0時より遅れてしまいましたが、なんとかUnityRoomアドベントカレンダー12/10分の作品「Caplus」を公開いたしました。
Caplus | 無料ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう
新ゲーム「Caplus(キャプラス)」開発日記8
Caplus用のBGMをMedlyアプリで簡易ながら作曲してみました。
タイトル
soundcloud.com
メニュー
soundcloud.com
ゲームオーバー
soundcloud.com
あとはNASAのウェブサイトで利用可能な画像を使いゲームの背景に設定してみました。
新ゲーム「Caplus(キャプラス)」開発日記7
引き続きCaplusの実装を進めていました。
タイトル、メニュー、ゲーム画面の各シーンの繋ぎ込み。メニュー画像の各ボタンはスプライト画像を準備して、UnityのSpriteEditorでスライスを行い、設置を行いました。
来週12/10のunityroom アドベントカレンダー 2018にて公開できるように準備中です。(来週の段階では一部のゲームのみ遊べる状態を目標としています。)
プレイヤーの動きについても、実装を行いました。プレイヤーの移動の際にRigidBodyに速度を加えて、キー操作のない場合、速度を強制的に0にしています。(以前はFixedUpdateを使っていましたが、今回はUniRXを使い、キー操作があった時のみ処理を実施するようにしています。)
プレイヤーの移動範囲については、画面に合わせてBoundaryクラスで定義しています。(シューティングチュートリアルのものと同様です。)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UniRx;
using UniRx.Triggers;
namespace Caplus.Assets.Scripts.Player
{
[System.Serializable]
public class Boundary
{
public float xMin, xMax, yMin, yMax;
}
public class PlayerMove : MonoBehaviour
{
public SimpleTouchPad touchPad;
public Boundary boundary;
public float speed;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
boundary.xMin = -16;
boundary.xMax = 8;
boundary.yMin = -10;
boundary.yMax = 10;
speed = 20;
// UniRX 移動処理
this.UpdateAsObservable()
.Where(_ =>
(Input.GetAxis("Horizontal") != 0) ||
(Input.GetAxis("Vertical") != 0)
)
.Subscribe(_ => ActionMove());
this.UpdateAsObservable()
.Where(_ =>
(Input.GetAxis("Horizontal") == 0) &&
(Input.GetAxis("Vertical") == 0)
)
.Subscribe(_ => ActionStop());
}
void ActionStop()
{
rb.AddForce(0, 0, 0);
GetComponent<Rigidbody>().velocity = new Vector3(0, 0, 0);
}
void ActionMove()
{
float x = Input.GetAxis("Horizontal");
float y = Input.GetAxis("Vertical");
Vector3 movement = new Vector3(x, y, 0.0f);
GetComponent<Rigidbody>().velocity = movement * speed;
GetComponent<Rigidbody>().position = new Vector3
(
Mathf.Clamp(GetComponent<Rigidbody>().position.x, boundary.xMin, boundary.xMax),
Mathf.Clamp(GetComponent<Rigidbody>().position.y, boundary.yMin, boundary.yMax),
0.0f
);
}
}
}
新ゲーム「Caplus(キャプラス)」開発日記6
引き続きCaplusのタイトルを作ってみました。
背景の作り込みがまだだったので、Autodesk Graphicを使い、宇宙や地球をなんとなくですが、イメージしたものを目指してみました。
中央部分の光は独自ブラシを使い、端のほうが細くなるような光のようなイメージにして、レイヤーのモードを調整するなどしてみました。
一週間ゲームジャム テーマ「10」 TENKOWASUというゲームを作ってみました
一週間ゲームジャム テーマ「10」 TENKOWASUというゲームを作ってみました。
やはりあまり時間をとれず、Roll-a-ballをメインとしたゲームにしてみました。
今回チャレンジしてみたかったものの実現できなかったものはオブジェクトを砕く表現と加速した時にオブジェクト破壊にその威力が反映するようにする仕様でした。velocity magnitudeをつかってみたのですが、速度の取得がうまくいきませんでした。(ボールをいろいろな角度からオブジェクトにぶつけようとした時に、取得しようとする速度が極端に変わってしまう。)
オブジェクトを砕く表現については、オブジェクトに触れた時に、割れたオブジェクトを用意して、それに差し替えRigidbodyを使って破片を吹き飛ばすようなことができそうかなというイメージは湧いたのですが、こちら素材を作り込む時間がなかったため、Unityの標準機能で作ったプレハブと交換する程度にしてみました。
作ってみたいアイデアの練りこみをもう少し行うのと、開発期間を短縮するために簡単なゲームをもっとたくさん作っておく必要があると実感しました。
あとは最低限の挙動をするゲームのプロトタイプを用意しておき、今後はそれを使って開発期間を短縮させたり、UI周りの素材、音楽などを準備しておくなどして、クオリティをアップさせられるようにできればと思います。
一週間ゲームジャム テーマ「10」 TENKOWASUというゲームを作ってみます
今回の一週間ゲームジャムのテーマは10なので、10個のオブジェクトを破壊するTENKOWASUというゲームを作ってみることにします。
ゲームのルール自体は比較的シンプルなものになると思いますが、一度に10個壊すのは少しコツや運も必要なものにできればと考えています。週末にならないと開発に本格的に着手はできなそうなので、今はタイトル画像などの素材を作っています。