- 1 名前:名前は開発中のものです。 mailto:sage [2012/07/28(土) 10:32:12.62 ID:2vSbb4cs]
- 3Dゲームエンジン「Unity」の質問に優しく答えるスレです。
Windows/Mac用。JavaScript/C#/Booといった汎用言語を使用できるのが特徴です。 フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。 プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3他 次スレは>>970を踏んだ方が建てること。ダメなら>>980か>>990が建てて下さい。 ■本スレ 【3Dゲームエンジン】Unity総合スレッド15 toro.2ch.net/test/read.cgi/gamedev/1340097261/ ■Unity 2ch Wiki(まとめ、過去ログ、リンク集) www24.atwiki.jp/unity2ch/ ●リンク ・Unity(日本公式サイト) unity3d.com/japan/ ・ユーザーガイド&リファレンス unity3d.com/support/documentation/ (日本語訳) ws.cis.sojo-u.ac.jp/~izumi/Unity_Documentation_jp/Documentation/Manual/ ・チュートリアル unity3d.com/support/resources/tutorials/ ・FAQ answers.unity3d.com/index.html ・Unityのスクリプト公式 unity3d.com/support/documentation/ScriptReference/index.html ・MSDN msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
- 25 名前:名前は開発中のものです。 mailto:sage [2012/08/01(水) 12:17:01.06 ID:dcDzx35c]
- 丸めればおk
- 26 名前:名前は開発中のものです。 mailto:sage [2012/08/01(水) 12:17:40.41 ID:3QM2TZ/V]
- >>22
>>23がいってくれたように複数指定するか "position"を使ってベクトル指定すればいいよ
- 27 名前:名前は開発中のものです。 mailto:sage [2012/08/01(水) 12:25:07.61 ID:ZyZQs6PU]
- >>25
e の手前で丸めると結構大きく位置が変わっちゃうんですよ。 transform.localEulerAngles.x = e がついたまま; ってやるとStringは駄目だよって怒られるし…
- 28 名前:名前は開発中のものです。 [2012/08/01(水) 12:34:01.84 ID:GJiIkm+P]
- >>23
うろ覚えですまん、 Vector3 hogePos = new Vector3(hogeX, hogeY, 1.0f); iTween.MoveTo(GO , hogePos , ・・・); こんな感じじゃだめなんだっけか?hogeXとhogeYがそれぞれ動かしたい方向ね。
- 29 名前:名前は開発中のものです。 mailto:sage [2012/08/01(水) 13:16:08.43 ID:YbJjPs8r]
- >>27
eついてても数値扱いだよ。 stringはダブルクオートで囲む必要があるじゃん。
- 30 名前:名前は開発中のものです。 mailto:sage [2012/08/01(水) 13:21:53.52 ID:6n/zbPfq]
- >>27
JAVAで書いてて型宣言していないとか? あとはダメ元でキャストしてみる。
- 31 名前:名前は開発中のものです。 mailto:sage [2012/08/01(水) 13:56:56.37 ID:81pqrVTL]
- >>23
>>26 >>28 レスありがとうございます。 x,y同時に動かすことは動かすのですが 放物運動ということで、y方向には重力風に、x方向は減衰風に、と それぞれ別のイージングをほどこしたいのです。 yは"easetype":iTween.EaseType.easeInQuad xは"easetype":iTween.EaseType.easeOutSine とパラメータを設定したかったりします。 わかりにくくてすみません><; これら同時に適用する方法等ありますでしょうか…。
- 32 名前:名前は開発中のものです。 mailto:sage [2012/08/01(水) 14:21:32.69 ID:RmACwW35]
- iTween詳しくは知らんが
MoveUpdateとかで出来るんじゃないの?
- 33 名前:名前は開発中のものです。 mailto:sage [2012/08/01(水) 15:07:33.95 ID: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 名前:名前は開発中のものです。 mailto:sage [2012/08/01(水) 16:41:25.82 ID:81pqrVTL]
- >>32
>>33 レスありがとうございます。 いろいろ試してもみたところ、iTweenで座標がいじられる場合は、軸指定がなくても 座標はVector3で更新されるらしく、途中で割り込んで書き換えても、結局そのVector3で上書きされるみたいでした。 なので、空の親をつくるのが良いっぽいですね。 forumとかも見てみたらそのやり方でやるしかないっぽいでした。 answers.unity3d.com/questions/42902/Multiple-iTween-MoveTos.html ありがとうございました。
- 35 名前:名前は開発中のものです。 [2012/08/01(水) 19:34:03.62 ID: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のようにスクリプトを動かしたいです。 よろしくお願いします。 ws.cis.sojo-u.ac.jp/~izumi/Unity_Documentation_jp/Documentation/Manual/Input.html hamken100.blogspot.jp/2012/05/unity-3.html docs.unity3d.com/Documentation/ScriptReference/KeyCode.html ここは一応目を通しました。
- 36 名前:名前は開発中のものです。 mailto:sage [2012/08/01(水) 20:24:21.99 ID:B/JSzTKU]
- >>35
ゲーム内でキーを変えるってことだよね?ctrlのところをaとかでも作動するようにしたいと。 調べたらまだその機能ないからfeedbackで機能実装に投稿してってさ。 answers.unity3d.com/questions/55278/Modifying-properties-of-a-buttonName.html feedback.unity3d.com/unity/all-categories/1/hot/active/ingame-key-remapping 単にキーを増やしたいだけなら、sizeを増やすか既存のを変更して、Nameにselect1を入力すれば >35の二行目の"f"を"SELECT1"に変えればよくなる。 キーボードなりジョイスティックのどのボタンとつなげるかはinput inspectorのpositive ButtonのとこかJoy Numに書けばいい。 手元のをみてほしいんだけど、Fire1のとこはNameがFire1でPositive Nameがleft ctrlでしょ。left ctrlでFire1が動くのはそういうわけ
- 37 名前:名前は開発中のものです。 [2012/08/01(水) 20:52:37.87 ID: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 名前:名前は開発中のものです。 mailto:sage [2012/08/01(水) 21:01:52.00 ID:B/JSzTKU]
- エラーがでたならエラー貼る。
スクリプトが動いてないのはどう検証してるの? 既存のctrlやspaceのもともとあるname(Fire1とかjumpとか)をselect1と書いてるところに書いたら記述は動くの? >>起動したあと、Inputのところでキー設定し直しても、し直さなくても の一文がよくわからないんだけど。 再生ボタン押さずにinputの設定変えて起動したあとは、キーボードを押すだけじゃないの?
- 39 名前:名前は開発中のものです。 [2012/08/01(水) 21:43:41.64 ID: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 名前:名前は開発中のものです。 mailto:sage [2012/08/01(水) 22:04:55.55 ID:B/JSzTKU]
- ゆうまいと思ってたんだけど、serectじゃなくてselectね…一応スペルミスはみといたほうが。
inputって10いくつかあるでしょ。それの初期からあるやつ、JumpとかFire1をselect1の代わりに書いてもらうつもりでした。 Jumpなどはうごくとわかってるからそれでもだめならどこに問題があるか範囲を狭められるでしょ ブレークポイント(IDEのデバッグ機能)使ってみるとかか、ただ環境の整備が大変だけど… Debug.Log()関数をifの前後実行文に書いてどこが実行されてるかみるとかかな? winアプリ用に出力ってのは、一々エクスポートしてるのか…インプットくらいなら三角形押したらだけでいい気がするけど
- 41 名前:名前は開発中のものです。 [2012/08/01(水) 22:36:24.56 ID: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 名前:名前は開発中のものです。 mailto:sage [2012/08/01(水) 22:57:30.72 ID:81pqrVTL]
- 質問いいでしょうか。
Update内で、Quaternion.Slerpとか使用してキャラクターを回転させているのですが 360度以上回転させることってできますでしょうか? Quaternionとかrotation周りを調べているのですが、指定方向に回転等はあるのですが 単純にくるくると複数回転さすにはどうしたらいいでしょうか?宜しくお願いします。 (例えば、900(=360x2.5)を指定したら2.5回転してくれたりとか…)
- 43 名前:名前は開発中のものです。 mailto:sage [2012/08/01(水) 23:01:11.61 ID:B/JSzTKU]
- ちょっとわかりませんね…話がかみ合ってない気もするし
uploaderにアップしてくれたら、どこがだめか探してもいいけど? フォルダをzipにしてもサイズがでかいから、ゲーム制作板の
- 44 名前:名前は開発中のものです。 mailto:sage [2012/08/01(水) 23:04:53.30 ID:B/JSzTKU]
- 途中送信
ゲーム制作板のローダーがあるから、 gmdev.xrea.jp とかにアップしてみて
- 45 名前:名前は開発中のものです。 mailto:sage [2012/08/01(水) 23:08:42.58 ID:B/JSzTKU]
- >>43>>44は>>41あて
- 46 名前:名前は開発中のものです。 [2012/08/01(水) 23:36:52.21 ID:vzUV4+G4 BE:606447533-2BP(1)]
- sssp://img.2ch.net/ico/dokuo1.gif
>>45 gmdev.xrea.jp/big/index.php?no=49 アップロードしました。 DLしたら報告おねです なかにあるREADに一応少し書いてあります。 よろしくお願いします。
- 47 名前:45 mailto:sage [2012/08/02(木) 00:19:57.63 ID:z+uN7cKl]
- dlしました がファイル多すぎてどれかわからないです。
シンプルな条件で試してるのかと思った。 ここまで多いとどれがわるいかわかりづらいと思うんですけど。
- 48 名前:名前は開発中のものです。 [2012/08/02(木) 00:40:52.92 ID:IPIY/8oE BE:4851576498-2BP(1)]
- sssp://img.2ch.net/ico/dokuo1.gif
>>47 すみません。 本当にシンプルな方法で知りたいのですが、 InputManagerにFire1などの操作を登録してキーを割り当て、 scriptでそれを使うためには何をしたらいいでしょうか? script例:if(Input.GetButtonDown("Fire1")){} 長い時間ありがとうございます。
- 49 名前:45 mailto:sage [2012/08/02(木) 00:40:57.03 ID:z+uN7cKl]
- forum.unity3d.com/threads/81798-Input-not-found
GetKey とGetButtonじゃ違うってだけらしいよ inputのとこのnameで指定するならGetButtonだって こんなのに気づかずすみません
- 50 名前:名前は開発中のものです。 [2012/08/02(木) 00:57:38.47 ID:IPIY/8oE BE:269532522-2BP(1)]
- sssp://img.2ch.net/ico/dokuo1.gif
あ、できました! こんな単純なところでつまづいてるなんて。。。 ありがとうございます!!
- 51 名前:名前は開発中のものです。 mailto:sage [2012/08/02(木) 01:21:05.02 ID:z+uN7cKl]
- >>50
それは何よりです。 >50に気づかず、メール送ってしまいました。それは無視してください そこにも書いたけど、コンソールにエラーなり警告が大抵出ます。 window>コンソールで開きぱなしにして置いた方がいいですよ。 今回はGetKeyにしてたみたいですが、コンパイルは通るけどそんなキーないよってコンソール上で言ってくれますから。
- 52 名前:名前は開発中のものです。 [2012/08/02(木) 06:44:18.20 ID:rEpAXm8E]
- iOS用ゲーム作ってるんだが、なんかタッチ入力が
数フレーム遅れて感知されない? アクションゲームだとこの遅れはマズイなぁ。
- 53 名前:名前は開発中のものです。 mailto:sage [2012/08/02(木) 09:11:41.34 ID:ZJKkySgj]
- >>27
もう解決してるのかもしれんが一応 eの手前で丸めるってのが何をしてるのか分からんかったが e付いてるのって指数標記だから 2.091013e-05だったら数値としては0.00002091013ってところだろ 小数点以下3桁とかなら0でいいと思うんだが
- 54 名前:名前は開発中のものです。 mailto:sage [2012/08/02(木) 11:54:40.83 ID:0jUi//rM]
- >>42
試してないけどもMathf.Lerpで代用できるみたい? ttp://answers.unity3d.com/questions/29505/jerky-rotation-when-using-quaternionslerp-on-rotat.html さくっと見ただけなので、見当違いだったらすまん。
- 55 名前:名前は開発中のものです。 mailto:sage [2012/08/02(木) 12:54:35.16 ID:u7Ky33VI]
- 確実に見当違い
元々質問者も何を聞きたいのかわかってないっぽいが 毎フレーム現在の回転角に+60度ずつ足せばいいのに どこかの基準点から自分で60度xNを計算してるっぽい 無駄な努力
- 56 名前:名前は開発中のものです。 mailto:sage [2012/08/02(木) 14:47:26.29 ID:rhNtS2Ws]
- 複数のオブジェクトをくっつける場合ってどういう手法がありますか?
hinge joint っていうのがあるらしいんですが、オブジェクトの結合方法(方向とか)に関するパラメータが分かりません
- 57 名前:名前は開発中のものです。 mailto:sage [2012/08/02(木) 15:44:52.93 ID: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 名前:名前は開発中のものです。 mailto:sage [2012/08/02(木) 18:20:27.59 ID:+WCKY2Gf]
- >>57
それchildchildの親回転させれば楽じゃね?
- 59 名前:名前は開発中のものです。 mailto:sage [2012/08/02(木) 21:05:53.67 ID:2DAmCHok]
- >>58
ぶっちゃけ親回転にすれば、オイラー角でできるので考えかたは楽ですねw でも360度以上回転を考えるとやっぱり>>57と似た感じにはなってしまうかと。 (childchildって名前からして既に階層深めなので更に増やしたくない、って気持ちもありました…)
- 60 名前:名前は開発中のものです。 mailto:sage [2012/08/02(木) 21:28:22.57 ID:d5ejNeK9]
- Unity一通りいじってドラッグだけで色々動かせるのはわかったんですけど
初めてスクリプトに直面したのですが、JavaScriptとC#の2種類使えるらしいですが スクリプトはどっちを使った方がメリットが大きいとかあるのでしょうか?
- 61 名前:名前は開発中のものです。 mailto:sage [2012/08/02(木) 21:54:55.06 ID:CuYBLPxy]
- 迷わずC#
- 62 名前:名前は開発中のものです。 mailto:sage [2012/08/03(金) 12:07:52.27 ID:wlTzK8vF]
- >>59
一応参考までに言っておくけど 0度と360度の回転クオータニオンは同じ値で 今回の場合900度は180度と同じ意味だから0〜180度の補間という結果になっていたんだよ ついでに0〜360の値にするには value % 360.0f で C言語のfmodと同じ値が得られるよ >>61 簡単なテストならJavaScript がっつりやりたいならC# JavaScriptの方が楽だが、C#把握してたほうが効率のいいスクリプトを書けるので それだったら最初からC#でいいじゃんという結論に至ったよ
|

|