【3Dゲームエンジン】Unity質問スレッド12
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001名前は開発中のものです。
2014/09/21(日) 00:19:55.04ID:2Rw6dtcbWindows/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質問スレッド11
http://peace.2ch.net/test/read.cgi/gamedev/1407243744/
■本スレ
【3Dゲームエンジン】Unity総合スレッド23
http://peace.2ch.net/test/read.cgi/gamedev/1404212872/
■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←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
0846名前は開発中のものです。
2014/10/27(月) 00:57:08.47ID:ZfN43Cyt0847名前は開発中のものです。
2014/10/27(月) 01:20:50.25ID:nY80YnHT"エルミート曲線"か"Hermite curve"、あるいは"catmull-rom loop"でぐぐってみそ
829には二次関数曲線に見えても実際は2次関数じゃないから
Unity3Dでの実装ならUnityWikiにも有るよ
0848名前は開発中のものです。
2014/10/27(月) 01:24:18.91ID:rezmKS6Kドラえもんに頼めばできそうな気がしますよ
0849名前は開発中のものです。
2014/10/27(月) 01:45:57.01ID:LrlOoTaZマップのテクスチャを作る際に、実際の縮尺に合わせて作れる気がしません…
マップの主人公アイコンとの座標同期方法もレイヤーで大きな一枚絵をマスク等して隠しながら、主人公の座標を加算等で加工。
テクスチャの上に表示で合ってるのでしょうか……?
0850名前は開発中のものです。
2014/10/27(月) 01:59:20.35ID:qPpTmtutこのアセット(tower defense)の解析ができないので暇な方お答えいただけないでしょうか?
ゲーム画面で左下のユニットをクリックすると、
ユニットをどこに配置するのかという状態に遷移します。
この時、UnitTowerのUpdateが呼び出されているのですが、
このUnitTowerをいつアクティブしているのか解析できません。
GetMouseButtonDown(0)やGetMouseButtonUp(0)を判定している場所で何かしているのかと思ったら、
GetMouseButtonUp・Downの判定前から動いているみたいで、
さっぱり何をしているのか分からないです。
UIのIsCursorOnUIが呼び出された後にUpdateが動くことまで解析したのですが、
その間にどこで何の処理をしているんでしょうか。
0851名前は開発中のものです。
2014/10/27(月) 02:16:53.17ID:qPpTmtut0852787
2014/10/27(月) 02:20:10.32ID:5I+M3PeM実際は
button.image.sprite = item.sprite;
が正解でした。
一応あとで見て引っかかる人がいないように修正しておきます。
0853名前は開発中のものです。
2014/10/27(月) 02:37:31.85ID:RwcPviE6あちこちに書いてあると思うが一番簡単なのは
・マップ用のカメラを用意してProjectionをOrthographicにして上から見下ろしにして置く。
・カメラのViewportRectで描画範囲を制限する
・プレイヤーの現在位置表示用オブジェクトをプレイヤーにつけておいてレイヤーを設定する
・メイン用、レーダー用のカメラのカリングマスクでメインではレーダーオブジェクトを表示しないように、
レーダー用では地形と位置表示用オブジェクトのみ表示するように設定する
とかだ。地図っぽい地図にしたい場合はもうちゃんと描くしかない。
と言ってもそんなに難しい話ではないと思うが。上からの図をスクリーンショットにでも取って
適当に加工すればいいんだし。
地図上の端と端の点が実際のマップ上の座標でいくつといくつなのか大体キチンと取れれば
(そこはできるだけちゃんとやった方がいいが)あとはそれを割合に合わせて変換してやればいいだけだし。
0854名前は開発中のものです。
2014/10/27(月) 02:48:30.28ID:LrlOoTaZご丁寧にありがとうございます。
すごく納得できました!
0855名前は開発中のものです。
2014/10/27(月) 03:10:52.90ID:TfSeo7dP下記のようにモーション指定した場合、
"function Start"に記入した場合は、
指定した通り再生されるのですが、
”function Update”に記入した場合は、
”motion_00”が再生されません。
何故でしょうか。
また、”function Update”で再生させるには
どう記述したらよいでしょうか。
宜しくお願いします。
---------------------------------------------
function Start () {
//アニメーションを再生する
animation.Play("motion_01");
//前のアニメーションの終了を待って再生する
animation.PlayQueued("motion_00");
---------------------------------------------
function Update () {
//アニメーションを再生する
animation.Play("motion_01");
//前のアニメーションの終了を待って再生する
animation.PlayQueued("motion_00");
0856名前は開発中のものです。
2014/10/27(月) 03:20:48.61ID:ld3Tt9qe砲弾のオブジェクトをちゃんと弾頭を前にして飛ばしたいのですが、砲弾のギズモが噴射口に向かってY軸、砲弾の側面というのでしょうか、本体に対して直角にZ軸とX軸、Z軸が前方方向になっています。
弾頭は地面に向いています。
矢印で表すとこうです。「↓」
この矢印の上側がY、右側がX、Zが画面奥に向かっている状態です。
砲弾を発射するとこの↓状態のまま画面奥に向かって飛んで行きます。
これを弾頭を前(画面奥側)にして飛ばしたいのですが上手くいきません。
砲弾のPrefabのRotationを0, 270, 90にしても無効、砲弾を発射する位置となる空のGameObjectの向きを変えたりしましたが無駄でした。
現在以下のコードで二方向に砲弾が交互に発射されます。「←」状態で画面奥へ、「↓」状態で画面左へ。
private void ShootProjetile (Rigidbody shotPrefab, Transform shotPosition, float shotForce, float shotSpread) {
Quaternion shotRotation;
shotRotation = shotPosition.rotation;
Rigidbody shot = Instantiate(shotPrefab, shotPosition.position, shotRotation) as Rigidbody;
Transform houdanTransform = shotPosition.transform;
houdanTransform.Rotate(0, 180, 90);
Vector3 houdanDirection = houdanTransform.TransformDirection(0, 0, 1);
shot.AddForce(houdanDirection * shotForce);
}
Unity4.3.4f1です。
0857名前は開発中のものです。
2014/10/27(月) 03:49:28.80ID:RwcPviE6そういうのは本来はちゃんとモデルを作れ、という話なんだが
プレファブにする時点で上に空のオブジェクトをかませてでも
0回転で前に進むように作っておいたほうがいい、と思う。
あとこれはちゃんといくかどうかわからんが
houdanTransform.Rotate(0, 180, 90);
の行を
houdanTransform.Rotate(90, 0, 0);
にして
Vector3 houdanDirection = houdanTransform.TransformDirection(0, 0, 1);
の行を
Vector3 houdanDirection = houdanTransform.TransformDirection(0, -1, 0);
にすりゃいいんじゃねぇの?って気がするんだが。
0858名前は開発中のものです。
2014/10/27(月) 04:41:25.60ID:ld3Tt9qeレス、ありがとうございます!
> houdanTransform.Rotate(90, 0, 0);
> Vector3 houdanDirection = houdanTransform.TransformDirection(0, -1, 0);
これは残念ながらダメでした。3方向に砲弾が発射されてしまいました(奥、左に加えて上)
> プレファブにする時点で上に空のオブジェクトをかませてでも
> 0回転で前に進むように作っておいたほうがいい、と思う。
こちらもやり方が果たして合っているか不明ですがダメでした。
砲弾は自分で作ったものではないのですが、再度プレファブを作るときに砲弾の配下にあるdefault(TransformとMesh FilterとMesh Rendererコンポーネント)というところに気付き、そこのTransformのRotationを(0,270,90)にしたら砲頭が奥に向かうようになりました!
defaultの親のRotationばかり弄ってて気付きませんでした…
お手数おかけしてすみませんでした
0859名前は開発中のものです。
2014/10/27(月) 05:07:24.71ID:RwcPviE6まぁそれはそれでうまくいったんだろうけど
他の人と共同でやってるならモデルの仕様はちゃんと決めたほうがいいよ。
Unity自体はタダでインストールできるので
「Unityに読み込んだときZが前になるように作ってください」って。
0860名前は開発中のものです。
2014/10/27(月) 08:12:01.37ID:rezmKS6Kアセットをかえば解決すると思いますよ
0861名前は開発中のものです。
2014/10/27(月) 08:21:54.50ID:CCSf5vxCFBXの座標変更はタダじゃないから通常ソフト指定になるんじゃないかな
0862名前は開発中のものです。
2014/10/27(月) 08:35:55.52ID:RwcPviE6って指定する時代だと当然細かな決まりごとまで仕様として作って渡す、ってのが
常識だったけどね。
プロジェクトが小さくなってその辺わかる人間がプロジェクトの中核にいるとは
限らん時代ではあるから。
とにかく作って!っつって出てきたデータに無理やりプログラム合わせる、という、
質問の事例がまさにそんな調子な訳で…
0863827
2014/10/27(月) 12:14:16.34ID:Ia7AaNeSありがとうございます
数学は苦手ですが何とかなりそうです
0864名前は開発中のものです。
2014/10/27(月) 12:52:38.43ID:oQY6qGZ7再生するとフリーズします(応答不能)。
動くときもあれば、動かないときもあるので、PCの相性は問題ないんだと思います。
バージョンは最新ですし、unity4までさかのぼって試してみましたが結果は同じです。
0865名前は開発中のものです。
2014/10/27(月) 13:56:48.97ID:E8+JdKZ+音の再生には、アセットをかうのが一番簡単だと思いますよ
0866名前は開発中のものです。
2014/10/27(月) 15:53:34.70ID:A4ye6qiBこの生成されたCubeを function update()で取得して
いじくる事はできますでしょうか?
0867名前は開発中のものです。
2014/10/27(月) 17:09:27.19ID:m1yWNw8k皆さんはどうやってしていますか?
スクリプトをこつこつ書いてるのでしょうか?
0868名前は開発中のものです。
2014/10/27(月) 17:12:19.26ID:w1/oiTxdjavascript初心者です。
下記のようにモーション指定した場合、
"function Start"に記入した場合は、
指定した通り再生されるのですが、
”function Update”に記入した場合は、
”motion_00”が再生されません。
何故でしょうか。
また、”function Update”で再生させるには
どう記述したらよいでしょうか。
宜しくお願いします。
---------------------------------------------
function Start () {
//アニメーションを再生する
animation.Play("motion_01");
//前のアニメーションの終了を待って再生する
animation.PlayQueued("motion_00");
---------------------------------------------
function Update () {
//アニメーションを再生する
animation.Play("motion_01");
//前のアニメーションの終了を待って再生する
animation.PlayQueued("motion_00");
0869名前は開発中のものです。
2014/10/27(月) 17:17:27.54ID:yN610OvSjsでスマンが
var object : GameObject = Instantiate (略);
これを一つ一つやっていくか
配列を利用して
var objects : GameObject[];
objects = new GameObject[10];
for (var i = 0; i<10; i++){
objects[i]= Instantiate(略);
}
これでいけるかな?
配列が嫌いで、普段使いたがらないから間違ってたら申し訳ない
0870名前は開発中のものです。
2014/10/27(月) 17:21:21.73ID:yN610OvSなんだこれわ……
アニメーションのPlayは、アニメーションを再生開始しますよー
っていう命令。
つまり一度実行してしまえば、あとは自動的にアニメーションが再生される。
開始命令を毎フレーム行ってたら、いつまで立っても最後まで再生する。というか、再生が開始されない。
決まったタイミングで呼び出すなら、普通にmethod内でフラグとif文使うか、関数を作りましょう。
0871名前は開発中のものです。
2014/10/27(月) 18:23:23.25ID:E8+JdKZ+オブジェクトを取得して弄くるには、アセットをかえば簡単です
0872名前は開発中のものです。
2014/10/27(月) 18:25:14.55ID:A4ye6qiBありがとうございます!順番にやっていくという方法が思いつきませんでした!
0873名前は開発中のものです。
2014/10/27(月) 19:12:36.18ID:yGOCWcKvPlayで1のアニメーションを再生しろ、
PlayQueuedで1のアニメーションが終わったら次に2を再生しろ、
だとしてそれを毎フレーム命令したら
たとえ前フレームで1のアニメーションが終わっていても
また1のアニメーションを再生しろ、それが終わったら2のアニメーションを再生しろ
という命令をする訳で2のアニメーションを再生する時は永遠にこないよ、
ということ。
方法は色々あるけどboolでフラグを作って
それがfalseなら1のアニメーションを再生、trueなら2を、
という風に分ける、ってのがよくあるやりかた。
もう少し発展していけばboolをintにして沢山の状態を
使い分けるようになる。
でもそれだとifやswitchが山のように重なることになる。
それはメンドクサイな〜、ってんで登場したのがmecanim。
まぁわかるようになれば使えばいい。
>>867
デモ的なシーンはデモ用のアニメーションを3Dソフトで作っちゃって
そのアニメーションを流してるな〜。
単純なのならスクリプトでとかできるけどキャラアニメーションとか
どうにもならんしね
>>864
そういうのはUnityに限らずどんなソフトでもありうる訳だが。
ブラウザが動かない、バージョンを変えても同じ、というヤツがいるとして
だからそのブラウザがおかしい、というやつはあまりいない。
そのマシンがおかしい、となるだけだろう。
0874名前は開発中のものです。
2014/10/27(月) 19:15:06.83ID:1amqML1Sもう少しまともな日本語使いなよ
0875名前は開発中のものです。
2014/10/27(月) 20:26:30.59ID:5I+M3PeM散々書かれてるから改めて書かなくてもよさそうだけど
C#なら↓みたいに書けばクリックした時だけアニメーションします
if(Input.GetMouseButtonDown(0)){
//アニメーションを再生する
animation.Play("motion_01");
//前のアニメーションの終了を待って再生する
animation.PlayQueued("motion_00");
}
0876名前は開発中のものです。
2014/10/27(月) 22:16:59.93ID:oY/98Y4w0877名前は開発中のものです。
2014/10/27(月) 22:25:08.00ID:ZfN43Cyt0878名前は開発中のものです。
2014/10/27(月) 22:45:01.76ID:yN610OvSあと、Unityで正常に動かない人は、Unityのプロジェクトを保存しているフォルダとUnityをインストールしているフォルダパス(中間のフォルダも含む)に2バイト文字(日本語)が含まれてないか、
今一度チェックしてみて。
俺はβをフォルダ名に含めたらアセットがダウンロードできなくなった。
0879名前は開発中のものです。
2014/10/27(月) 23:34:14.91ID:LZ3rPGF4ボタンにイベントが上手く登録できんのですじゃぁ〜;;
このアホ目にOnClickにメソッドを登録する手順を教えてくだせぇ;;
0880名前は開発中のものです。
2014/10/27(月) 23:39:18.37ID:5I+M3PeM>>795のAddListenerの中に呼び出したい関数書いたら登録出来ない?
0881名前は開発中のものです。
2014/10/28(火) 01:27:54.57ID:+EW4Ciefイベントの処理は、アセットをかうとうまくいくと思いますよ
0882名前は開発中のものです。
2014/10/28(火) 01:29:40.54ID:eDiYjbA8prefabからインスタンスを大量に配置した後、他の作業をしている際に、
project内のファイル整理もやったら誤って大元のprefabを削除してしまいました
インスタンスは実体化したのか、hierarchy内で全て赤く表示されています
inspectorのprefabとあった箇所には"missing"とオレンジで表示されています
元のprefabを拾ってきて元に戻しても、保存していないのに赤い表示のまま変わりません
赤い表示のものを元のインスタンスにD&Dしたら、リンクは元に戻せmissingは消え元に戻ったようですが、
なんせインスタンスが大量にあり、replaceするのが大変なのと、
その後の調整も一括で編集できないとそれも大変なので、一括でprefabとインスタンスのリンクを復活する方法はないでしょうか?
ちなみに複数選択してprefabにD&Dはできませんでした
0883名前は開発中のものです。
2014/10/28(火) 01:45:57.46ID:+xjoFnXectrとz
で、undoが出来たと思うけど…
消したアセットにも適用できたっけ?
0884名前は開発中のものです。
2014/10/28(火) 02:02:51.96ID:lMuNMK400885名前は開発中のものです。
2014/10/28(火) 02:06:46.38ID:eDiYjbA8projectウインドウ内で削除すると、undo出来ないんですよ・・・
ファイル自体はゴミ箱にいくんで元に戻せますが
要するにリンクだけ死にます
0886名前は開発中のものです。
2014/10/28(火) 02:32:33.05ID:KcnRFj3Rとおりませぬ…
public void onEventTest(){
Debug.Log("押された");
}
0887名前は開発中のものです。
2014/10/28(火) 03:11:54.75ID:2NIbTynD>>795があるのと同じクラスにその関数追加して、
e.AddListener(onEventTest);
で出来るようになったけど、どこで引っかかってる?
0888名前は開発中のものです。
2014/10/28(火) 03:13:04.69ID:KcnRFj3RスクリプトでボタンコンポーネントにAddListenerしたOnClickってInspectorに出ないんですかね…
デバッグしてたらしっかり通ってました…; 他試してないけど;
これInspectorのOnClickに積んだイベント表示できないのかなぁ
0889名前は開発中のものです。
2014/10/28(火) 03:18:54.34ID:2NIbTynD適当にAddしてindexに0とか1とかいれてみてもうまくいかないなあ
0890名前は開発中のものです。
2014/10/28(火) 03:27:31.04ID:x5pc5Z2qInspectorのOnClickに積んだイベント表示ですが、アセットをかえばうまくいくと思いますよ
0891名前は開発中のものです。
2014/10/28(火) 03:34:35.28ID:KcnRFj3RボタンコンポーネントにスクリプトでAddListner()した後にGetPersistentEventCount見ると
0って言われて、スクリプトで追加したリスナはどういう扱いなのかげふんげふんって感じですわ…
0892名前は開発中のものです。
2014/10/28(火) 09:13:57.94ID:u4JB5vdlこれって何が問題ですか?
0893名前は開発中のものです。
2014/10/28(火) 10:03:58.68ID:5NVLy9SBあとFBXで出力されないようなマテリアルもこない。
あとBlenderでのFBX出力時の注意もあるらしい。
ttp://blender.jp/modules/newbb/viewtopic.php?topic_id=1592&forum=3&post_id=8422
ttp://valkyrier3.hatenablog.com/entry/2013/11/17/074250
0894名前は開発中のものです。
2014/10/28(火) 11:26:06.04ID:PGJNQUpeテクスチャの反映はアセットをかえばいけると思いますよ
0895名前は開発中のものです。
2014/10/28(火) 12:04:07.99ID:y1S2DZswです
遅くなりましたが
色々アドバイスいただきありがとうございます。
下記のような記述で無事解決できました!
var flag : int = 0;
function Start () {
}
function Update () {
if(flag == 0){
flag = 0;
animation.CrossFade("motion_01",0.5);
StartCoroutine("Wait");
}
else{
flag = 1;
animation.CrossFade("motion_00",0.5);
}
}
function Wait(){
//motion_01の長さ分の尺
yield WaitForSeconds(5.0);
flag = 1;
}
0896名前は開発中のものです。
2014/10/28(火) 16:15:02.13ID:1LovKdQjMonobehavior非継承クラスで、Monobehaviour継承クラスのインスタンスを生成する
手段はありますでしょうか?
Mono非継承なので
NewやGetcomponent、FindObjectTypeが使用できません。
0897名前は開発中のものです。
2014/10/28(火) 16:47:37.52ID:ZoS/XeDmMonoBehaviour継承クラスはnewできないよ(ComponentはnewじゃなくてAddComponentでしか生成できない)
MonoBehaviour等のInstantiateはstatic methodなのでどこからでも呼び出せるから prefabを Instantiateするのが好いんじゃ無いのかな
0898名前は開発中のものです。
2014/10/28(火) 18:04:40.87ID:lMuNMK40Mono非継承クラスにてusing UnityEngineして
Mono継承クラス mono継承クラス = (new GameObject()).AddComponent<Mono継承クラス>();
これで新しいゲームオブジェクトが作成されてMono継承クラスがaddされる
そしてfindやgetcomponentの必要なくmono継承クラスでそのまま使える
0899名前は開発中のものです。
2014/10/28(火) 18:36:09.58ID:9NMjSi+PMonobehavior非継承クラスで、Monobehaviour継承クラスのインスタンスを生成するには、アセットをかえばいいと思いますよ
0900名前は開発中のものです。
2014/10/28(火) 19:05:17.11ID:1LovKdQj試させて頂きましたら、解決できました。
ソースが簡潔に出来る上に今後の作業が非常に捗ります。
ありがとうございました!
0901名前は開発中のものです。
2014/10/28(火) 22:45:04.79ID:hrXLA5jaで加速して、クリックで下記を実行して方向転換しています。
rigidbody2D.velocity = Vector2.right * rigidbody2D.velocity.magnitude;
直角に曲げたいのですが、ちょっと動きがおかしいというか、行き過ぎる感じになるときがあります。
これじゃだめなんでしょうか。
0902名前は開発中のものです。
2014/10/28(火) 23:49:31.93ID:9NMjSi+Pオブジェクトの回転は、assetをかえばうまくいくとおもいますよ
0903名前は開発中のものです。
2014/10/29(水) 00:19:14.04ID:Ld5AQuk1>flag = 0;
この行全く必要ないよ…
>var flag : int
悪いこと言わないからintじゃなくenumにしよう。
enumでググれば大体良さが分かるから。
状態が2つから絶対増えないならboolでも良い。
0904名前は開発中のものです。
2014/10/29(水) 03:02:08.47ID:u4K78F0ZuGUIのonClickにスクリプトから登録する関数に引数を渡す方法はありませんか?
複数の処理をする場合関数を並べるしかないんでしょうか
0905名前は開発中のものです。
2014/10/29(水) 03:08:24.47ID:u4K78F0ZUnityEngine.Events.UnityAction<int>
なんて宣言が出来るから、あわよくばと思ったけど、
ButtonClickedEventには対応してないのかな
0906名前は開発中のものです。
2014/10/29(水) 05:42:05.42ID:uh4OXLwAキャラの陰影が濃すぎるのは困るし、かと言ってトゥーンシェーダーまで行くとフラットすぎるので、
デフォルトで入ってるReflective/Diffuseってシェーダーを使ってます
柔らかい陰影を設定できて良い感じです
しかし、服に模様のテクスチャーを貼って見ると、どうも色が白く飛んでしまいます
例えば深い漆黒の模様の部分は黒じゃなくてグレーになって見づらくなってしまって…
何かおすすめのシェーダーかテクスチャーの設定方法などありますでしょうか
環境光を下げても全体的なメリハリがない状態のまま暗くなるだけでした
0907名前は開発中のものです。
2014/10/29(水) 06:58:02.75ID:+1NRP28punity.exeが以下のような状態になっていますが、これは正常な状態なのでしょうか?
何らかの理由で多重起動されているということですか?
unity.exe
└unity.exe
unity.exe
unity.exe
0908名前は開発中のものです。
2014/10/29(水) 08:57:59.36ID:o70bEse7シェーダーかテクスチャーの設定を上手にするには、アセットをかうのがお勧めですよ
0909名前は開発中のものです。
2014/10/29(水) 16:44:40.69ID:W5OtA+8dそんな細かいカスタマイズしたいなんて自分でシェーダ書くしかねぇだろw
かけないならシェーダーフォージでも買っとけ。
0910名前は開発中のものです。
2014/10/29(水) 17:34:23.28ID:r+X1CY1A白く飛ぶっていうのは明るい部分のこと?
ライトが強すぎるんじゃないのか
0911名前は開発中のものです。
2014/10/29(水) 17:43:16.74ID:W5OtA+8d上から加算で書いてるんだから下が浮くに決まってんじゃんっていう。
0912名前は開発中のものです。
2014/10/29(水) 20:07:47.15ID:uh4OXLwAシェーダーフォージってのがあるんですね、なるほど
>>910
地下なのでところどころにpoint light置いてるだけなんですが、
ライトから離れてもメリハリない感じなんですよね
例えば白地に黒でCHANELって書いてても
ちょっと四、五メートル離れれば薄くなって何が書いてるのか見えない感じです
文字が読めないじゃなくて、薄くて見えない、です
>>911
薄い影をつけて柔らかい印象を出すにはちょっと試した限りではこれが最適だったんです、
普通にDiffuseだけだと影が濃すぎてバケモノみたいになっちゃって
ライトの設定を弱くしたりしても全く効果ありませんでした
Reflectiveじゃなくて他におすすめがあるならぜひ教えて欲しいです
0913名前は開発中のものです。
2014/10/29(水) 20:18:42.54ID:uh4OXLwA陰影が濃くなりすぎるのが嫌で仕方なくReflective Diffuseを使った
陰影の濃さはライトを弱くしたりしても望む改善はできなかった
しかしReflective Diffuseを使うと影のカラーが自分で指定出来て良い感じで解決し他に問題はなかった
ところが今回テクスチャーつけてみて黒がかなり薄いと感じた
影のメリハリを柔らかくする他のシェーダーがあるなら教えて欲しい(トゥーンは極端すぎる)
といった感じになると思います
0914名前は開発中のものです。
2014/10/29(水) 21:33:33.93ID:XN2a1GTaテクスチャに陰を描けばいい
手書きでもツールで焼きこむ方法でもやりやすい方で
0915名前は開発中のものです。
2014/10/29(水) 21:36:17.18ID:JMfuHOd3android版だけロード時間遅いのも納得できますね。
ちなみに自作のテクスチャは全てPNG形式で、
Unity上で各画像に対して「Override for Android」に
チェックを入れ、アルファ無し画像に関しては
「RGB Compressed ETC 4 bits」を、アルファ有り画像は
「Compressed」を選択するようにしています。
ただ、アセットストアで購入したものも多数あり、
それらの圧縮が漏れてる可能性もあるので、
もう少し調べてみます。
0916名前は開発中のものです。
2014/10/29(水) 22:15:20.39ID:W5OtA+8dなるほど。
暗いところが暗くなるのを防ぐのにはいくつが方法があるがまず
・Edit→RenderSettingでAnbientLightを明るくする
という手法がある。これはシーン全体にライトを適用するようなもの。
テクスチャーの色がダイレクトに反映されていくようになる。
完全に白にすれば一切陰影がつかなくなる。
逆にこれを赤とかにすれば全ての影が赤になる。
次に
・SelfIllminシェーダーを使う
というのがある。これは自己発光シェーダーと呼ばれるもの。
別にライト効果を出す訳ではなくどのくらいライティングの影響を排して
元のテクスチャーのカラーをダイレクトに出すか、というもののはずだが
一般的なそれとはちょっと違いライトの影響は少し残るようだ。
ただ影色の指定はできない。
あと
・ToonLightedを通常のグラデーションで使う
という手もある。トゥーンシェーダーは0〜1の光の強さを
トゥーンランプで指定したグラデーションテクスチャーの色に
置き換えてそれをカラーテクスチャの色と掛け合わせて色を表示する。
デフォルトのトゥーンランプテクスチャはいかにもトゥーンらしい
3段ほどに分かれたものだがこれを滑らかなグラデーションテクスチャに
入れ替えればベタな印象はほぼなくなる。
また暗い部分をグレー程度に抑えてやれば暗い部分を持ち上げることも出来るし
例えば一番暗い部分は青っぽく、中間の部分は赤っぽく、というランプテクスチャーを
作ればそのように影色もつく、というトリッキーな使い方も出来る。
ただその為のテクスチャーを一々用意しなければならない、という面倒さはある。
自分でシェーダー書くレベルまでいけばさらに色々ありうる。
0917名前は開発中のものです。
2014/10/29(水) 23:15:10.30ID:Hh52cj2W既存の静的なテクスチャに対してピクセルシェーダでイメージエフェクトと同様の効果を与えることは無償版でも可能ですか?
0918名前は開発中のものです。
2014/10/30(木) 03:34:02.43ID:+SieO2Doピクセルシェーダ自体は利用可能。まぁ自分で書く必要はあるけど。
0919名前は開発中のものです。
2014/10/30(木) 03:45:02.97ID:AtJUWtag>>916
うおお、仕事で今帰ってきたらいっぱい説明あって助かります
今日はもう手つけれないけど明日にでも試してみます、ありがとうです!
0920名前は開発中のものです。
2014/10/30(木) 09:12:42.72ID:D+GU5TS/int inWidth = GUI.GetLabelWidth();
上記のような関数があると良いのですが、、、
0921名前は開発中のものです。
2014/10/30(木) 09:59:58.56ID:58r4W3k7中央表示も簡単にできるし
0922名前は開発中のものです。
2014/10/30(木) 11:24:28.86ID:reOdaCgtGuiはやめて アセットをかったほうがいいでしょう
0923名前は開発中のものです。
2014/10/30(木) 11:51:17.42ID:zRUe5sGHですが、自機の右側のあたり判定はうまくいくのですが左側からの当たり判定がうまくいきません。
衝突回避テスト用のunityプロジェクトファイル一式をうpろだにあげました。
どなたかお手隙な方見ていただけませんでしょうか。
ttp://www.dotup.org/uploda/www.dotup.org5388657.zip.html
0924名前は開発中のものです。
2014/10/30(木) 12:06:46.21ID:6up9YqJYraycastは悪手だと思うぞ
だいたいなんでそう言う実装えらんだの?
//コードも見ずに言ってしまうくらい悪手だと思う>>地形をraycastで判定
0925名前は開発中のものです。
2014/10/30(木) 12:21:46.37ID:wNJI4pax親オブジェクトの子として時機があるんだけど
親オブジェクトがレールの上を移動してそれに時機の移動を合わせたかった。
なんでややこしい事をしてしまったのでプロジェクトをupした状況です。
0926名前は開発中のものです。
2014/10/30(木) 13:47:25.90ID:oYm6Pw66物体衝突については、あせっとをかうのが簡単で早いと思いますよ
0927名前は開発中のものです。
2014/10/30(木) 14:10:01.81ID:+SieO2Doまぁ大体判った。けどよくわからない。
要するに左側に判定があるとその時のdistanceの値が残ってしまう。
なので右には判定がなくても左側への移動が行われる。
void CheckTerrainHit()
{
RaycastHit data;
Transform t = gameObject.transform;
Vector3[] v = { -t.right, t.right };
Vector3[] v2 = { Vector3.right, Vector3.left };
int hitCheckMax = 1;
int chkCount = 0;
bool check = false;
for (int i = 0; i < v.Length; i++)
{
chkCount = 0;
do
{
check = false;
if (Physics.Raycast(t.position, v[i], out data, 6f))
{
check = true;
Debug.DrawLine(t.position, data.point);
movedata = t.localRotation * v2[i];
movedata.z = 0; // 自機の移動をローカルのXY平面上だけにしたいためzをクリア
t.parent.localPosition = t.parent.localPosition + movedata;
}
chkCount++;
} while (check == true && chkCount < hitCheckMax);
}
}
とかすればとりあえず動く。
0928名前は開発中のものです。
2014/10/30(木) 14:20:58.34ID:+SieO2Doちょっと謎なのはDoWhile内でRayCastHitを確保した場合で
これが何故か値が残るんだよな〜。でもCheckTerrainHit()の頭で確保してる分には
あたいがのこったりしない。つまり次のフレームまでは残らない。
まぁでもとりあえずは上に書いたようにしとけば動くよ。
0929名前は開発中のものです。
2014/10/30(木) 14:23:10.73ID:fIgrH7MrBootcampだとUnityScriptだし、ごちゃごちゃしててよくわかりません…
どのアセットが良いか選別しとけよ >>926
0930名前は開発中のものです。
2014/10/30(木) 14:26:22.86ID:cLQtyHTBうおおおお
ありがとうございます!
仕事終わったら早速試してみます!!
0931名前は開発中のものです。
2014/10/30(木) 15:39:36.66ID:oYm6Pw66BootcampみたいなカメラズームするTPS視点のシンプルなアセットエオかえばいいんではないかと思いますよ
0932名前は開発中のものです。
2014/10/30(木) 16:30:01.22ID:fIgrH7Mr0933名前は開発中のものです。
2014/10/30(木) 16:30:58.91ID:fIgrH7Mr0934名前は開発中のものです。
2014/10/30(木) 16:31:47.48ID:XFPzf1gQ0935名前は開発中のものです。
2014/10/30(木) 16:31:47.63ID:fIgrH7Mr0936名前は開発中のものです。
2014/10/30(木) 16:35:29.13ID:fIgrH7Mrもーいいです面白かったからwどうせまともに答えてくれる人いないだろうし。
0937名前は開発中のものです。
2014/10/30(木) 17:24:20.03ID:dn2HQt5vマテリアルのアルファを
2秒かけて、0.0~0.7に変化させたいのですが、
どのように記述すればいいでしょうか?
調べた範囲ですが、下記の状態まで記述しました。
宜しくお願いします。
#pragma strict
var mat : Material;
var alpha : Color = Color(0.0, 0.0, 0.0, 0);
function Start () {
}
function Update () {
renderer.material.color.a = 0.0;
renderer.material.color.a = 0.7;
}
0938名前は開発中のものです。
2014/10/30(木) 17:37:46.17ID:6up9YqJYfunction Start() {
ourAlpha = 0.0;
}
function Update() {
var per2sec = 0.7f / 2.0f;
ourAlpha = ourAlpha + per2sec * Time.deltaTime;
if(ourAlpha>0.7f) {
ourAlpha = 0.7f; // maximam check
}
renderer.material.color.a = ourAlpha;
}
0939名前は開発中のものです。
2014/10/30(木) 17:38:33.79ID:6up9YqJY0940名前は開発中のものです。
2014/10/30(木) 17:45:41.46ID:dn2HQt5v937です。
ありがとうございます。
上手くいきました!
まだ書き方が理解出来ない部分があるので、
調べながらマスターさせていただきます!
0941名前は開発中のものです。
2014/10/30(木) 17:48:58.23ID:oYm6Pw66マテリアルの変化はアセットをかえば簡単に実装できますよ
0942名前は開発中のものです。
2014/10/30(木) 19:26:46.72ID:Wq+QA0Js0943名前は開発中のものです。
2014/10/30(木) 19:45:59.64ID:mbfvJADI0944名前は開発中のものです。
2014/10/30(木) 19:58:24.18ID:+SieO2Doこの辺の中にないの?
ttp://wiki.unity3d.com/index.php/Scripts/Controllers
0945名前は開発中のものです。
2014/10/30(木) 20:26:38.58ID:APqDyYIA横レスだけどありがとう。
このリファレンス忘れてた
レス数が900を超えています。1000を超えると表示できなくなるよ。