12/07/31 17:07:15.25 ao2YQnTJ
まだまだ初心者なんですけど、質問です。
配置したGameObjectのキャラクターの向きによって、そのテクスチャ(例えば胸に付けている名札みたいなもの)が
暗いのですがどう調節したらよいでしょうか。
主に全体を照らすポイントライトに背を向けたときなのですが、環境光を増やすと他が明るすぎたり、です。
各々の名札の前に1つずつライトをくっつけておくとかでしょうか…?
(↑これはなんかライトの無駄遣いなような気がしてしまいます…)
19:名前は開発中のものです。
12/07/31 17:54:05.09 TjjBsWGK
IEnumerator routin()ってどういう意味の関数でしょうか?
update()などと何が違うのでしょう?
20:名前は開発中のものです。
12/07/31 18:03:31.36 Hjkt1KFR
>>18
マテリアルのシェーダを変えて環境光の影響を
受けないものに変えてみてはどうでしょうか。
21:名前は開発中のものです。
12/07/31 21:37:07.19 ao2YQnTJ
>>20
ありがとうございます
!
ご助言を元に、
名札を、全体を照らしてるポイントライトの影響を受けないレイヤーに設定して
更にシェーダーをVertexLitにしてEmissiveColorを明るめに調整したところ一定の明るさにすることができました。
22:名前は開発中のものです。
12/07/31 21:47:44.98 ao2YQnTJ
質問させていただきたいと思います。
iTweenなのですが、
放物運動を表現しようと思って
下方向→ iTween.MoveTo(GO, {"y":GO.transform.position.y+10, "time":1, "easetype":iTween.EaseType.easeInQuad, …
横方向→ iTween.MoveTo(GO, {"x":GO.transform.position.x+20, "time":1, "easetype":iTween.EaseType.easeOutSine, …
みたいなコードを書いてみたのですが、横方向にしか動かず
後に書いた横方向iTweenで動作が上書きされているようなのです。
もし複数のiTweenを同時に動かす方法がありましたら教えていただけたらと思います。
23:名前は開発中のものです。
12/08/01 11:47:45.72 6n/zbPfq
>>22
使ったこと無いんで不確かで申し訳ないけども、
xyのパラメータを一度に渡すことってできないの?
下記のページなんかを見る限りではそんなことやってるとは思うのだけど、、、
URLリンク(24app.net)
24:名前は開発中のものです。
12/08/01 11:58:17.91 ZyZQs6PU
rotation の数字に e が入ってる時があります。
こんな感じ → 2.091013e-05
e が入らないようにする方法はありますか?
25:名前は開発中のものです。
12/08/01 12:17:01.06 dcDzx35c
丸めればおk
26:名前は開発中のものです。
12/08/01 12:17:40.41 3QM2TZ/V
>>22
>>23がいってくれたように複数指定するか
"position"を使ってベクトル指定すればいいよ
27:名前は開発中のものです。
12/08/01 12:25:07.61 ZyZQs6PU
>>25
e の手前で丸めると結構大きく位置が変わっちゃうんですよ。
transform.localEulerAngles.x = e がついたまま;
ってやるとStringは駄目だよって怒られるし…
28:名前は開発中のものです。
12/08/01 12:34:01.84 GJiIkm+P
>>23
うろ覚えですまん、
Vector3 hogePos = new Vector3(hogeX, hogeY, 1.0f);
iTween.MoveTo(GO , hogePos , ・・・);
こんな感じじゃだめなんだっけか?hogeXとhogeYがそれぞれ動かしたい方向ね。
29:名前は開発中のものです。
12/08/01 13:16:08.43 YbJjPs8r
>>27
eついてても数値扱いだよ。
stringはダブルクオートで囲む必要があるじゃん。
30:名前は開発中のものです。
12/08/01 13:21:53.52 6n/zbPfq
>>27
JAVAで書いてて型宣言していないとか?
あとはダメ元でキャストしてみる。
31:名前は開発中のものです。
12/08/01 13:56:56.37 81pqrVTL
>>23
>>26
>>28
レスありがとうございます。
x,y同時に動かすことは動かすのですが
放物運動ということで、y方向には重力風に、x方向は減衰風に、と
それぞれ別のイージングをほどこしたいのです。
yは"easetype":iTween.EaseType.easeInQuad
xは"easetype":iTween.EaseType.easeOutSine とパラメータを設定したかったりします。
わかりにくくてすみません><;
これら同時に適用する方法等ありますでしょうか…。
32:名前は開発中のものです。
12/08/01 14:21:32.69 RmACwW35
iTween詳しくは知らんが
MoveUpdateとかで出来るんじゃないの?
33:名前は開発中のものです。
12/08/01 15:07:33.95 6n/zbPfq
>>31
再び不確定…というか実験半分で申し訳ないんだけども、
対象オブジェクトの上に空の親作って、その親に片方の挙動負担してもらうと
どうなるかな。
下方向→ iTween.MoveTo(GO, {"y":GO.transform.position.y+10, "time":1, "easetype":iTween.EaseType.easeInQuad, …
横方向→ iTween.MoveTo(GOの親, {"x":GOの親.transform.position.x+20, "time":1, "easetype":iTween.EaseType.easeOutSine, …
って感じで。
iTween知らないんで「無理だろjk」ってなったらやる必要ないです;
34:名前は開発中のものです。
12/08/01 16:41:25.82 81pqrVTL
>>32
>>33
レスありがとうございます。
いろいろ試してもみたところ、iTweenで座標がいじられる場合は、軸指定がなくても
座標はVector3で更新されるらしく、途中で割り込んで書き換えても、結局そのVector3で上書きされるみたいでした。
なので、空の親をつくるのが良いっぽいですね。
forumとかも見てみたらそのやり方でやるしかないっぽいでした。
URLリンク(answers.unity3d.com)
ありがとうございました。
35:名前は開発中のものです。
12/08/01 19:34:03.62 vzUV4+G4 BE:5458023599-2BP(1)
sssp://img.2ch.net/ico/dokuo1.gif
Unity始めたばかりの初心者なのですが、キー設定の方法がわかりません。
fキーを押したらっていう場合は if(Input.GetKeyDown("f")){}
と書けばいいのですが、”FIRE1”のように起動画面での設定変更ができるようにしたいです。
調べたところEdit>ProjectSetting>Inputから追加で出来るようですが、そこでの設定方法がよくわかりません。
Sizeの値を増やして項目を増やしたあとどうすればいいかがわかりません。
また、スクリプト側では(JavaScript)どのように記述したらいいでしょうか。
どなたか丁寧に教えてください。
”やりたいこと”をまとめると、割り当て変更可能なキーを押すと、”SELECT1”という入力で認識されて、FIRE1のようにスクリプトを動かしたいです。
よろしくお願いします。
URLリンク(ws.cis.sojo-u.ac.jp)
URLリンク(hamken100.blogspot.jp)
URLリンク(docs.unity3d.com)
ここは一応目を通しました。
36:名前は開発中のものです。
12/08/01 20:24:21.99 B/JSzTKU
>>35
ゲーム内でキーを変えるってことだよね?ctrlのところをaとかでも作動するようにしたいと。
調べたらまだその機能ないからfeedbackで機能実装に投稿してってさ。
URLリンク(answers.unity3d.com)
URLリンク(feedback.unity3d.com)
単にキーを増やしたいだけなら、sizeを増やすか既存のを変更して、Nameにselect1を入力すれば
>35の二行目の"f"を"SELECT1"に変えればよくなる。
キーボードなりジョイスティックのどのボタンとつなげるかはinput inspectorのpositive ButtonのとこかJoy Numに書けばいい。
手元のをみてほしいんだけど、Fire1のとこはNameがFire1でPositive Nameがleft ctrlでしょ。left ctrlでFire1が動くのはそういうわけ
37:名前は開発中のものです。
12/08/01 20:52:37.87 vzUV4+G4 BE:1886724274-2BP(1)
sssp://img.2ch.net/ico/dokuo1.gif
>>36
回答ありがとうございます
現在script(javascript)のほうで
if(Input.GetKeyDown("select1")){記述}
と書いていて、
UnityのほうでEdit>ProjectSetting>Inputの
InputManagerで
Name:serect1 PositiveButton:f であとのところはFire1などと同じにしてありますが、
起動したあと、Inputのところでキー設定し直しても、し直さなくても
スクリプトが動いてくれません。どこがいけないのでしょうか・・・
38:名前は開発中のものです。
12/08/01 21:01:52.00 B/JSzTKU
エラーがでたならエラー貼る。
スクリプトが動いてないのはどう検証してるの?
既存のctrlやspaceのもともとあるname(Fire1とかjumpとか)をselect1と書いてるところに書いたら記述は動くの?
>>起動したあと、Inputのところでキー設定し直しても、し直さなくても
の一文がよくわからないんだけど。
再生ボタン押さずにinputの設定変えて起動したあとは、キーボードを押すだけじゃないの?
39:名前は開発中のものです。
12/08/01 21:43:41.64 vzUV4+G4 BE:539064342-2BP(1)
sssp://img.2ch.net/ico/dokuo1.gif
>>38
>>既存のctrlやspaceのもともとあるname(Fire1とかjumpとか)をselect1と書いてるところに書いたら記述は動くの?
Fire1と書いてあり、動作していた記述をserect1にしてみましたが、
スクリプトが動きません。
エラーは出てないと思います。
>>起動したあと、Inputのところでキー設定し直しても、し直さなくても
というのは、Windowsアプリ用に出力して起動し、Inputのタブでのキー変更をしてもしなくてもという意味です。
検証については実際に出力したものを起動して反応しているかを確かめています。
どう設定したら良いのでしょうか・・・・
どんなふうに設定したらいいでしょうか?
40:名前は開発中のものです。
12/08/01 22:04:55.55 B/JSzTKU
ゆうまいと思ってたんだけど、serectじゃなくてselectね…一応スペルミスはみといたほうが。
inputって10いくつかあるでしょ。それの初期からあるやつ、JumpとかFire1をselect1の代わりに書いてもらうつもりでした。
Jumpなどはうごくとわかってるからそれでもだめならどこに問題があるか範囲を狭められるでしょ
ブレークポイント(IDEのデバッグ機能)使ってみるとかか、ただ環境の整備が大変だけど…
Debug.Log()関数をifの前後実行文に書いてどこが実行されてるかみるとかかな?
winアプリ用に出力ってのは、一々エクスポートしてるのか…インプットくらいなら三角形押したらだけでいい気がするけど
41:名前は開発中のものです。
12/08/01 22:36:24.56 vzUV4+G4 BE:1415043173-2BP(1)
sssp://img.2ch.net/ico/dokuo1.gif
スペルミス確認してみました
ありがとうございます
なるほど、script側のほうを変更してみること以外に、
初期からあるJumpとかの部分をselectって名前にかえてやってみるってことですね
初期からあるFire1のNameをSelect1にかえて、Fire1で作動していたscriptをselect1
に変えてみましたが、何故か動作しませんでした。
つまりはscript側での記述がおかしい、あるいは足りないのだと思います。
いま動作させるためにやっていることは、InputManagerのところの編集と
script側でif(Input.GetButtonDown("select1")){}
とやっているだけです。何が足りないのでしょうか。
42:名前は開発中のものです。
12/08/01 22:57:30.72 81pqrVTL
質問いいでしょうか。
Update内で、Quaternion.Slerpとか使用してキャラクターを回転させているのですが
360度以上回転させることってできますでしょうか?
Quaternionとかrotation周りを調べているのですが、指定方向に回転等はあるのですが
単純にくるくると複数回転さすにはどうしたらいいでしょうか?宜しくお願いします。
(例えば、900(=360x2.5)を指定したら2.5回転してくれたりとか…)
43:名前は開発中のものです。
12/08/01 23:01:11.61 B/JSzTKU
ちょっとわかりませんね…話がかみ合ってない気もするし
uploaderにアップしてくれたら、どこがだめか探してもいいけど?
フォルダをzipにしてもサイズがでかいから、ゲーム制作板の
44:名前は開発中のものです。
12/08/01 23:04:53.30 B/JSzTKU
途中送信
ゲーム制作板のローダーがあるから、
URLリンク(gmdev.xrea.jp)
とかにアップしてみて
45:名前は開発中のものです。
12/08/01 23:08:42.58 B/JSzTKU
>>43>>44は>>41あて
46:名前は開発中のものです。
12/08/01 23:36:52.21 vzUV4+G4 BE:606447533-2BP(1)
sssp://img.2ch.net/ico/dokuo1.gif
>>45
URLリンク(gmdev.xrea.jp)
アップロードしました。
DLしたら報告おねです
なかにあるREADに一応少し書いてあります。
よろしくお願いします。
47:45
12/08/02 00:19:57.63 z+uN7cKl
dlしました がファイル多すぎてどれかわからないです。
シンプルな条件で試してるのかと思った。
ここまで多いとどれがわるいかわかりづらいと思うんですけど。
48:名前は開発中のものです。
12/08/02 00:40:52.92 IPIY/8oE BE:4851576498-2BP(1)
sssp://img.2ch.net/ico/dokuo1.gif
>>47
すみません。
本当にシンプルな方法で知りたいのですが、
InputManagerにFire1などの操作を登録してキーを割り当て、
scriptでそれを使うためには何をしたらいいでしょうか?
script例:if(Input.GetButtonDown("Fire1")){}
長い時間ありがとうございます。
49:45
12/08/02 00:40:57.03 z+uN7cKl
URLリンク(forum.unity3d.com)
GetKey とGetButtonじゃ違うってだけらしいよ
inputのとこのnameで指定するならGetButtonだって
こんなのに気づかずすみません
50:名前は開発中のものです。
12/08/02 00:57:38.47 IPIY/8oE BE:269532522-2BP(1)
sssp://img.2ch.net/ico/dokuo1.gif
あ、できました!
こんな単純なところでつまづいてるなんて。。。
ありがとうございます!!
51:名前は開発中のものです。
12/08/02 01:21:05.02 z+uN7cKl
>>50
それは何よりです。
>50に気づかず、メール送ってしまいました。それは無視してください
そこにも書いたけど、コンソールにエラーなり警告が大抵出ます。
window>コンソールで開きぱなしにして置いた方がいいですよ。
今回はGetKeyにしてたみたいですが、コンパイルは通るけどそんなキーないよってコンソール上で言ってくれますから。
52:名前は開発中のものです。
12/08/02 06:44:18.20 rEpAXm8E
iOS用ゲーム作ってるんだが、なんかタッチ入力が
数フレーム遅れて感知されない?
アクションゲームだとこの遅れはマズイなぁ。
53:名前は開発中のものです。
12/08/02 09:11:41.34 ZJKkySgj
>>27
もう解決してるのかもしれんが一応
eの手前で丸めるってのが何をしてるのか分からんかったが
e付いてるのって指数標記だから
2.091013e-05だったら数値としては0.00002091013ってところだろ
小数点以下3桁とかなら0でいいと思うんだが
54:名前は開発中のものです。
12/08/02 11:54:40.83 0jUi//rM
>>42
試してないけどもMathf.Lerpで代用できるみたい?
URLリンク(answers.unity3d.com)
さくっと見ただけなので、見当違いだったらすまん。
55:名前は開発中のものです。
12/08/02 12:54:35.16 u7Ky33VI
確実に見当違い
元々質問者も何を聞きたいのかわかってないっぽいが
毎フレーム現在の回転角に+60度ずつ足せばいいのに
どこかの基準点から自分で60度xNを計算してるっぽい
無駄な努力
56:名前は開発中のものです。
12/08/02 14:47:26.29 rhNtS2Ws
複数のオブジェクトをくっつける場合ってどういう手法がありますか?
hinge joint っていうのがあるらしいんですが、オブジェクトの結合方法(方向とか)に関するパラメータが分かりません
57:名前は開発中のものです。
12/08/02 15:44:52.93 2DAmCHok
>>54
>>55
レスありがとうございます。
自分のイメージとしては…
Quaternion.Slerp( 現在のrotaion, 現在のrotaion+900度, deltaTime );
みたいなことがやりたかったのです。
調べてみたらそもそもQuaternionでは360度以上は表現できないっぽいので
上記のように一発でやるのは無理ぽいことがわかりました。
そこで >>54のリンクを参考にMathf.Lerpで小刻みに合成していく感じで実現できました!
基本的に >>55のような感じなのですが、対象オブジェクトが既に別回転かかっているためにQuaternionで合成処理しています。
function Update(){
rollDegree = Mathf.Lerp(rollDegree, 900, Time.deltaTime);
childchild.transform.rotation *= Quaternion.AngleAxis( rollDegree-rollDegree_old, Vector3.up);
rollDegree_old = rollDegree;
}
58:名前は開発中のものです。
12/08/02 18:20:27.59 +WCKY2Gf
>>57
それchildchildの親回転させれば楽じゃね?
59:名前は開発中のものです。
12/08/02 21:05:53.67 2DAmCHok
>>58
ぶっちゃけ親回転にすれば、オイラー角でできるので考えかたは楽ですねw
でも360度以上回転を考えるとやっぱり>>57と似た感じにはなってしまうかと。
(childchildって名前からして既に階層深めなので更に増やしたくない、って気持ちもありました…)
60:名前は開発中のものです。
12/08/02 21:28:22.57 d5ejNeK9
Unity一通りいじってドラッグだけで色々動かせるのはわかったんですけど
初めてスクリプトに直面したのですが、JavaScriptとC#の2種類使えるらしいですが
スクリプトはどっちを使った方がメリットが大きいとかあるのでしょうか?
61:名前は開発中のものです。
12/08/02 21:54:55.06 CuYBLPxy
迷わずC#
62:名前は開発中のものです。
12/08/03 12:07:52.27 wlTzK8vF
>>59
一応参考までに言っておくけど
0度と360度の回転クオータニオンは同じ値で
今回の場合900度は180度と同じ意味だから0~180度の補間という結果になっていたんだよ
ついでに0~360の値にするには value % 360.0f で
C言語のfmodと同じ値が得られるよ
>>61
簡単なテストならJavaScript
がっつりやりたいならC#
JavaScriptの方が楽だが、C#把握してたほうが効率のいいスクリプトを書けるので
それだったら最初からC#でいいじゃんという結論に至ったよ