07 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.» 09

ハルシオンシステムの気ままBlog

株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

 

【ハルシオンブログ】子供のオブジェクトを一気にフェードさせたいときとかね。 

こんにちは。
大坂です。

もう八月も終わりですね。
朝起きたら寒くて何事かと思いましたが、秋が近づいてるんですかね?

さてタイトルの通りですが、
ImageとTextのオブジェクトを分けて表示しているものなんかを
フェード消したいときなんかにそれぞれフェードさせるのは面倒ですよね。

そんな時に使うのがCanvasGroupですね。
こいつ色々便利ですよね。

設定はこんな感じね。


画面は適当ですがこうですね。



で、適当にDOTweenでFadeさせてあげます。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;

public class BlogTest : MonoBehaviour {
public CanvasGroup group;
  void Start () {
// キャンバスグループをフェードさせる
group.DOFade(0, 1f);
}
}

一応結果。


これだけでImageもTextもフェードされますね!
はい便利ですね!

では今週も短いですけど終わりですノシ
スポンサーサイト

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】Anima2DでSpringBoneを入れてみたけど、変なんなるんですけどー?ってことで、少し手を加えてみたよ 

はいこんにちは。ハルシオンの金髪こと坂内っす。

先日Oculusを買ったのですが、どのゲームをやっても酔いますね。
物によっては酔いずらいのもありますが・・・長時間できません。
なんか面白いゲームありませんか?

さて、Unityの話題ですが、Anima2Dというキャラにボーンを入れて動かすAssetがあります。
これ自体まだまだ全然触ったばかりでよくわかってないんですが・・・・

その中でもSpringBoneというものがあります。
こちらは、髪の毛とかにBoneをいれて、頭の動きに連動してふぁっさふぁっさ動かすような感じに使われるようです。

Anima2D自体が難しそうなんですよね・・・・

とりあえず適当にキャラにBoneいれて、髪の毛の一部にもBoneいれてみて・・・・


さてここから髪の毛の一部にSpringBoneを入れて動かしてみませう。

①まずはキャラ本体(一番親?)にSpringManagerを付けます。
②SpringBoneを対象のBoneにつけます。


③SpringManagerの設定を以下にします。
 DynamicRatio:1
 StiffnessForce:0.001
 StiffnessCurve:1flat
 DragForce:0.4
 DragCurve:1flat
 SpringBones:対象のBone
 (動画の受け売りの値です)



さて、これで実行。


なんやこれーーー!!!
一応動いてるけど・・・・ふにゃーん ってなってますね!

はい、これも動画に書いてる値ですが、各種SpringBoneのSpringForceを変更するといいっぽいっす。

④髪の毛のBoneについてるSpringBoneの値を変更。
 SpringForce x:0.001 y:-0.01 z:0




えぇ~?それっぽい感じにはなってきたけど・・・・・あとは微調整ですかね・・・・

ちょっと微調整。


微調整したのはそれぞれのSpringBoneのSpringForceをちょいちょいと・・・・

こんな感じでなんかできそうっすかね。

あ、ちなみに今作ってるゲームのキャラ(ラフ)です。

お楽しみに!

ってことで、本日はSpringBoneについて適当に書いてみました。

それではあでゅ~ノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】端末に依存しない日付がほしかった。※Webサーバ使用 

こんにちは。
大坂です。

今週になってまたすごく暑くなりましたね。
夏!って感じです。
夏っぽいところにはいきませんが…いや、そもそもあんまり家を出ませんが(ぇ

さて、今週もちょっとしたネタです。
アプリを作っていて日付とか時間を扱いたいけど「System.DateTime.Today」とかでとると端末依存になりますよね。
まぁ大部分はこういったので問題ないんですけど、端末に依存したくないときなんかもあります…かね…?

実装するのにサーバを色々設定するのは面倒なので、phpでWebサーバの日付とって返してみたってだけなんですけどね!

簡単ですが、phpです。
<?php
// 日付取得
$date = date( "Ymd" );
// 日付を返す
echo $date;
?>
書かなくてもいいレベルですね!orz

Unityでの受け取り側。
    private string url = "{phpを置いたサーバのURL}/test.php";

void Start() {
StartCoroutine(GetDateTest());
}

IEnumerator GetDateTest() {
using(WWW www = new WWW(url)) {
yield return www;
if(!string.IsNullOrEmpty(www.error)) {
Debug.Log("error:" + www.error);
yield break;
}
Debug.Log("----------日付取得テスト-------------");
Debug.Log(www.text);
}
}

こちらも特に難しいところはないですね。
アクセスして受け取ってるだけです。

まぁ一応結果。
今日の日付が「2017/8/24」でPCの日付を「2017/8/25」にして「System.DateTime.Today」取ったのもログに出してます。

ちゃんとphpのほうは今日の日付で取れてますね(当たり前。

こんな感じでやればあんまり手間もかけないで端末に依存しない日付を取得できるかなと思った次第です。

では、今週もこれにてノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】UnityのParticleを一定時間で消す方法・・・?一定時間でオブジェクトを消すクラス。 

はい、こんにちは。坂内っす。

最近パーティクルを触っていて、どんどんパーティクルが残るってことに気が付いたんすよ。(消さなきゃ消えないのは当たり前)
何をいまさらって感じなんですが、ネタがないので、そこらへんについて書いていきたいと思います。

Particleに昔AutoDestroy的なチェックボックスがあったような気もしないでもない今日この頃ですが、以下のコードをパーティクルにつければ完璧っす。

【AutoDestroy.cs】
using UnityEngine;
using System.Collections;


public class AutoDestroy : MonoBehaviour {
public float destroyTime;

void Start () {
if ( destroyTime != 0){
Destroy (gameObject, destroyTime);
}
}
}


クラス名とかは適当で。

InscpectorでdestroyTimeに入れた時間後に消える感じっすね。

これ別にParticle専用でもなんでもないので、他でも使えるクラスっすね。

という、簡単なクラスについてでした‥‥

あでゅ~ノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】SpriteにPolygonColider2Dつけたんだけど、絵を変えてもColiderがかわらねええええ!!!って時にはこうしました。 

こんにちは!坂内っす。

UnityでPolygonColider2Dを付けたSpriteの絵を変えたときに、Coliderが元のままじゃねえかあああ!!
ってことありませんか?


「変更したSpriteの形にCoiliderを合わせたい」

そんな時にはこうすればいいっすよ。

まずは形を変えるSpriteRendererとボタンを用意。

変更する絵としては以下を用意


形変更ボタンを押したときのコードはこちら。
【ChangeShape】
using UnityEngine;

public class ChangeShape : MonoBehaviour {

public SpriteRenderer graph;
public Sprite[] shape;
int shapeNo = 0;

public void ChangeShapeGraph() {
shapeNo++;
shapeNo = (int)Mathf.Repeat(shapeNo,3);
graph.sprite = shape[shapeNo];
}
}


これを実行するとこうなります。


緑の枠がColiderですね。

始めの四角のポリゴンコライダーのまま他の形に変わっても変化しません。

そこで、コードを以下のように変更してみました。

using UnityEngine;

public class ChangeShape : MonoBehaviour {

public SpriteRenderer graph;
public Sprite[] shape;
int shapeNo = 0;

public void ChangeShapeGraph() {
shapeNo++;
shapeNo = (int)Mathf.Repeat(shapeNo,3);
graph.sprite = shape[shapeNo];
Destroy(graph.gameObject.GetComponent());
graph.gameObject.AddComponent();
}
}


PolygonColider2Dを一度消して、再度つけなおすことで、変更されたSpriteに合わせたPolygonColider2Dが作成されます。



ということで、AddComponentとDestroyでうまくやっちゃってください!

それではあでゅ~ノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】Unityでビルドしたアプリのログとかが確認ができるようになったんすね。 

こんにちは。
大坂です。

今日は昨日に比べてだいぶ涼しいですね。
昨日は暑くて溶けそうでした…。

あ、夏ということでポケガ2で水着と浴衣のセール始めました。


是非是非、プレイしてみてくださいね。
http://halcyon-system.com/pokega/


さてさて、今週もネタを絞り出したいのですが…。
そういえば、Unity2017でConsoleにこんなやつが追加になってますね。


プラットフォームをAndroidにし、Development Buildにチェックを入れてあげて、BulidAndRunでAndroidにアプリをインストール


接続してるやつが見えるように…!


ポチポチボタンを押すとログを出すだけのやつですが、ちゃんとログが吐き出されます。


まぁAndroidならmonitorで見れるので…という話もありますが…まぁ…こんなことができるようになったということで…。

ということで今週もこれだけなんですよ!
ではまたノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】RPGも作るけど、ポケガも何とかしないとね・・・ポケガ放置してほんとすいませんorz 

おこんにちは。坂内っす。

次のアプリでTextMeshProを使おうとしたら、エラーがでるんですよね。
今使ってるUnityは「Unity 2017.1.0f3」なんですけどね。

で、次のバージョン?Unity2017.1.0b1とかで直るみたいなこと書いてたんですが、TextMeshPro自体使うのか怪しくなってきました・・・

なんかUI周りでいいアセットとかないですかねー
今まで全然アセットとか使ってこなかったので、いいアセット知ってる方いたら教えてちょ!

なんかこのアセット使うとこんな感じのことができるんすよ。的な感じでいいんですが・・・

あ、ネタがないんで、ポケットガールの話を1つ。

[宣伝]
ポケットガール
女の子を育てるシミュレーションゲーム
http://halcyon-system.com/pokega/

最近こんなメールをユーザ様から頂きました。

[一部抜粋]
「最近ポケットガールの大幅なアップデートが無くて寂しいのですが。
・・・・・・

私は2も好きですけど、1の方が好きなんです」


うわああああああああああああああああ ありがとうございますううううううううううううううう!!!!

まだまだポケットガール1も人気でうれしいっす!
ってか、2より1のが人気あるんすよね・・・・


ただ、1には引き継ぎとかないので、不便なんですよね。
ほんと思います。

これは是非対応したいのです!

ちょっとポケガ1が古いUnityで作られてて、新しいUnityにすると一部の何かが動かなくて触れないのも事実。

これは、ちょっと時期を見てポケガ1、2共にアップデートをしたいと思います。

1にはできれば引き継ぎ機能もいれたいっすね。
NCMBとかでやってみようかな。

ちょっと、1の方も色々手いれて復活させたいです!

ポケットガールファン(いる?)の方、もうしばしお待ちください!

今作ってるRPGも進めないといけないし、色々と・・・・もう頑張るんば!

今後もハルシオンをよろしくお願いしますううううう!

お金ないいいいいい Entyでもやろうかな?

Category: Androidアプリ紹介

tb 0 : cm 0   

Listの値の取り出し方ね…。おじさん新しい書き方とかついていけてません…orz 

こんにちは。
大坂です。

なんかまた、猛烈な腹痛に襲われていますが、よくあることと思って気にしないでおきます(ぇ

皆さんListに入れた値の取り出しとかどうやってますかね。
どうにも今までやってた方法でできると他を調べないタイプなのでforで回して一致してたの取ってたんですけど、
そんなこと書かなくても取れるんですね…。

とりあえずコード。
    class Item {
public int item_no;
public string item_name;
}

List list = new List();

void Start () {
// 適当に値を入れる
for(int i = 0; i < 10; i++) {
Item item = new Item();
item.item_no = i;
item.item_name = "item_" + i;
list.Add(item);
}

int ran = Random.Range(0, list.Count);

Item resultItem_1;
// forで取得(今まで)
for(int i = 0; i < list.Count; i++) {
if(ran == list[i].item_no) {
resultItem_1 = list[i];
Debug.Log(resultItem_1.item_name);
break;
}
}

Item resultItem_2;
// Findを使用して取得
resultItem_2 = list.Find(a => a.item_no == ran);
Debug.Log(resultItem_2.item_name);

}

ちゃんと同じ結果が取れますね(当たり前
ラムダ式的な書き方がどうにも苦手なのであんまり調べたり使ったりしてませんでしたが、
コード量も減りますしこっちの方がいいですかね。

上のコードでitem_noが重複してるときは先に入れた方がとれました。
まぁ一意ので探すとは思いますが一応ってことで。

ということでこんな書き方もあるよってことでした。

ではまたノシ

Category: 開発日記(Unity)

tb 0 : cm 0