トップページgamedev
984コメント389KB

【3Dゲームエンジン】Unity質問スレッド1

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001名前は開発中のものです。2012/04/20(金) 13:11:07.27ID:wu5IoHob
3Dゲームエンジン「Unity」の質問に優しく答えるスレです。

Windows/Mac用。JavaScript/C#/Booといった汎用言語を使用できるのが特徴です。
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。
プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3他

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

■本スレ
【3Dゲームエンジン】Unity 13
http://toro.2ch.net/test/read.cgi/gamedev/1334399781/

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

●リンク
・Unity(日本公式サイト)
 http://unity3d.com/japan/

・ユーザーガイド&リファレンス
 http://unity3d.com/support/documentation/
 (日本語訳)
 http://ws.cis.sojo-u.ac.jp/~izumi/Unity_Documentation_jp/Documentation/Manual/
・チュートリアル
 http://unity3d.com/support/resources/tutorials/
・FAQ
 http://answers.unity3d.com/index.html
・Unityのスクリプト公式
http://unity3d.com/support/documentation/ScriptReference/index.html

・MSDN
http://msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
0822名前は開発中のものです。2012/07/09(月) 19:13:33.41ID:fuUn0pT7
>>821
一週間前のログぐらい読もうぜ
>>742
>>744
0823名前は開発中のものです。2012/07/09(月) 19:21:13.49ID:P6rE+4dV
>>822 すみません読んでませんでした…ありがとうございます
0824名前は開発中のものです。2012/07/09(月) 19:26:50.29ID:huTSeDBw
>>820
私自身はjavaのほうを使っているので、未熟ですいません。。

キャッシュの問題、私もてこずりました。勘ですが
Caching.CleanCache ();
asset.Unload
を使って、常に最新のものを読むようにしています。
同じシーン内で複数読み返す場合があれば、
キャッシュしてあったほうが便利です。

ふーむ、そこから先はやったことはないですが
調べてみると、ソースが見つからない関連のエラーっぽいですね
txt.bytesが取れているのであれば、
System.Reflection.Assembly.Loadが何かしらで動いていないのでしょうか。
var assemblyには何か入っていますか?
0825名前は開発中のものです。2012/07/09(月) 20:20:34.69ID:gWnQDcQj
UnityPro版を持ってるのですが,
terrainに対する動的な影ってどうすれば出来ますか?
directional lightとBoxをおいてみてもterrainには全く影ができません
0826名前は開発中のものです。2012/07/09(月) 20:29:52.81ID:gWnQDcQj
ごめんちゃい。
解決しますた
0827名前は開発中のものです。2012/07/09(月) 21:54:35.58ID:bkCkO8SS
割れだな。時代の先駆者。
0828名前は開発中のものです。2012/07/09(月) 22:44:38.09ID:bmqLtDp9
>>817
回答ありがとうございます。

ゲームを終了後といいましたが、少し違っていて、プログラムの流れとしては

1;ゲームプレイ
2;プレイ中に時間T=tのプレイ情報を保存
3;ある程度ゲームを進めたら一時停止
4;保存した時間tのプレイ情報を描画

という流れを作りたいのです。

なのでstart,Awakeメゾットでデータをロードというのは私のイメージとは少し違います。

それぞれデータを保存しないといけないということですが、とりあえずGameObject自体を保存して描画できないか試してみます。

ありがとうございました。

0829名前は開発中のものです。2012/07/09(月) 23:41:12.33ID:ztXtk0gh
unity(3.5)でゲーム制作が終わりiPhoneでリリースしてみようと思ったのですが、
いざiOSのライセンス購入ってときにアプデがきてどうすればいいのでしょうか。
iOSのライセンスも4.xでプレオーダーすれば、現状の3.5でも使用できるのでしょうか。
0830名前は開発中のものです。2012/07/09(月) 23:51:17.15ID:JvAmBE5x
4.xの新機能使わないなら、3.xのまま使えばいいだけだよ
質問自体は公式に聞いた方がいいと思われ
0831名前は開発中のものです。2012/07/09(月) 23:54:40.43ID:ztXtk0gh
>>830
ありがとうございます。
3.xのライセンスを持ってないんですよー、だからいっそ4.xを購入したい次第で。おまけにもう3.xは買えない状態でして。
公式りょうかいです。
0832名前は開発中のものです。2012/07/10(火) 00:35:42.49ID:CDDZ5bkE
iOS向けの開発でbasic版を使っているのですが、
iOSライクなタブやテーブルといったUIはUnityで実装出来ないでしょうか。
0833名前は開発中のものです。2012/07/10(火) 00:43:04.23ID:zp45tXDp
>>824
エラーで止まっている箇所はまさにSystem.Reflection.Assembly.Loadの部分です。
この行でvar assemblyの変数定義とLoadをしているので、
assemblyの中身が入れられない状態です。

>>828
要は「セーブする関数とロードする関数を自前で用意して呼び出し」
というだけのことなので、場所はどうあれ、

保存したい時にセーブ関数を呼び出し→ゲームを進める→
→一時停止→読み込みたい時にロード関数を呼び出し→ゲームを進める

で問題無いかと思います。
(保存する時にも一時停止させた方が無難かと思いますが)

セーブの手法は私も悩んでいるところです。
もし宜しければ、上手い方法があったら共有して頂けると幸いです。
0834名前は開発中のものです。2012/07/10(火) 00:53:08.84ID:w1e4fW6i
>>833

ゲームのセーブ自体はPlayerPrefsというクラス?を使えばできるそうですが、使い方がいまいちわからず、ロード方法もよくわかりません。
0835名前は開発中のものです。2012/07/10(火) 00:57:01.66ID:5Jl0sYOh
>>833
http://unifycommunity.com/wiki/index.php?title=Save_and_Load_from_XML
answersでみかけたが、俺はやったことないんだ 
RPG風ダンジョンの出入り、戦闘とかでの質問で参照されてたけど、これでいいのかな?
0836名前は開発中のものです。2012/07/10(火) 01:00:07.41ID:XUaoPQe4
クラスをまるごと保存したいならBinaryFormatter
ぶっちゃけ、自分で作ったものでもないゲームにセーブ機能付けるなんてオススメしないけどな
自分で作ったゲームと違って何を保存すればいいか分かりづらい
0837名前は開発中のものです。2012/07/10(火) 01:04:13.18ID:zp45tXDp
>>832
Unity本体がPro版ならこちらが使えるのではないでしょうか?
ttp://radiumsoftware.tumblr.com/post/4306788939

あとは見た目だけになりますが、
それっぽい画像やアニメーションを作ってもよいかと。
0838名前は開発中のものです。2012/07/10(火) 01:13:52.69ID:zp45tXDp
>>843
PlayerPrefsの簡単な説明ならこちら↓
ttp://d.hatena.ne.jp/nakamura001/20110712/1310441315
あとは公式リファレンス等をご参照下さい。


>>835>>836
私の場合、元々Hashtableで変数を保持しておいて、
BinaryFormatterでファイルに保存する方法を考えていました。
XMLでやるにはKeyに統一性が無く、量が多いので。

……まだ肝心のセーブ部分を検証していないので、
Unityで出来るか分からないのですが。
いざとなったらforで1つずつ回して一度テキストファイルにしてから
変換・保存しようと思っています……
0839名前は開発中のものです。2012/07/10(火) 04:01:14.93ID:P+0AV/M7
質問なのですが、学校でPhotoshopとIllustratorを習ったのですが、
これらを使って、Unityに対応したキャラクター素材(カプセル→アニメーションのあるキャラクター)
を作りたいのですが、
何か参考となるホームページや教科書はありますか。
自分で調べてみたのですが、見つからなかったので、
こちらに来ました。
0840名前は開発中のものです。2012/07/10(火) 06:45:12.35ID:l1WJD6/w
>>839
2Dならただパラパラ漫画のように複数画像を用意するだけだよ。
PNGやTGAでアルファ付きで保存すればいい。
0841名前は開発中のものです。2012/07/10(火) 11:09:40.98ID:LCi5Gipz
>>840
ツクールの素材屋さんのように、複数の絵を用意すればよろしいのですか。
分かりました。ありがとうございます。
0842名前は開発中のものです。2012/07/10(火) 12:17:38.21ID:bz55/fMj
>>833
考えられる可能性は、txt.bytesがそもそもスクリプトに適していない
もしくはSystem.Reflection.Assembly.Loadが動いてないかなんですが、、

前者であれば、テキストファイルのエンコードや拡張子の問題
後者であれば……すごく適当な事を言いますが、
この関数を調べたら、.NET Framework 2.0の記事が出てきたんで
Unityがその環境に依存している(かも)? であれば.NET Framework 2.0がおかしい(かも)…?
なんて考えたりもしましたが、何分素人の妄想ですので、非常に不確かなものです。

特に進展が無ければ申し訳ないですが私の知識ではお手上げですね……
他に分かる方いらっしゃいましたらご助力お願いいたします。
0843名前は開発中のものです。2012/07/10(火) 12:44:01.61ID:hgsijwqF
>>839

3Dのキャラクタを作りたいんじゃないの?
それだったら、Blenderって3Dソフトを使うのが良いよ。

Photoshopもillustratorもテクスチャー作りには必要になるから、Blenderを合わせて使うと良いよ
0844名前は開発中のものです。2012/07/10(火) 20:27:29.98ID:OEUSodAR
3Dは学生なら無料で使える3dsmaxとかMayaを使おう
一番いいのはSoftimage とステマしとく
0845名前は開発中のものです。2012/07/11(水) 22:23:28.86ID:Xf9JxeYf
質問があります。

using UnityEngine;
using System.Collections;

public class play_temp : MonoBehaviour {

public static Transform obj;
public static int check = 0;
// Use this for initialization
void Start () {
obj = this.transform;
}

// Update is called once per frame
void Update () {
if(Time.time > 4 && check == 0){
obj = this.gameObject.transform;
check=1;
}
Debug.Log("this = " + this.gameObject.transform.position);
Debug.Log("obj = " + obj.position);
}
}

objのtransformを一時的に保存したいのですが、デバッグログで確認したところ、objがthisと同じように値が変化してしまい、一時的な保存ができません。
どうにかして保存できないでしょうか?
0846名前は開発中のものです。2012/07/11(水) 22:55:48.46ID:PpeJvVM4
Vector3型の変数を作って格納しておいてはどうか。
0847名前は開発中のものです。2012/07/11(水) 23:16:49.36ID:psQsg3VE
>>845
実行中にインスペクタのIsSaveとIsLoadを切り替えたら動くようにした

using UnityEngine;
using System.Collections;

public class play_temp : MonoBehaviour {
public Vector3 tempPos;
public bool isSave = false;
public bool isLoad = false;
void Start () {
isSave = true;
}
void Update () {
if (isSave) {
tempPos = transform.position;
Debug.Log("Save Pos:"+tempPos.ToString());
isSave = false;
}
if (isLoad) {
transform.position = tempPos;
Debug.Log("Load Pos:"+tempPos.ToString());
isLoad = false;
}
}
}
0848名前は開発中のものです。2012/07/12(木) 05:46:22.63ID:Okbrb1eH
>>845
C#では、クラス型はすべて参照扱いってルールがある。
objに渡されたのは参照(またはポインター)なので、
オリジナルと共に値も変化する。

一方、struct型はすべて値扱いというルールもある。
Vector3はstruct型なので、objをVector3 にして
transform.positionを渡してやれば値がコピー保存できる。

これ常に意識してないとハマるよ。

0849名前は開発中のものです。2012/07/12(木) 08:36:09.63ID:BIk3XhGn
返答ありがとうございます。

参照扱いは初めて知りました。

保存したいものとしてはクラス型の中身すべてなんですが、なんとか値として保存できないでしょうか?
やはり、クラス型の中にあるものを一つ一つ保存する必要があるんでしょうか?
0850名前は開発中のものです。2012/07/12(木) 10:08:06.25ID:B2YfOuL7
transeform.parent = null;で親子関係切っといて
DontDestroyOnLoad(gameObject);でシーン切り替えても残しておくようにして
SetActiveRecursively(false);でactiveを切っとく
これじゃダメかい?
0851名前は開発中のものです。2012/07/12(木) 10:17:00.43ID:7GMVMlXp
質問です。
自分はデザイナーでチェックとためにUNITYを使用し始めました。
CGではsoftimage使っていて、オブジェクトにスプライトマテリアルを適用しているんですが
UNITYで同等の”ライティングの影響を受けず、アルファチャンネルは透明度として使用”みたいな
マテリアルはありませんか?
0852名前は開発中のものです。2012/07/12(木) 10:24:30.92ID:wC+CLf7n
>>851
それぐらいは少し勉強すればすぐ書けるようになりますよ。アセットストアにも無料であったと思いますし。
0853名前は開発中のものです。2012/07/12(木) 10:29:08.33ID:7GMVMlXp
>>852
わかりました
アセットストアもう一度調べてみます
0854名前は開発中のものです。2012/07/12(木) 11:27:23.29ID:JJlA4oQt
CGの事はあまりわからないんだけど、
>>851の言ってることと、マテリアルのシェーダを
Transparent/Cutout/Soft Edge Unlit
にするのって結構違うの?
これもライト関係なしでアルファ適用されるけど。

0855名前は開発中のものです。2012/07/12(木) 11:32:17.56ID:JJlA4oQt
ああ、ひょっとして透明にするマスクみたいなもんか。
それならぜんぜん見当違いのこと言ったわ。
0856名前は開発中のものです。2012/07/12(木) 11:45:16.79ID:pvTqawTM
>>855
そうです。
softimage上でのマテリアルノードの名称とUnity上での名前がまだ上手く一致しないので
上手に言えないのですが
透明にするマスクでニュアンスはあってると思います。
透明以外の所がライティングの影響を受けないでテクスチャがそのまま反映されるようなマテリアルを
イメージしています。
0857名前は開発中のものです。2012/07/12(木) 12:18:22.80ID:8e/bq/OB
ttp://www1.axfc.net/uploader/File/so/80974.rar
ライティングしないだけならすぐできるけどこれでいいのかな?
0858名前は開発中のものです。2012/07/12(木) 15:32:42.77ID:S1Wb7aIK
>>851
Unlit/Transparent
これは両面描画しないので両面描画したければ
Particles/Alpha Blended
これらはシェーダでマテリアルは用意されてないからマテリアルは自分で作る
作ったマテリアルにシェーダを設定して
MeshRenderer等のMaterialsに作ったマテリアルを設定する
0859名前は開発中のものです。2012/07/12(木) 23:49:14.88ID:nFHvYLC9
>>857
>>858
ありがとうございます。
Unit/Transparent Cutoutを使用したら思った通りに抜けました。
0860名前は開発中のものです。2012/07/13(金) 09:58:40.06ID:umPU/gfI
>>850

やってみましたが、参照渡しされてるせいで、親子関係を切った途端、オリジナルのほうの親子関係もきれて動かなくなりましたww

あきらめて、一つ一つ保存してみます。
0861名前は開発中のものです。2012/07/13(金) 10:16:35.91ID:06qK1JQ4
>>860
少し試してみましたがTransformには中身(メンバ変数orフィールド)が無いようです
Transformにあるのはプロパティ等で中身と言っているものは別の場所に存在し、Transformはそれを取得・設定する手段のみ提供しているようです
全ての中身ではなくプロパティで取得できるものであれば不可能ではありませんが
保存しなくてもよいものが多そう、positionとlocalPositionなどの同じものに別扱いでアクセスするプロパティがある
等の理由によりあまりおすすめできません

以下はメンバの確認に使用したソースです

using UnityEngine;
using System.Reflection;

public class Test : MonoBehaviour {
void Start () {
System.Type type = typeof(Transform);
BindingFlags flags = BindingFlags.Instance|BindingFlags.Static|BindingFlags.Public|BindingFlags.NonPublic;
FieldInfo[] infos = type.GetFields(flags);// 中身
//MemberInfo[] infos = type.GetMembers(flags);
//PropertyInfo[] infos = type.GetProperties(flags);
if (infos.Length <= 0) {
Debug.Log("infos.Length <= 0");
}
for (int i = 0; i < infos.Length; ++i) {
Debug.Log(infos[i].ToString());
}
}
}
0862名前は開発中のものです。2012/07/13(金) 10:34:18.80ID:dGKiRlkq
>>861
質問主じゃないけど、
参照とかポインタとかよく分かってないので確認させて下さい。

変数にクラス(transformとか)を入れる→
 コンポーネントへの“リンク(ショートカット)”を繋いでるだけ
変数にプロパティ(transform.positionとか)を入れる→
 その時点でのプロパティのデータ(数値)を保存する

ということでいいんでしょうか?
0863名前は開発中のものです。2012/07/13(金) 11:26:04.79ID:tBFmzkh+
>>862
ポインタや参照が分かってない人への説明は難しいな〜。
でもファイルのショートカットはコンセプトは近いかもしんない。

「class型の変数はすべてショートカット」
「struct型の変数はすべて実ファイル」
って理解でいいかも。

class変数を「=」で他の変数に渡しても、ショートカットが
コピーされてるだけ。
ファイル自体は一つしか存在しないから、これの中身を変えると
すべてのショートカットが影響受ける。

struct変数(positionなど)を渡すと、新たな場所にファイルの
コピーが作られる。コピーだからいくらいじっても元ファイルには影響なし。

って感じ?
関数のパラメータとして変数を渡す時も同じ事が起きてる。
0864名前は開発中のものです。2012/07/13(金) 11:33:54.18ID:bbHowFwt
>>861
System.Reflectionは使ったことないからちょっとわからないんだけど
UnityでGameObjectについてるTestクラスへのアクセス方法はGetCompornentでやるよ
GameObjectは残しておいて管理クラスの方で参照リストを作っておいて管理するってことで>>850と言っていたんだが・・・
transform.parent = nullは単純に更新処理で親の影響というかコールが呼ばれないようにしただけだからやらないくていいよ
activeじゃなくてコンポーネントのON/OFF(enabled)のほうが合ってそうだね
見当違いのこと言ってたらごめん

>>862
だいたいその認識あってる
transformはクラスなので参照
transform.positionはVector3で構造体なので値渡し(複製)
クラスは参照、構造体か変数は値渡し
08658612012/07/13(金) 12:08:03.90ID:06qK1JQ4
>>864
860でオリジナルの方って書かれてるから一時的に保存ってのは複製したいのだと予想
それだと850の処理では複製してないから要求が満たせてない、activeとかenabledは無関係
素直にtransform.position、transform.rotation、transform.lossyScale個別に保存すればいい
TestはTransformがメンバ変数としてposition等を持ってない事を確認するだけだから保存に関しては元々無関係
リフレクションはメンバ変数が列挙できるから一つ一つ保存しなくても一括保存できるんじゃないかと試しただけ
GameObjectごと完全に複製、再現するならたぶんこんな感じになる
ttp://ideone.com/Cv79P
まあ詳細な要求が書かれてないから860の実際に望んでるものはどうあっても書けないけど
0866名前は開発中のものです。2012/07/13(金) 18:52:50.31ID:AHq8QqPo
質問です。
C#で開発しております。
ゲーム中でオブジェクトが破壊される(衝突判定でDestroy)ということはよくあることだと思うのですが、破壊されたオブジェクトはスクリプト中ではどのような扱いになるのでしょうか?

今自分が作った簡単なゲームでは、playerというオブジェクトがあって、それを書いてあるスクリプト中ではキーボードの左右でplayerの位置を動かせます。しかし、playerがenemyによって破壊された場合、キー入力を続けようとするとコンソールにエラーが出ます。
つまりプレイヤーのオブジェクト自体が無くなったという判定がされたと考えて良いと思うのですが、playerを作ったスクリプト中ではplayerがNULLにはなっていないようです。(確認しました。)
0867名前は開発中のものです。2012/07/13(金) 18:58:00.42ID:MPaNxokW
エラーの内容は?
0868名前は開発中のものです。2012/07/13(金) 19:31:48.81ID:AHq8QqPo
すいませんNULLではなくnullとしたらいけました
0869名前は開発中のものです。2012/07/13(金) 19:38:21.27ID:zTctgu5b
ぬるぬる
0870名前は開発中のものです。2012/07/14(土) 00:51:49.81ID:MWvTaVGs
NULL null じゃなくて、数値だもんな
0871名前は開発中のものです。2012/07/14(土) 05:07:41.20ID:XgQJvDjr
androidで、
ゲーム画面が非アクティブになったときってC#で検知できますか?

javaでイベントを引っ張ってこないとダメなんだろうか・・
0872名前は開発中のものです。2012/07/14(土) 07:20:18.43ID:zXh4wpSC
MonoBehaviourクラスのOnDisable、OnApplicationFocus、OnApplicationPauseあたりのイベントが発生するんでそれで検知してゲームをポーズしたりできるよ。
ただUnityRemoteだとイベントが呼ばれないんで実機で動かさないとテストできないから注意
0873名前は開発中のものです。2012/07/14(土) 14:32:02.54ID:BoqGB526
UNITYで使用出来るクラス(メソッド)の一覧を知りたいのですが、
どこかにまとまっていないでしょうか。

,NET Frameworkは使えますよね?
0874名前は開発中のものです。2012/07/14(土) 15:51:23.70ID:l/ISxCUy
ぱっと見れるとこは知らんが
以前リフレクション使って一覧出した事はあるからそうすれば見れる
0875名前は開発中のものです。2012/07/14(土) 16:00:21.75ID:QGFfgc2P
>>873
ここの情報のことかな
ttp://docs.unity3d.com/Documentation/ScriptReference/MonoCompatibility.html
0876名前は開発中のものです。2012/07/14(土) 16:35:58.11ID:BoqGB526
>>875
ありがとうございます!見てみます。

>>874
リフレクションをどう使ったらいいかわからない初心者なのです。
勉強します。
0877名前は開発中のものです。2012/07/15(日) 20:21:38.70ID:o45mFu2W
質問です。

using UnityEngine;
using System;
using System.IO;
using System.Collections;
public class test : MonoBehaviour {
// Update is called once per frame
void Update () {
stop ();
}

IEnumerator stop(){
yield return new WaitForEndOfFrame();
Texture2D tex = new Texture2D(Screen.width,Screen.height,TextureFormat.ARGB32,false);
tex.ReadPixels(new Rect(0,0,Screen.width,Screen.height),0,0);
tex.Apply();
byte[] bytes = tex.EncodeToPNG();
Destroy(tex);
File.WriteAllBytes(Application.persistentDataPath + "\\cap\\page.png",bytes); //error
}
}
参考書のサンプルに沿って作ったんですが、上記の場所で
error CS0117: `System.IO.File' does not contain a definition for `WriteAllBytes'
とでました。
調べてみたらメソッドがないとかそういうエラーだと出たんですが。自動関数探索ではちゃんと表示されてました。
何が原因なんでしょうか?
0878名前は開発中のものです。2012/07/15(日) 23:20:20.68ID:3avhgn2s
それWebPlayer時には使えない機能っぽいから、それをWeb用に使おうととしてない?
0879名前は開発中のものです。2012/07/15(日) 23:40:55.04ID:o45mFu2W
いえ、まったく
0880名前は開発中のものです。2012/07/16(月) 15:32:40.91ID:70IArP8z
ビルド設定がwebplayerになってました。

設定を変えたらできました、ありがとうございました。
0881名前は開発中のものです。2012/07/16(月) 16:40:23.75ID:cHeSmp8e
俺なんかウェププレイヤ向けに作ってしまってPC向けに大幅な作り直しが必要になった。
へこむ。
0882名前は開発中のものです。2012/07/16(月) 21:09:14.42ID:kW5TQC5g
アルファ付きPNGテクスチャを表示させると、
アルファの部分の境界に、本来存在しないはずの白い線が表示されます。
対処法をご存じの方は教えて頂けませんか?

・境界線は全てではなく、一部分にのみ出ます。
(出る場所は画像によりけり、出ない画像もある)
・テクスチャ設定はTypeがGUI、FormatがCompressedです。
(AdbansedやTruecolorにしても結果は変わりませんでした)
・シェーダーはTransparent/Defuseを使っています。
・ビルド対象はWindowsスタンドアローンです。
0883名前は開発中のものです。2012/07/16(月) 22:11:03.51ID:iERGOS9E
アルファチャンネル フリンジ
あたりでググると色々出てくるけど元画像にアンチエイリアスがかかった状態だとアルファ抜きした縁の部分には背景色が混じってるんでそれが出てる。
フォトショップとかのフリンジ削除ツール使ったり、ドット絵作成ツールではじめからカッチリしたエッジの画像を作成するとかで対処。
0884名前は開発中のものです。2012/07/16(月) 22:23:57.84ID:vZo4YKG2
bilinear等フィルタでアルファもぼやけるし、背景色を目立たない色にしておくとか、エッジカラーではみ出して描いておくなどのやりかたも。
0885名前は開発中のものです。2012/07/17(火) 06:28:41.51ID:Qz7dX4ne
>>882
白い線が出るって事は、背景が白いんでしょうね。
キャラクターの境界線(通常は黒が多い)と同じ色の背景色にすればOK。
0886名前は開発中のものです。2012/07/17(火) 10:22:47.27ID:QjqsV9lO
>>883-885
皆様回答ありがとうございます。
何とか解決出来ました。

ご指摘で気付いたのですが、
白線はアンチエイリアスの掛かっている部分では表示されず、
掛かっていない部分(カッチリしたエッジ部分)で表示されます。
ですのでフリンジではなさそうです。

>>884の方のおっしゃる通り、
テクスチャのインポート設定のFilter ModeをBilinearからPointにすると
白線が発生しなくなりました。
(Trilinearでも発生したので、ピクセル引き延ばしの影響かと)

ですがPointだとブロック状に画像が荒れる為、
「Filter ModeはBilinearにして、全てのエッジにアンチエイリアスを掛ける」
という方法で対処することにしました。
ご協力ありがとうございました。
0887名前は開発中のものです。2012/07/17(火) 11:58:39.26ID:anRvSOp2
>>886
でもその白い線の「白」って色は背景色から来てるわけで。
だから背景色を境界線色に変えれば解決じゃないの?

アンチエイリアスで線が消えるわけではなく、
ただ目立ちにくくなってるだけかと。
逆に直線部分では良く目立つ。
アンチエイリアスがその問題の解決法ではないよ。
0888名前は開発中のものです。2012/07/17(火) 12:01:48.41ID:VZ6ZiPLu
単純な元画像の問題かどうか切り分けたいなら、
Unity以外で読み込んでみて、フチが意図した通りにならないか調べてみるといいね。
0889名前は開発中のものです。2012/07/17(火) 13:05:48.78ID:t9c6vhxu
ゲーム内の画像を2Dではなくて3Dとして保存することはできますか?

保存した後、その保存した画像の角度を変えて表示させたいのですが。
0890名前は開発中のものです。2012/07/17(火) 13:16:47.23ID:QjqsV9lO
>>887
「背景色」が何処の背景色か分からないのですが……
画像自体の背景色は「透過(色無し)」です。
アンチエイリアス部分は(本来の境界線と比べて)薄い色、半透明になっています。

なお、透過画像の下の部分(Unity上での重ね順としての下地)も
黒塗り潰し・別の透過無しテクスチャ等変えてみましたが、同じく線は白でした。

ただ、アンチエイリアス(ぼかし)の強度を変えて試してみたところ、
濃さにより見え方が変わったので、
確かに「線が目立ちにくくなっている」だけかもしれません。

>>888
元画像をPhotoshopで別の画像と重ねた場合はこの線は表示されません。
(Photoshop上、重ねた画像を書き出してビューワーで見た場合両方共)
なのでUnity側の問題だと思います。
0891名前は開発中のものです。2012/07/17(火) 13:19:29.50ID:D+gWmjmp
>>889
保存っていうのがゲームを終了しても保持することなら
角度を保存してしまって、読み出しのときに板作成→テクスチャ指定→角度変更
では駄目ですかね。

シーン間を持ち越すだけならオブジェクトを消去しない命令があります
0892名前は開発中のものです。2012/07/17(火) 13:21:25.93ID:VZ6ZiPLu
>>890
フォトショ以外でも読み込んで、重ねてみるといいよ。
0893名前は開発中のものです。2012/07/17(火) 13:42:45.94ID:anRvSOp2
>>890
っていうか原因わかったわ。
フォトショからアルファ付きのPNGで保存してんのね。
そうすると背景色はデフォで白だったはず。

透過っていうのは、そのドットのRGBA値のうちアルファ(A)が0なだけで、
RGBは見えないながらもそこには存在してる。それが背景色。
これが白だとうっすら出ちゃうわけ。

今手元にフォトショ無いから確かめられないけど、
PNG保存する時に背景色選択できないの?


0894名前は開発中のものです。2012/07/17(火) 14:33:25.61ID:t9c6vhxu
>>891

えっと変数に保存って意味です。

ゲーム内で、別変数に保存して、変数を直接いじくって(カメラ位置の変更)、そのあとまた出力したいのです。
これらの動作を裏側で行いたいんです。
0895名前は開発中のものです。2012/07/17(火) 14:49:10.12ID:QjqsV9lO
>>892
イラレでも試しましたが白線は表示されませんでした。
今手元にあるのはこれぐらいです。

>>893
>背景色はデフォで白
全く知りませんでした……

Photoshop CS5を使用し、「WEBおよびデバイス用に保存」から
PNG-24、透過ありで書き出しています。

背景色選択欄は見付かりませんでした。
ペンなどで使う描写色・背景色を弄ってみたり、
新規ファイル作成時のカンバスカラーを変えてみたりもしましたが
どれも変化は無かったです。
0896名前は開発中のものです。2012/07/17(火) 14:58:44.40ID:QjqsV9lO
>>882 質問主です。
ふと気付いて問題のテクスチャを適用させているマテリアルの
Main Colorを弄ってみたところ、線の色も変わりました。

ここを黒(境界線色)に変えれば線が目立たなくなると思うのですが……
・Main Colorを変えるとテクスチャの色味全体が変わる
・白線が出ている部分には、いわゆる画像としての輪郭線が無い=境界線色が取れない
 (画像の途中でスパッと切れているデザインをしている)
・画像の後ろに置かれる背景画像も場面毎に変化する為、
 背景色に合わせるのも難しい
……という状況です。

色々教えて頂いたのに申し訳ありませんが、
先に挙げたアンチエイリアス方式でいこうと思います。
ご指南頂いた皆様、ありがとうございました。
0897名前は開発中のものです。2012/07/17(火) 15:21:16.13ID:D+gWmjmp
>>894
いまいち何をしたいのか理解できていなく申し訳ないのですが、

変数にテクスチャ張った板のオブジェクトを入れたいのであれば、
たとえば、Unity側でHierarchyに作成した後、GameObject.Findで名前から取得します。
ttp://docs.unity3d.com/Documentation/ScriptReference/GameObject.Find.html

もしくはプレハブにしたものをInstantiateでコピーを呼び出します。
ttp://docs.unity3d.com/Documentation/ScriptReference/Object.Instantiate.html
ttp://blog.livedoor.jp/nanashisoft/archives/52481829.html
0898名前は開発中のものです。2012/07/17(火) 15:38:48.88ID:dGV6x85D
>895
「WEBおよびデバイス用に保存」じゃなくて
「別名で保存」で拡張子をpngで保存してみ。
0899名前は開発中のものです。2012/07/17(火) 20:22:24.23ID:ElwUcezP
>>894
ちゃんと読める所だけだとカメラの位置を動かしたいってだけにしか見えないんだが
カメラ以外動かさずにカメラのpositionとrotation書き換えりゃいいだけじゃないの?
何故か何かを保存したがってるけど保存しなくてもできるんじゃね
それじゃ思ってるものと違うんだったらもっと正確に詳細に書いてくれ
0900名前は開発中のものです。2012/07/17(火) 21:08:05.06ID:EqrUcQjP
質問です。UNITY黄色い本で勉強中の初心者です。


あるラインに、複数のオブジェクトを沿わす、みたいなことってできないのでしょうか。
Photoshopのガイドラインにスナップ、のような。
Ctrl+移動で、オブジェクトがぴったりくっつく、と書いてあるのですが、
ぴったりなってくれるオブジェクトと、なってくれないオブジェクトがあり、困っています。


スケールを同じ数値にしてオブジェクトを上下に重ねても、
ビューでぐいっと寄ってみると、
微妙にズレている=同じ大きさになっていないようなのですが、
原因になにか思い当たるようなことがもしあればお教えください。

よろしくお願いいたします。
0901名前は開発中のものです。2012/07/17(火) 21:52:36.08ID:PNKFJJ22
>>900
https://sites.google.com/site/sunflowerlaboratory/unitynoto/obujekutotongshinosunappu
移動でぴったりはvのようだけど?
0902名前は開発中のものです。2012/07/17(火) 22:03:48.40ID:PNKFJJ22
すまん読み間違った。
ガイドラインにスナップなのが望みで、ぴったりだけじゃなかったな。
僕も初心者に毛の生えたようなのだけど、ctrlで移動は決まった値(最初は1)ずつ移動だから、初期値が違えば微妙にずれるのかな?
1と1.5を1ずつずらしても重ならないように。一回positionをどっかの整数値に合わすとかしたらできるかも。
それか並べたいのの始点を適当に決めてそれに対して v で合わせればいいかも。
0903名前は開発中のものです。2012/07/17(火) 22:23:35.60ID:EqrUcQjP
>>902さん
ありがとうございます。Ctrlは単に、僕の記憶違いだったようです。
(規則的に移動するので、勘違いしたんだと思います)

ガイド用オブジェクトを作って、
「V」でそれに沿わせ、複数のオブジェクトを、一列にぴったり並べることができました。
助かりました。
0904名前は開発中のものです。2012/07/18(水) 14:25:23.02ID:gzafVNz5
質問です。
スケールの大きさを変更すると、中央から左右に広がるように大きくなりますが、
例えば左端を固定したまま、右方向にだけ伸ばす、というような事は可能でしょうか?
よろしくお願いします。
0905名前は開発中のものです。2012/07/18(水) 15:01:00.50ID:CL90+RLA
>>904
対象オブジェクトの上に空のオブジェクトを作り、
親にしてそれをスケーリングするという方法では駄目でしょうか?
0906名前は開発中のものです。2012/07/18(水) 15:03:46.53ID:2sj6X8qS
>>904
モデルのスケーリングの話?
スケーリングはモデルの中心がどこかで結果が変わる。
中心をモデルの左端にセットすれば、右方向にしか広がらないよ。
0907名前は開発中のものです。2012/07/18(水) 15:30:58.52ID:SrREmuBT
Unityのアセットストアの値段って
us dollarでぐぐってでてくる円であってます?
0908名前は開発中のものです。2012/07/18(水) 15:54:23.71ID:gzafVNz5
>>905
ありがとうございます。
やってみましたが、左端(起点)が微妙に移動してしまいます。
ただ、空のオブジェクトを親にできると知れたので、ひとつ勉強になりました。

>>906
ありがとうございます。
モデルの中心点操作はUNITY上で簡単に行えるものなのでしょうか?
ピボットモードにしてみたのですが、結果は同じでした。
0909名前は開発中のものです。2012/07/18(水) 16:15:46.90ID:CL90+RLA
>>908
それは何よりです。

>やってみましたが、左端(起点)が微妙に移動してしまいます。

目測で調節したのであれば、おそらく若干ずれているのかもしれません。
計算して調整するしかないと思います。
0910名前は開発中のものです。2012/07/19(木) 09:00:54.59ID:62KmjVAd
公式で過去のバージョンって手に入るでしょうか?
0911名前は開発中のものです。2012/07/19(木) 11:45:45.09ID:7U1ny9RN
>>910
どうやらアドレスは生きているみたいですね。
バージョンのところいじれば目的のものにたどり着けないでしょうか。
ttp://answers.unity3d.com/questions/8531/download-link-for-previous-versions-of-unity3d.html
0912名前は開発中のものです。2012/07/19(木) 12:13:10.96ID:62KmjVAd
>>911
数字変えたらいけました。
ありがとうございました。
0913名前は開発中のものです。2012/07/19(木) 17:25:02.54ID:veFDIDis
学ぶ力には三つの条件があります。

第一は自分自身に対する不全感。
自分は非力で、無知で、まだまだ多くのものが欠けている。
だからこの欠如を埋めなくてはならない、という飢餓感を持つこと。

第二は、その欠如を埋めてくれる「メンター(先達)」を探し当てられる能力です。
メンターは先生でもお母さんでも、ネットの中の無名の人でもいい。
生涯にわたる師ではなく、ただある場所から別の場所に案内してくれるだけの
「渡し守」のような人でもいいのです。
自分を一歩先に連れて行ってくれる人は全て大切なメンターです。

第三が、素直な気持ち。
メンターを「教える気にさせる」力です。オープンマインドと言ってもいいし、
もっと平たく「愛嬌(あいきょう)」と言ってもいい。

「学ぶ姿勢」のある人は、何よりも素直です。
つまらない先入観を持たないから、生半可なリアリズムで好奇心を閉ざさない。
素直な人に聞かれると、こちらもつい真剣になる。知っている限りのことを、
知らないことまでも、教えてあげたいという気分になる。そういうものです。

以上、この三つの条件をまとめると、

「学びたいことがあります。教えてください。お願いします」

という文になります。これが「マジックワード」です。
これをさらっと口に出せる人はどこまでも成長することができる。
この言葉を惜しむ人は学ぶことができないのです。
学ぶ力には年齢も社会的地位も関係がありません。
>>909さんも、早く学ぶ力を身に付けてください。
0914名前は開発中のものです。2012/07/19(木) 17:33:31.24ID:aHWcP6vu
扉を開ける
ゾウを入れる
扉を閉める

皆がやりたいのはこれw
0915名前は開発中のものです。2012/07/20(金) 00:34:55.68ID:0Ts5CfoM
Unityのアセットストアの値段って
us dollarでぐぐってでてくる円であってます?
0916名前は開発中のものです。2012/07/20(金) 09:11:49.52ID:78zkxkuS
検索のできるバカが増えてるな
0917名前は開発中のものです。2012/07/20(金) 10:05:38.68ID:B0gFBIBF
あってます
0918名前は開発中のものです。2012/07/21(土) 06:40:27.37ID:rrVYlbtb
>>895
アルファ付きテクスチャの作り方はここに載ってるけどこういうことかな。
ttp://docs.unity3d.com/Documentation/Manual/HOWTO-alphamaps.html
元画像の輪郭を伸ばしたものを透過色に使用して輪郭を消してるみたい


0919名前は開発中のものです。2012/07/21(土) 14:52:11.05ID:hRgLg+Bk
そもそもなんでpngなん?
0920名前は開発中のものです。2012/07/21(土) 20:12:12.48ID:SCzNmRpW
質問です。
function Updateの一行目に、 「 while (!メッセージ) yield; 」
として、あるBroadCastMessageが到着するまでは待機する、みたいな事をしたいです。

予め全体を止めておいたスクリプトを、
function メッセージ名(){ enabled="true"}として動かすのはできるのですが、
一部だけ、止めておきたいのです。

よろしくお願いします。
0921名前は開発中のものです。2012/07/21(土) 21:48:41.86ID:aRvOsHDv
>>920
>function Updateの一行目に、 「 while (!メッセージ) yield; 」
>として、あるBroadCastMessageが到着するまでは待機する、みたいな事をしたいです。
var enableFlag : boolean = false;
function Update () {
if (enableFlag) { return; }
Debug.Log("A");
}
function ChangeEnable (flag : boolean) {
enableFlag = flag;
}

>一部だけ、止めておきたいのです。
function Update () {
Debug.Log("A");
if (enableFlag) {
Debug.Log("B");
}
Debug.Log("C");
}
レス数が900を超えています。1000を超えると表示できなくなるよ。