トップページgamedev
1001コメント378KB

【3Dゲームエンジン】Unity質問スレッド15 [転載禁止]©5ch.net

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2015/01/18(日) 15:07:35.72ID:KSRpGyGF
3Dゲームエンジン「Unity」の質問に優しく答えるスレです。
Windows/Mac用。JavaScript/C#/Booといった汎用言語を使用できるのが特徴です。
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。
プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他

次スレは>>970を踏んだ方が建てること。ダメなら>>980>>990が建てて下さい。

■前スレ
【3Dゲームエンジン】Unity質問スレッド14
http://peace.2ch.net/test/read.cgi/gamedev/1418120993/

■本スレ
【3Dゲームエンジン】Unity総合スレッド24
http://peace.2ch.net/test/read.cgi/gamedev/1415828892/

■Unity 2ch Wiki(まとめ、過去ログ、リンク集)
http://www24.atwiki.jp/unity2ch/

●リンク
・Unity(日本公式サイト)
 http://unity3d.com/japan/
・ユーザーガイド&リファレンス
 http://japan.unity3d.com/developer/document/
・チュートリアル
 http://japan.unity3d.com/developer/document/tutorial/
・スクリプトリファレンス
 http://docs-jp.unity3d.com/Documentation/ScriptReference/
・FAQ
 http://answers.unity3d.com/index.html
・MSDN
 http://msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
注意事項:アセットおじさんは優しく愛でましょう
0628名前は開発中のものです。2015/02/15(日) 20:53:53.16ID:Q2iYFOAp
>>627
プログラムなんて使わずアセットを使った方が簡単ですよ
06296272015/02/15(日) 20:55:45.58ID:5j6iNpyi
>>268
アセットはすでに使っているんですよ。
0630名前は開発中のものです。2015/02/15(日) 20:59:33.15ID:wyzwpkn/
>>627
ttp://docs.unity3d.com/ScriptReference/Collider.OnTriggerEnter.html
そこの例文のDestroyをother.SendMessage()にしてやればいい
抜けた時に送りたいならOnTriggerExitでもいい
06316272015/02/15(日) 21:20:03.64ID:5j6iNpyi
>>630
ありがとうございます!
おかげで解決しました!
Trigger用の文もあるんですね…。知りませんでした。
0632名前は開発中のものです。2015/02/16(月) 00:47:57.34ID:0BQ1Muq+
>>581
ガタガタ揺れる床を作る時に床を直接動かすとモデルの動きがおかしくなるから描画位置だけ動したいなと思ったんだ。
0633名前は開発中のものです。2015/02/16(月) 05:07:01.88ID:2aCCCEIZ
頂点シェーダで動かせばいいんでないの
0634名前は開発中のものです。2015/02/16(月) 05:42:04.80ID:KNDKsl5H
>>632だけじゃないけど、変に抽象化して質問しようとする人って多いよね。

分かり易く伝えようとして空回りしてしまっているのか、
制作中の内容がバレたくない…的な自意識過剰なのか、
なんとなく初心者じゃない風にしたいのか。

何にしろ、質問は具体的に分かりやすく書いて欲しいところ。
0635名前は開発中のものです。2015/02/16(月) 11:23:41.99ID:bDlfzOlg
DestroydCityのTerrainをコピーして、別シーンにペーストすると、ライトマップとのリンクが切れてしまい、Terrainの見た目がコピー前より悪くなってしまいます。

ライトマップとのリンクが切れないように別シーンにコピーする方法はないでしょうか?
0636名前は開発中のものです。2015/02/16(月) 11:37:18.15ID:mc4PULKY
>>617
道路に丸い穴があいていて
通ったら落ちる様にしたいのですが
穴あきの道路オブジェクトを別途作るしかないでしょうか?
0637名前は開発中のものです。2015/02/16(月) 12:35:38.89ID:TwjzIkwe
どういう実装してるか伏せて「○○したいけど××」みたいなぼんやりした質問は
ぼんやりした返事をすればいいんだよな?

632みたいにさらに抽象化してて解消したい目的すら後出しだと返答も581くらいで精一杯だろ
コミュニケーションの勉強から始めて欲しい人が多すぎ
0638名前は開発中のものです。2015/02/16(月) 13:04:31.85ID:UmOo0eRX
くっそ素人な質問なんですが
Blender側でOrthographicにてモデリングしたものを
Unityで使うとパースがかかって形が変わると思うのですが
これが嫌な場合は、そもそもBlender側でPerspectiveにてモデリングする必要があるんですか?
どうやるのが一般的なのか知りたいです
0639名前は開発中のものです。2015/02/16(月) 13:23:29.11ID:IlMq3ak5
・からっぽのオブジェクトをヒエラルキービューに作成
・からっぽのJSファイルをプロジェクトビューに作成
・後者を前者にアタッチ
・Can’t add scriptエラー

このエラーの回避に必要な、JSファイルへ書き足すべき一文を教えてほしい。
何を要求されてるのか全くわからない。

ちなみにfunction NewBehaviourScript() {}じゃダメだった
0640名前は開発中のものです。2015/02/16(月) 13:56:46.12ID:m6a5mlH6
>>638
カメラのProjectionをPerspectiveからOrthgraphicに変えるだけ
0641名前は開発中のものです。2015/02/16(月) 14:06:32.50ID:WSJ1urCp
>>638
例えばサイコロをモデリングするのにOrthographとか関係あるのか?

>>639
多分他のスクリプトがエラー起こしてるんじゃないか?
0642名前は開発中のものです。2015/02/16(月) 14:14:37.41ID:OX20HRWK
スマホ(Android)でGameObjectをタッチしている位置に追従させたいのですが、以下のコードでおこなうと追従がコンマ数秒遅れる感じになってしまいます。
改善する方法はあるでしょうか?

Touch touch = Input.GetTouch(0);
transform.position = Camera.main.ScreenToWorldPoint(new Vector3(touch.position.x, touch.position.y, 10f));
0643名前は開発中のものです。2015/02/16(月) 14:23:59.59ID:UmOo0eRX
>>640
それって背景もOrthgraphicになりません?

>>641
あーそういうことですか!
理解しました
Orthgraphicでモデリングしたキャラクターに見慣れていたので
Perspectiveにすると違和感あったんですよね
Perspectiveになったときにどのように見えるのか意識してモデリングするようにしますわ

なんかUnityの質問とズレて申し訳ない
0644名前は開発中のものです。2015/02/16(月) 14:42:05.01ID:TwjzIkwe
>>642
スクリプト処理と描画のラグは改善できない気がする
見えている画面は1〜2フレーム前に描画されたもの、というレンダリングパス起因の
避けようがない問題だから
タッチパネルからの情報もラグ(バッファリング)されている可能性があるから
ここで発生するものも改善不可

目立たなくする為に高fpsで動作できるようなものにするしかないかもね
0645名前は開発中のものです。2015/02/16(月) 16:28:08.86ID:xdyyTiXX
>>642
Update() とLateUpdate()の両方に
処理書いたらどうかな?
0646名前は開発中のものです。2015/02/16(月) 17:32:30.68ID:OX20HRWK
>>644
そうなんですね。><
数フレームではなく数十フレーム以上遅れる感じですが、パズドラとかツムツムのような操作を軽快におこなわせるにはUnityは不向きなのでしょうか。

>>645
ダメでした。
0647名前は開発中のものです。2015/02/16(月) 17:37:36.28ID:mc4PULKY
ここで聞くのが適切出はないと思うけど、、。
アプリのアイコンてみなさんどうやって作ってますか?
0648名前は開発中のものです。2015/02/16(月) 18:38:38.51ID:TwjzIkwe
>>646
>数フレームではなく数十フレーム以上遅れる感じですが

それはちょっとおかしいと思う
似たような処理(オブジェクトから指の位置に伸ばしたスプライトで線を引く)をやってるけど
そこまで遅れていない
マルチタッチが必要ないなら
Vector2 TouchPos = Input.mousePosition;
みたいな感じでマウス入力に代えてみて(Androidでもタッチを拾える)

うちはこれで拾った値をカメラのワールド座標に変換してレイキャストの起点にし
レイキャスト→コライダ持ちのオブジェクトの接触点までライン、
的な処理をしてるけど大きなラグは感じてない
0649名前は開発中のものです。2015/02/16(月) 19:13:02.82ID:OX20HRWK
>>648

以下をおこなっているだけなのですが、何か使い方がおかしいんでしょうか。
マウスへの追従は早いのですが、タッチへの追従はすごく遅いのです。

2Dのプロジェクト作成
Cubeを配置してScriptを追加
コードは
void Update () {
Vector2 touchPos = Input.mousePosition;
transform.position = Camera.main.ScreenToWorldPoint(new Vector3(touchPos.x, touchPos.y, 10f));
}
0650名前は開発中のものです。2015/02/16(月) 20:20:19.66ID:JnS6vfCV
気合い
0651名前は開発中のものです。2015/02/16(月) 20:26:24.67ID:TwjzIkwe
>>649
うーん・・・端末の問題、とか?
こっちはF-01Fとペリアのz1とちょい型落ちのアクオス携帯では問題なく動いてる
0652名前は開発中のものです。2015/02/16(月) 20:33:26.38ID:xdyyTiXX
>>649
apkあっぷしてみたら?
0653名前は開発中のものです。2015/02/16(月) 21:15:02.43ID:Nat1f4Jb
>>649
色々キャッシュしても体感レベルで変わるか微妙だけど、どうかな

Transform cubeTrans;
Camera mainCam;
Vector3 touchPos;

void Awake () {
cubeTrans = gameObject.transform;
mainCam = Camera.main;
}

void Update () {
touchPos = Input.mousePosition;
touchPos.z = 10f;
cubeTrans.position = mainCam.ScreenToWorldPoint(touchPos);
}
0654名前は開発中のものです。2015/02/16(月) 21:33:04.06ID:bDlfzOlg
class hoge {
static GameObject prefab = Resources.Load("bee") as GameObject;
}

ってかんじでstaticメンバーに、Resources.Loadしたら
実際にLoadされるタイミングは

a) アプリケーションが開始した時に1回のみ
b) 最初にhogeクラスへのアクセスが発生した時に1回のみ

のどっちなんでしょうか?

まさかインスタンス生成毎にLoadされるってことはないと思うんですが。
0655名前は開発中のものです。2015/02/16(月) 21:41:33.35ID:Z0OsqIxj
a
0656名前は開発中のものです。2015/02/16(月) 21:41:56.22ID:Nat1f4Jb
>>654
ログ出してタイミング見ればいいよ。
static初期化タイミング云々は結構深くて、
「bかそれより前」という答え方になると思う。
0657名前は開発中のものです。2015/02/16(月) 21:51:29.10ID:2IYbTJ7l
>>655-656
なるほど、了解です!
有難うございました。
0658名前は開発中のものです。2015/02/16(月) 22:45:34.86ID:fIWuOMSy
GameObject obj に AnimationClip animClip を設定してアニメーションを表示させたいです。
このコードを実行したのですが、アニメーションは表示されませんでした。

一時停止して Animation コンポーネントの値を見ると
Animation が none (Animation Clip) になっています。
Animations には設定した Animation1 が入っていました。

Animation animation = obj.AddComponent("Animation") as Animation;
animation.AddClip(animClip, "Animation1");
animation.Play("Animation1");
animation.wrapMode = WrapMode.Loop;
animation.transform.position = new Vector3(-2, 0, -1);

間違いを指摘していただけると助かります。
0659名前は開発中のものです。2015/02/17(火) 00:43:54.95ID:EKF8Hxv8
>>658
何も間違っていない。
それでそのまま動く。
つまり他の何かが間違っている。
例えばアニメーションのキーに何も、もしくは有効な
アトリビュートのキーがはいっていない。
クリップのタイプが間違っている(プロジェクトビューで
アニメーションクリップを選んでインスペクターをデバッグモードにしたとき
Animation Typeが1になっていない、等々、色々考えられるが
他の全ての情報がなければ原因はわからない。
0660名前は開発中のものです。2015/02/17(火) 01:03:32.63ID:EKF8Hxv8
>>658
少し追記しておくとその文はStart()にそのまま書いてやってみた。
ちょっと気になるのは「animation」の識別子は本来
MonoBehaviourで定義されている。
勿論継承先で再定義すればオーバーライドされるだけだと思うし
実際そのまま動いているが書き方によっては
何かおかしなことになっているかもしれない。
0661名前は開発中のものです。2015/02/17(火) 02:36:05.80ID:2n27txD/
>>658
プログラムなんて無駄なことなんてせずにアセット使いましょうよ
0662名前は開発中のものです。2015/02/17(火) 08:15:28.59ID:MECuMyr0
>>654
コンストラクタに書いたらクラスが生成される度に実行されるよ
最初に一回にしたければ、クラス内のメソッド外に書けばいい
勿論スタティックにしないといけない
0663名前は開発中のものです。2015/02/17(火) 08:16:31.71ID:MECuMyr0
>>662
ごめん、なぜかコンストラクタに見えてた
それであってる
0664名前は開発中のものです。2015/02/17(火) 09:52:17.26ID:KhMWXerU
FBXのAnimation("Take 001"というクリップ名)が再生終了したら敵を削除したいのだけど、
うまく消えてくれません。。。
*********************************
function makeEnemy()
{
if(currentEnemy == null)
{
//敵 インスタンス複製処理
currentEnemy = Instantiate(Prefab_A, Prefab_A.transform.position, Prefab_A.transform.rotation);
}

//// アニメ再生終了したときに消したい)////
if(currentEnemy.animation["Take001"].normalizedTime == 1.0)
{
Destroy(currentEnemy);
currentEnemy = null;//カラに初期化
}
}


function Update ()
{
makeEnemy();
}
***************************************
0665名前は開発中のものです。2015/02/17(火) 10:40:04.69ID:qLqQg8Su
>>651-653

Nexus7(2013)とXperiaZ3で確認しても同様ですので端末の問題ではないと思います。
画面いっぱいを1秒で1周させるくらいの早さで指をくるくる回しても指先にくっついてくる感じですか?
こちらでは指先から完全に離れてしまって、0.3〜0.5秒くらい遅れてついてくる感じになってしまいます。
0666名前は開発中のものです。2015/02/17(火) 11:05:00.23ID:2n27txD/
>>664
アセットをかえば問題解決すると思いますよ
0667名前は開発中のものです。2015/02/17(火) 11:31:37.55ID:G8APQ3uB
>>664
//// アニメ再生終了したときに消したい)////
のif文はどこに置いているんだい?
0668名前は開発中のものです。2015/02/17(火) 12:07:26.71ID:T/HrOegi
>>664
小数の値って==で比較していいん?(´・ω・`)
0669名前は開発中のものです。2015/02/17(火) 12:45:28.87ID:2swKsT4k
>>667
敵を作成した後にです...??

>>668
え!ダメなの!?
0670名前は開発中のものです。2015/02/17(火) 12:51:59.60ID:Aj4qymuu
Unity無料版とネイティブプラグインについて質問なんですが、ネイティブ
プラグインはiOS/AndroidではUnity無料版でも利用できるというのは
理解してるんですが、iOS/Android向けネイティブプラグインの開発も
Unity無料版で可能なのでしょうか?
0671名前は開発中のものです。2015/02/17(火) 13:03:51.21ID:+/iTCq2X
>>669
浮動小数点数値は誤差を含むから積算結果が等値って方が珍しいんじゃないの?
積極的な対応は最小値epsilonを考慮した比較とか使うのが普通

>>670
AndroidはAndroid StudioとかiOSはXCodeで作る
Androidはjarにしてプラグインフォルダに持ち込み、iOSはビルド時にプラグインフォルダに突っ込んだソースファイルやlibがXCodeに渡されてコンパイルされる。
0672名前は開発中のものです。2015/02/17(火) 13:07:44.26ID:Aj4qymuu
>>671
ありがとうございます、Unity Pro版を持ってなくてFree版だけでも、
そういうふうにしてXcodeとかEclipseとかでネイティブプラグイン
作って実機デバッグ実行できる、というので合ってますか?
0673名前は開発中のものです。2015/02/17(火) 13:14:05.38ID:T/HrOegi
>>669
浮動小数点を含む等号演算子
http://docs-jp.unity3d.com/Documentation/ScriptReference/Mathf.Approximately.html
0674名前は開発中のものです。2015/02/17(火) 13:18:33.41ID:Zjjcxn9x
>>664
あ〜、ちょっと見てみたがどうもanimation.normalizedTimeは
再生が終わると0に即戻りするみたいだな。
かといって
if(currentEnemy.animation["Take001"].normalizedTime == 0.0)
ではその場で消えるw
まぁこの場合は
if(!currentEnemy.animation.isPlaying){

}
あたりが妥当なのだろう。
なにかのアニメーションが再生中か、なら
if(!currentEnemy.animation.IsPlaying("Take001"))
とかでもいいだろう。
まぁ再生を0.01から始めるようにセットしておいて0で判定とか
色々メンドクサイやり方も出来るとは思うが。
0675名前は開発中のものです。2015/02/17(火) 14:25:12.99ID:ecDuu/zi
>>672
あなたはとりあえずアセットを買うべきです
0676名前は開発中のものです。2015/02/17(火) 14:55:06.06ID:2swKsT4k
>>674
if(!currentEnemy.animation.IsPlaying("Take001"))
でやってみると、今度は、敵自体が発生しなくなりました...
0677名前は開発中のものです。2015/02/17(火) 15:00:05.58ID:2swKsT4k
676です。うそです。敵発生しました。すいません。でもやはり、消えてくれません...
0678名前は開発中のものです。2015/02/17(火) 15:04:31.22ID:mcIYbzPY
ユニテェイベントでシービューからイベントを送るか、スクリプトで送るか設計思想を整理できないんだが
0679名前は開発中のものです。2015/02/17(火) 15:05:03.82ID:Zjjcxn9x
ちなみに俺のところでは普通に出来た。
まぁC#でやってるんで何か動作上違いがあるのかもしれん。
0680名前は開発中のものです。2015/02/17(火) 15:06:23.78ID:Zjjcxn9x
あと当然だけどアニメーションがループモードだったりしたらどうにもならんな
0681名前は開発中のものです。2015/02/17(火) 15:07:52.43ID:+/iTCq2X
>>675
実機デバッグできんこたぁねぇが、Pluginは単体でUnitTestなどで完了させて置く方が良いよ。
Buildしないとデバッグできないから時間食ってしょうが無い
0682名前は開発中のものです。2015/02/17(火) 15:11:38.32ID:3tzJ35kx
>>641
ありがとう。シーンに使ってないスクリプトのエラーだった
0683名前は開発中のものです。2015/02/17(火) 18:31:25.37ID:v0NP1e2d
C# で MonoBehaviour の中で new GameObject() で作ったプレハブがヒエラルキーに大量に出てしまうのを防ぐにはどうすればいいですか?
Unity のエディタでいうとヒエラルキーのオブジェクトの右クリックのメニュー Create Empty のように入れ子にしたいです。
0684名前は開発中のものです。2015/02/17(火) 18:49:49.92ID:kxgu6e1v
質問よろしいでしょうか。
すごい初歩的な質問なのですが、立方体のオブジェクトをスナップで並べてみて
その上をAddforceで立方体で移動させると敷き詰めた立方体の継ぎ目に引っかかります。
いつもはその上に大きなコリジョンを作成し対応していますが、ランダム生成で
他のオブジェクトのマップを作成しようとした場合、対応が手間になる気がします。
敷き詰めたオブジェクトのPosition、Rotationを調べてみてもおかしな点はないように思えます。
移動させている立方体のY座標は小数点第五位以降で変動しているため、
何かしら問題が起きているようなのですが。。。
この原因と改善策に心当たりがおありの方はいますでしょうか。
長文失礼しました。よろしくお願いします。
0685名前は開発中のものです。2015/02/17(火) 18:51:22.42ID:BzlPeNOo
>>683
ヒエラルキ上でオブジェクトの子にしてるのと同じ状態にしたいなら
C#でも子にすればいいだけだよね

go = new GameObject;
go.transform.SetParent( this.transform,false );
で実行中のGameObjectの子になる
詳しくは
http://docs-jp.unity3d.com/Documentation/ScriptReference/Transform.html
とかで
0686名前は開発中のものです。2015/02/17(火) 19:06:07.64ID:tcro3/XJ
スクリプトいじったら自動的にコンパイルされるけど
たまにコンパイルされるまで時間かかるというか
されているのかされて無いのかわからないので
手動で確実にしたいんですが何か方法ありますでしょうか?
0687名前は開発中のものです。2015/02/17(火) 19:24:55.47ID:v0NP1e2d
>>685
できました!ありがとうございます!
0688名前は開発中のものです。2015/02/17(火) 20:08:29.74ID:2swKsT4k
ひとつのオブジェクトに2つのAudioSourceコンポーネントを設置して、
どちらかの効果音をランダムに再生したいのですが、GetComponents の行で、
"BCE0044: unexpected char: 0x0."
というエラーでひっかかります。
なぜでしょうか??

***************************
var splash_snd01 : AudioSource;
var splash_snd02 : AudioSource;
var sndRandomNum : int;

var audioSource : AudioSource[] = GetComponents(AudioSource);

sndRandomNum = Random.Range(1,2);
if(sndRandomNum == 1)
{
splash_snd01.PlayOneShot(splash_snd01.clip);
}
else if(sndRandomNum == 2)
{
splash_snd02.PlayOneShot(splash_snd02.clip);
}
0689名前は開発中のものです。2015/02/17(火) 20:25:23.18ID:Zjjcxn9x
>>688
var audioSource : AudioSource[] = GetComponents("AudioSource");
ということではなく?

>>686
F8を押すとかそういうことではなく?

>>684
それはもう引っかかるものなんだわ。自分で衝突判定と
衝突した時にどう処理するかを考えて書いてみればわかる。
多分立方体じゃなく板を置いても引っかかるときは引っかかるはず。
基本的にはどうにもならない。
移動側にスフィアコリダー使うとかそのくらいかな
0690名前は開発中のものです。2015/02/17(火) 21:01:58.00ID:kxgu6e1v
>>689
ご回答ありがとうございます。
そうですよね。物理演算な以上仕方ない気はしていました。
スフィアコリダー等で軽減すべきなんですね。
というかこの場合設計に問題ありということで別の対応を考えます。
ありがとうございます!スッキリしました!
0691名前は開発中のものです。2015/02/17(火) 21:07:19.74ID:jYihhmb+
>>688
なんか日本語とか使ってね?(´・ω・`)
0692名前は開発中のものです。2015/02/17(火) 21:28:11.20ID:Zjjcxn9x
>>688
JSはそのオーバーロードもあるんだな、すまん。
ttp://answers.unity3d.com/questions/502670/unexpected-char-0x0.html
あたり見るとコピペとかしてどこかにnullバイト文字がまぎれてるとそうなる、
とかは書いてあるな
0693名前は開発中のものです。2015/02/18(水) 01:40:25.99ID:bPlg12Jm
基本的で恐縮ですが教えてください。
ダメージを受けたらゲージを減らすように作っています。

canvas/HP1(Image)の中にあるスクリプトのImageを無効にしてゲージを減らそうとしています。


Component HP;

void Start()
{
  HP = GameObject.Find ("Canvas/gage/HP1");//.gameObject.GetComponent<Image>();
}

void OnCollisionEnter(Collision col){
  if (col.gameObject.CompareTag ("Teki"))
  {
     HP.enabled = true;
  }

何となくこんなかんじかなとやってみたのですが
どうも上手く行きません。
お願いします。
0694名前は開発中のものです。2015/02/18(水) 02:08:49.99ID:nsPP62eV
>>693
ダメージのゲージ表示は、アセットをかえば簡単に実装できますよ
0695名前は開発中のものです。2015/02/18(水) 02:22:18.85ID:DVC0Q3lM
enabled = trueでは無効にならないのでは?
というか、ゲージを減らす方法として画像を有効/無効で切り替えるのは得策ではないかと

http://qiita.com/T_2/items/fcbcbf4a5cb816330263
適当にググったけど良さそうなのはこれかな?
「Unity ゲージ」でググるだけで色んな方法が見つかるので自分に合ったのをどうぞ
0696名前は開発中のものです。2015/02/18(水) 03:20:47.21ID:niH5Cdll
Androidアプリ作ってみてるんですが
Application.Quit()してもバックグラウンドにいくだけでアプリが終了しないのですが
別の方法で終了させることはできますか
0697名前は開発中のものです。2015/02/18(水) 03:49:16.99ID:6Y085bEt
Unityのコツの1つはアニメーションというアニメーションを
MechanimとiTweenでやってしまうことだと思う。

自前スクリプトでアニメーションさせるなんて、どうしても!って場合以外は悪だよ。
0698名前は開発中のものです。2015/02/18(水) 07:59:45.74ID:R2AlrmjC
App StoreにあるVISUAMUSIOというアプリのようにオブジェクトを動かしても必ず左から順番に音を鳴らしたくて色々試したのですが、どうもうまくいかなかったので質問させてください。
ヒントだけでもいいのでぜひお願いします。
有料アプリなので、デモ動画のURL貼っておきます
https://www.youtube.com/watch?v=cvHXcur-WrM
0699名前は開発中のものです。2015/02/18(水) 09:17:49.49ID:X48MqoAR
オブジェクトを鳴らす用の見えない当たり判定オブジェクトを左から右に流してるとか?
0700名前は開発中のものです。2015/02/18(水) 09:42:17.06ID:R2AlrmjC
まさかそんな単純な仕組みなんですかね?
ちょっと難しく考えすぎていました・・・
トライしてみます
0701名前は開発中のものです。2015/02/18(水) 09:54:26.58ID:nsPP62eV
>>698
アセットをかえば問題に解決すると思いますよ
0702名前は開発中のものです。2015/02/18(水) 10:30:06.14ID:fk+T0nHR
>>698
Arrayに突っ込んでオブジェクトが生成とか移動終了(スクロールでの移動は含まない)したときに毎回X座標でソートすれば良いだけ
0703名前は開発中のものです。2015/02/18(水) 10:52:09.54ID:j27NJCTJ
>>693
Imageコンポーネントをインスペクタから設定
ImageType Filled
FillMethod Horizon(横ゲージ、縦ゲージ、円なども選べる)
FillOrigin Left (どこから増えるか、ゲージタイプで異なる)
FillAmount (0.0~1.0 の範囲でゲージの埋まり具合を指定できる)

エディタで色々いじって機能を確かめてみて
http://docs.unity3d.com/ScriptReference/UI.Image.html

ちなみに
HP.enabled = true;
これはインスペクタの Image の横にあるチェックのオンオフをスクリプトから操作していることになり、
この場合は「有効」になるだけ。
falseをいれて「無効」にすればお手軽にImageだけ非表示にできるから便利
0704名前は開発中のものです。2015/02/18(水) 13:42:16.28ID:ch9amzFx
ネットワーク越しのAnimator同期処理を作っていて、同期先はAnimator.CrossFadeを実行することでAnimationStateを再生しています。

このCrossFadeのパラメータについて質問です。

public void CrossFade(string stateName, float transitionDuration, int layer = -1, float normalizedTime = float.NegativeInfinity);

第2パラメータである、transitionDurationを同期元と同じにしたいのですが、Scriptでの取得方法が分かりません。
TrasitionInfoから取得できるかと思っていたのですが、そんな情報なさそうですし……。

同期元のAnimatorのどの情報を利用すれば、同期先のCrossFadeに設定すべきtransitionDurationを取得できるでしょうか?
0705名前は開発中のものです。2015/02/18(水) 14:20:49.04ID:j27NJCTJ
>>665
1~2回の描画のズレを感じるくらいで付いてくる
作ってるものの処理が重めなでfpsが高くないけど0.1秒も遅れてないと思う

そっちも、そもそものfpsが低いとかない?
滑らかに動いて0.3秒遅れるというのはその時間分だけ入力のバッファリングがいるし
ありえないと思うんだけども

・・・UnityRemoteでした!とかないよね?
0706名前は開発中のものです。2015/02/18(水) 15:21:15.53ID:44fss7cY
目に前髪が被らないシェーダーってアセットにあります?
0707名前は開発中のものです。2015/02/18(水) 17:11:22.69ID:zXQHatwg
>>695
>>703
ありがとうございます。
それらをふまえてもう一度よく考え直してみます。

あと同じくUIにあるsliderでもいけそうですね。
早く毛が生えた程度の素人になります。
0708名前は開発中のものです。2015/02/18(水) 21:12:42.74ID:KaXuDjWj
>>705
そうですか><
60FPS以上になっていますし、apk作ってインストールしても同じです。
Unityが無償版だから遅いのでしょうか・・・
0709名前は開発中のものです。2015/02/18(水) 22:38:14.17ID:OBU4oW22
>>708
アセット買いました?
0710名前は開発中のものです。2015/02/18(水) 23:03:04.90ID:89B377j2
他に考えられるとしたらAndroidManifest.xml辺りかね
とりあえず無償版が原因ってことはないと思うよ
0711名前は開発中のものです。2015/02/19(木) 00:28:24.65ID:+N0iJjD4
Unityで作ったゲームのバージョンを判定するためにProductNameを取得しようと思ったんですけど、リファレンスに取れる手段が書いてなかったです。
作ったゲームのバージョンを判別する方法は何がありますか?
0712名前は開発中のものです。2015/02/19(木) 00:57:22.77ID:0qWUOGsT
下の様なSpriteを組み合わせたキャラクターを複製した際、perspectiveのカメラで見るとZ座標に関係なくOrder in Layer順に
描画されてしまうのですが、個々の描画順はそのままにカメラに近い方を優先して描画するにはどうすればいいでしょうか
http://i.imgur.com/qPVGcfJ.jpg
0713名前は開発中のものです。2015/02/19(木) 02:41:39.93ID:VCvl5whg
>>712
SortingLayer > OrderInLayer > position.z
っていうのがUnityの仕様だから、
z値の小数の位でキャラパーツの前後を設定するとか?

というか自分はたまたまそういうのをやったことがないけど、
2Dゲームだとかなり有りがちな状況だよね。
もっと綺麗な方法があるかも…。
0714名前は開発中のものです。2015/02/19(木) 04:16:48.12ID:YF3fukQr
>>711
アセット買えば簡単に解決すると思いますけど
0715名前は開発中のものです。2015/02/19(木) 08:45:50.74ID:ZnCvTFO2
stagesceneでとったアイテム数によって
ゴールsceneで表示される星の数を変えたいです。

取得アイテム数をstaticにしたとき
stage2のゴールsceneの時の星にも影響してくると思います。
そういうケースで一般的な方法は何かありますか?

おねがいします。
0716名前は開発中のものです。2015/02/19(木) 09:28:50.97ID:zG6bD0B4
>>715
stage2の初期アイテム数じゃなくてゴールの星の数に影響するの?
取得アイテム数はゴールsceneで使ったら初期化じゃだめなの?
0717名前は開発中のものです。2015/02/19(木) 10:28:19.32ID:7w2tG7Mh
>>716
、、、、それだ!
初期化すっかり抜けてました。

すみません、
ありがとうございました。
0718名前は開発中のものです。2015/02/19(木) 11:58:06.80ID:0qWUOGsT
>>713
ありがとうございます。Layer順を全て0にし、左右パーツをz座標に0.1ずらして試してみたのですが
今度は単体がカメラに映る時、角度によって描画順がめちゃくちゃになってしまいました
例えば右斜めから見る時、Spriteは中心からカメラ近い順に描画されるので右パーツ、中央、左パーツに映されてしまうのです

2Dキャラクターと3Dワールドは相性が悪いのでしょうか…
0719名前は開発中のものです。2015/02/19(木) 12:10:48.39ID:S7F+iGeT
これはアセットで多パーツスプライトが実現できるものを探すか作るのがいいと思うわ
まさかその2DスプライトでビルボードじゃなくYROTもするとはなー
0720名前は開発中のものです。2015/02/19(木) 12:59:39.67ID:0qWUOGsT
>>718です。そのまま正面が常にカメラの方に向くようにy軸を回転させることで解決できました
少しいびつに映る気がしますがそこは2Dキャラクターなので大した問題でもなさそうです
毎回この処理をするのも手間がかかりそうなので、そういうAssetも探してみたいと思います
ありがとうございました
0721名前は開発中のものです。2015/02/19(木) 13:25:13.27ID:zM8pukhC
>>720
普通のビルボードゲームの様にビルボードは使えないのでしょうか?
使ったことがないので解らないので聞いてみたかったです
0722名前は開発中のものです。2015/02/19(木) 13:33:42.32ID:mDE0Rv8U
>>706
普通にテクスチャのアルファ値でぼかした感じで透けるようにしたら?
0723名前は開発中のものです。2015/02/19(木) 14:06:08.09ID:DwkEKKJL
続けてunity自体のインターフェースについて教えて下さい

hierarchyやらprojectやらの地色が灰色ですが
YouTubeなどでリファレンスを見ると
黒っぽくなっていますがどこでいじってるのですか?

なんかかっこいいよね!
と思います。
0724名前は開発中のものです。2015/02/19(木) 14:08:32.34ID:pih8i4bo
>>723
Pro版にするとその色に変えられるようになる
0725名前は開発中のものです。2015/02/19(木) 15:30:53.12ID:7w2tG7Mh
>>724
orz...
0726名前は開発中のものです。2015/02/19(木) 17:02:18.56ID:fHWjWr31
>>658です。 >>659, >>660 さん、レスありがとうございます。

AnimationClip の中身が問題である可能性が高いという指摘を受け、
AnimationClip を動的に作成している部分を調べていましたがよくわかりませんでした。
animation という変数名は myAnimation に変更しました。

問題の部分だけを Unity の Asset の形でまとめましたので、出来ましたらご意見をお聞かせください。

次の cs ファイルとフレーム画像で構成されたフォルダをアップロードしましたので、試していただきたいです。

http://www.dotup.org/uploda/www.dotup.org174411.zip.html
Assets の下に import して、空の GameObject を用意して
フォルダの Animation2DGenerator.cs をそのコンポーネントに追加してください。

「1」「2」「3」という画像がアニメーションすれば成功ですが、「3」だけ表示されます。
これは 31, 32 行目でスプライトが読み込めたことを確認するために SpriteRenderer に設定しています。

cs ファイルのみを見たい場合は、 https://ideone.com/NBdhnr をご覧ください。

次のようなメッセージがでていて、AddClip, Play 関数で渡している Anim1 が無効なようなのですがよくわかりません。

The animation state Anim1 could not be played because it couldn't be found!
Please attach an animation clip with the name 'Anim1' or call this function only for existing animations.
UnityEngine.Animation:Play(String)
Animation2DGenerator:Start() (at Assets/Animation2DGenerator/Animation2DGenerator.cs:71)

よろしくお願いします。
0727名前は開発中のものです。2015/02/19(木) 17:37:14.04ID:240Qarwq
canvas/imageのimage(script)の横のぽちぽちをスクリプトからいじれるようにするにはどうすればよいのでしょうか?
おねがいします。
■ このスレッドは過去ログ倉庫に格納されています