作者別: ToTo (2ページ / 6ページ)

時間経過でのパラメーター加算2

解決した

DeltaTimeを用いて、1秒を加算していき、数秒で一回ごとにパラメーターを変えて行くやつ。

家族で外食に行っていた時に、急に思いつきました。

そうか。「=」じゃないんや。バカですねー。参考にした所にも書いていましたよね「>=」って。

そうね。そうだよねー。もう本当に嫌。こういうしょうもないことに引っかかって

時間経過でのパラメーター加算

直して結果物はこれ。

1個目のパラメーターが順調に加算していきます。

解決したー。前回から直した所は、一箇所だけ。「=」が「>=」。

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class PrmControl : MonoBehaviour {

	//時間表示用
	public Text TimeT;
	private bool TimeF;

	//3x5 = 15で時間制御
	private float timeN;
	private float timeC = 15f;

	//パラメーター用
	public Slider S1;
	public Text S1t;
	private int numS1;
	private float S1f = 2f;
	private float S1n = 0;

	public Slider S2;
	public Text S2t;
	private int numS2;
	private float S2f = 3f;
	private float S2n = 0;

	public Slider S3;
	public Text S3t;
	private int numS3;
	private float S3f = 5f;
	private float S3n = 0;

	// Use this for initialization
	void Start () {
		//時間制御
		TimeF = false;
		timeN = 0;

		//初期化
		S1n = 0;
		S2n = 0;
		S3n = 0;

		//パラメーター表示
		numS1 = 2;
		numS2 = 5;
		numS3 = 9;

		S1.value = numS1;
		S1t.text = numS1.ToString ();

		S2.value = numS2;
		S2t.text = numS2.ToString ();

		S3.value = numS3;
		S3t.text = numS3.ToString ();
	}
	
	// Update is called once per frame
	void Update () {
		
		if (TimeF == true && timeN <= timeC ) {
			TimeT.text = timeN.ToString ("00");

			if (S1n >= S1f) {
				numS1 = numS1 + 1;
				S1.value = numS1;
				S1t.text = numS1.ToString ();
				S1n = 0;
			} else {
				Debug.Log (S1n);
				Debug.Log (S1f);
				S1n += Time.deltaTime;
			}

			timeN += Time.deltaTime;
		}

		//初期化
		if (timeN == timeC) {
			timeN = 0;
			TimeF = false;
		}
	}

	public void PushButton(){
		TimeF = true;
	}
}

 

時間経過でのパラメーター加算

思った以上にうまくいかない

今の私の心が、9月1日からの社会人復帰に向けて残る8月を全力で遊びたいって叫んでいるからかもしれない。

最初は、普通に会社に行く前まで根本となるシステムを作っておいてから、12月の公開に向けて二足の草鞋が履ける状態になりたいな〜という夢をみていたのですが・・・。

割と最後の週、休みなく予定が入るの、全力でだらだらしたいの、風邪引きの・・・。

とりあえず、1週間のスケジュールを1日3秒の時間で進ませ、パラメーターをあげたり下げたりするところを作りたい。

割と、ここに詰まっています。

deltatimeを使うので対応する予定。

※参考サイト
[Unity] 一定の時間間隔で処理を実行する方法まとめ(時間制御)

ただ、予想と違う動きになる・・・。

確認してみよう

今作っているゲームで試すにはパラメーターが多すぎるので、パラメーター部分だけを取り出してみました。

15秒で三つのパラメータに変化を与えたい。

で、うまくいかない。

	void Update () {
		
		if (TimeF == true && timeN <= timeC ) {
			TimeT.text = timeN.ToString ("00");

			if (S1n == S1f) {
				numS1 = numS1 + 1;
				S1n = 0;
			} else {
				Debug.Log (S1n);
				Debug.Log (S1f);
				S1n += Time.deltaTime;
			}

			timeN += Time.deltaTime;
		}

		//初期化
		if (timeN == timeC) {
			timeN = 0;
			TimeF = false;
		}
	}

S1nは1秒ごとに1プラスされます。
S1fはフラグ。2が格納されています。 float型です。

2秒でPrm1の数値が1上がるはずだった。

の予定でした。

結果はこれ。

時間だけがすぎる・・・。パラメーターは変わらない。

Logを入れてみたら、こういう結果に。

比較対象のS1f = 2のままだが、S1n = 2ジャストになることがないため、if文の条件に該当しない。

詰まった・・・。

今日のお仕事はおしまい。また明日・・・。

ゲームの「確率」のお話

良い記事を見つけた

課金を組み込む予定ですが、特にガチャを組み込む予定はありません。

ただ、ゲームの中で、1週間でのパラメーター上げのとき、一定の確率でパーフェクトになってほしい。

どうやって確率って、組み込むべきかと悩み中。

確率って、1%っていっても、100回ガチャ回したから1回当たる訳ではないじゃん。検索してみたら求めていた記事を見つけました。

私がやろうとしていたものとは違うのですが、すごく丁寧な説明でわかりやすい。

忘れるから、ここに書いておきます。

パネルの配置

パネル量産しちゃう

他の方はボタン押して表示するパネルをどこに置いているのでしょうか。

現時点で7つのパネル。あー。「帝国歴」という厨二臭い言葉消しとけばよかった・・・。乙女ゲームでも育成シミュレーションっぽい感じで作っているせいで、こうなりました。

右側に集まっているボタンを押すとそれぞれ開くパネルがいっぱい。

で、この子はゲームを稼働するとサイズ0になり一旦消えます。

こんな感じ。うーん。前回のGifファイル表示されなかったんだけど、今回は表示されるかな。

まだこれで全部じゃないのでさらに増える予定。

他の人と一緒にやるのだったらより効率の良い方法が見つかるのだろうか。ま、これでいきていきたいけどそれでもゆうて数人でやることになるだろうからま、あ自分おやり方でいいか。

【制作進捗】割と良いところまできているけど

デザインの決め時期がよくわからない

※長めのGif画像のためか、表示されない場合があります。

ここまで実装できました。

NewGameで、名前と他設定を決めて、メインゲーム画面へ。

画像ではわからないですが、数値のパラメータを持っています。知識とかね。

スタート画面のお嬢さんは確か、ルイ14世の妾のマダム・・・なんとかさん。とりあえずの雰囲気を出すために置いておいただけです(笑)。

メイン画面の画像も拾ったやつ。あれも雰囲気を出すためにおいておいただけ。

パネルとか全てのデザインはuGUIのデフォルト状態ですね。まだ、デザインを決めていない。

と、ここで一旦ストップしているんですが、機能を実装終えてから、デザインをいじったほうがいいのか

それとも、この段階でデザインを決め込んで、それに合わせた機能を実装するのか

うーん。ゲーム会社では同時進行かなー。一人でやるからちょっと難しいかなー。

今日はデザインを決めてやろうと、色々してみたのですが。

実装するよりはるかに時間がかかる。ボタンの配置などは決めているので、私がやって早いのは、大まかな配置などだけを決めといて、あとはシステムを実装し、実装したゲームに合わせたデザインを作ったほうが良い気がしました。

楽しいけど難しいね。

この頃ゴーストリコンというゲームが私の趣味ドンピシャで、そればかりやっておりました。あれは、いいねー。

一回目のエンディング、あれはあれで好きよ。2回目のが真エンディングって呼ばれているらしいけどー。

9月になればリアルな社会人になってしまうので、今月にコアなところは実装終えてしまいたいですわ。

UnityコミュニティWikiが繋がりました

やっとだ

管理していただいている親切な皆様に遠くで感謝。

世の中は能力者で溢れていますよね・・・。

【リンク】
Unityコミュニティ – Unify Community Wiki

PlayerPrefsXのページはこちら。

【リンク】
ArrayPrefs2 – http://wiki.unity3d.com/index.php/ArrayPrefs2

使い方は簡単。ソースをcsファイル化して、pluginフォルダに突っ込む。あとは、PlayerPrefsと使い方は一緒です。

特に説明なくとも使えるほどよくできているものだと思う!

PlayerPrefsXのリンク切れが続いている

PlayerPrefsの拡張版PlayerPrefsX

セーブなどの保存に使う「PlayerPrefs」は配列が対応できない。

なので素敵なコミュニティWikiで公開してくれていた配列がセーブできる子がある。それが「PlayerPrefsX」。

【リンク】
ArrayPrefs2 – Unify Community Wiki

ストレッチアプリをセーブさせるときに、複数のストレッチをセーブさせておく必要があったから、これを使わせていただきました。

使い方も丁寧に説明があるし、

Pluginsのフォルダにcsを入れておけばすぐ使えるので、これからも重宝するとは思ったんですよね。

先月あたりからコミュニティに繋がりませぬ。Assetをエクスポートしておいてよかった。

割と良い感じに進んでいる

転職活動をして、転職を決めまして9月よりフリーランスではなく会社員となりました。

うーん。乙女ゲームだけを作り続けていきたかったけど、しばらくは副業としてなりそうです。副業というほどお金は全く儲けがないのですけどね(笑)

シミュレーションゲームの、名前と初期設定パネルの完成。

デザイン性は無しにして、これをAssetとして吐き出しました。使いまわせるからねー。あの、名前のパネルだけでもすごぶる大変だったのよ。

で、この情報を登録しておきたいから、PlayerPrefsXを使おうとしたらサイトにつながらなーい。

会社員になるからか

全力で何もしたくない。

何もしていないけど、激しく何もしたくない。

そしてUnity1Weekは終わっていた。やべー次は参加するーとか言ってたのに・・・。今年中に一度は参加するぅ

そして、会社行く前までに絵を書く前のシステムは完了させようと思います。

何もしたくないけどね。

【Blender】不要なアニメーション(アクション)を削除する。

Blenderが一番大変だった

情報は、溢れています。結構外国の素敵な肩がYoutubeに才能を寄付してくださっているので、参考書不要だと思った。

昔々5000円くらいのBlenderの参考書を買って一度の開いていない(しかも今回も参考にしていない)ということをしたのですが、Youtubeの方が丁寧です。英語分からなくとも、ボタンの動きで把握できるから。動画だもん。

Unity自体では苦労したところはないし、特筆することも特にないんだけど・・・。

とりあえずBlenderでもっとも苦労した、不要となったアニメーションの削除について書き残しましょう。

みんなアニメーション後から不要になることないの?後で「あーやっぱ不要だったべー」ってなったんだけどなー。不要なアニメーションがあると重くなるからどうしても消したかったのです。

こんなにただアニメーションを流すようなものは、ないからかしら。うーん。

アプリ公開できました

情報がなくて大変だった。完全手探り。割と、検索自体はやっているようだけど、求める情報がない。こうすればいいよってブログがあるけど、できなかったよ。

かなり偶然だと思う。とりあえず色々ボタン押してみて、なんとかなった感じ。丸二日?くらいは潰したような気がする。

アニメーションを削除しよう

とりあえずアニメーションを準備

上下するアニメーション「Action01」と右に動くアニメーション「Action02」。

今回はAction01を削除してみます。

NLAエディターでまずは削除

まずは、Action02を表示させてみましょう。NLAトラックで「保留アクション」に削除したいAction01があります。

それでは、NLAエディターを開きます。

現在表示しているのが、Action02。その下に、隠れているのが、保留アクションのAction01

Action01の【保留アクション】を選択して、キーボードの「X」ボタンで削除

保留アクションがなくなりました。ここでは

ビューのところでも保留アクションが削除がされています。

が、しかし。これでは削除されているかのように見せかけて生きている!しつこい!

ドープシートでアクションを削除

次にやるのが、ドープシートのアクションを削除。

アクションをつける、ドープシートを開きましょう。

現在開いているのは、「Action02」。ほらみて。「Action01」が「F」付きでいらっしゃる。

なので、Action01を開く。

「F」が押されているので、もう一度押して選択を解除する。すると数字が消えます。そして、「✖️」を押しましょう。

これで、やっと、Action01が削除されました。もう一度、アクション一覧を開くと、

Action01の前が「F」から「0」になっていることが確認できます。

これでやっと、消したかったアニメーションが削除されました。本当に消えたのか確認したいので、Blenderデータをセーブして、開き直してみましょう。

アクション一覧を見ると、なくなりました。

いやー。これを知るまで大変だった・・・。本当、大変だった・・・。Blender嫌いになりそうだった。

まとめ

1。削除したいアクションを以外を開いておく。

2。NLAエディターで削除したアクションを削除。

3。ドープシートで削除したいアクションを開き、「F」を解除。そして「X」をおす。これで削除。

アプリ公開できました

当初予定より2週間遅れ

オフィスで簡単ストレッチ

最初の予定は、6月30日公開でした。気づいたら、2週間遅れの、7月12日になりました。

長時間同じ姿勢で働いているのゴリ固まるので、1時間に3分でも軽いストレッチをしましょうということから、作られたアプリです。

反省点の多い、でも気づいたことも多かったので良しとしましょう。

振り返りも7月12日にやろうとしていたのですが、公開してから完全に燃え尽きてしまい、回復するまでに2日要しましたね。

 

振り返り

・アプリのコンセプト決定 = 1日

・アプリの工数見積もり = 20日弱

→実際は30日弱(ものすごい工数オーバー)

・工数オーバーに繋がったポイント

①Blenderなめすぎ

→ めちゃめちゃ大変だった。どれが、というとアニメーションが。

②Unity、Blender連携についてのネット情報に惑わされすぎ

→ 色々言われていたが何をやってもうまくいかず、諦めて素直にこうかな?という通りにやったり、Unityのマニュアルを確認したりしたらうまくいった。これがすごく、やり気をそぐ。

→ 60fps = 1秒ということだったが、Blenderの60fpsとUnityの60fpsがビミョーに違う。本当に微々たる、あまり感じないかもしれないけど、私は数字で動きを制御しているはずだからわかるってレベルでずれる。なので、なんか違和感がどうしてもあるんだけど、どうしようもない(微妙にずらせばいいけど)。

イライラしたのでその情報を信じた。

③ざっくりデザインで開始したため、作っている途中で「コレジャナイ」が必発し、デザイン変更がものすごい発生。

→ ボタンの配置を変えたとき、そもそもの画面仕様変更状態になり、やり直しが発生。これがまた、前の状態でもよかったはずなのに気に入らないから結局変えてしまい結構な時間のロースになった。

④飽きる(これが辛い)

納期変更やで

7月4日か、最終7月6日

昨日と今日の午前ですごくいい感じで進みました。

これはもしや、今日中でアプリ公開も可能かな?!ってレベル。と思った私を殴ってやりたい。

うーん丸々3週かけていて、どこで一番時間がかかったのかというとBlenderかな。7月4日ということで1ヶ月かけて公開することになります。

6月の1週目は数字アプリの片付けとか諸々やって、このアプリより乙女ゲームっぽいのをずっと考えていました。なので、早くこのアプリを公開終わらせて、ゲーム作りたかったな・・・。

今作っているのは、オフィスで座ったまま(モデルは立っているけど)できる簡単なストレッチ一覧アプリです。

再生が可能で、自分用にカスタマイズできるように。

Blender舐めすぎたのかしら。ここまでかかるとは。今作ったモーションは24個。数秒の動きなんですが、3つで1日かかりました。

アニメーションに凝ったつもりはない。でもこんなにかかった。はー。ま、毎日すごぶる絶好調な調子でもりもりやったわけでもなかったけど。

BlenderとUnity連携に手こずって2日・・・。うん。ま、そんなもんか。

Unity自体にはそれほど手こずっておらず、良い感じで進んでいてなんとか今日間に合うかもとウキウキしましたが。無理でした。潔く納期延長。

左手がおかしい・・・モーション間違えた。ハハハハハh。

納期延長したからには質をあげましょう。

2 / 6ページ

© Copyright 2017 「It Happens」 All rights reserved.