1 名前:名前は開発中のものです。 [2015/04/19(日) 12:16:54.53 ID:Erl+lZnN.net] 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質問スレッド16 peace.2ch.net/test/read.cgi/gamedev/1425192691/ ■本スレ 【3Dゲームエンジン】Unity総合スレッド26 peace.2ch.net/test/read.cgi/gamedev/1429375487/ ■Unity 2ch Wiki(まとめ、過去ログ、リンク集) www24.atwiki.jp/unity2ch/ ●リンク ・Unity(日本公式サイト) unity3d.com/japan/ ・ユーザーガイド&リファレンス japan.unity3d.com/developer/document/ ・チュートリアル japan.unity3d.com/developer/document/tutorial/ ・スクリプトリファレンス docs-jp.unity3d.com/Documentation/ScriptReference/ ・FAQ answers.unity3d.com/index.html ・MSDN msdn.microsoft.com/ja-jp/ms348103 ←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。 注意事項:アセットおじさんは優しく愛でましょう
1007 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 13:45:43.88 ID:6d9MVPBA.net] お前のオツムが弱くて理解出来なかったからって 悔しがんなよ
1008 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 13:46:13.08 ID:/NdS7CrW.net] >>959 Updateは負荷によって間引かれる(フレーム落ち)が、FixedUpdateは基本的に間引かれない ファンが回り始めたということはFixedUpdateに相当重い処理を入れたんだろう フレーム落ちしてもdeltaTimeで補完できる部分はUpdateに分割したほうがいいよ
1009 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 14:37:36.40 ID:Qx6QZuPl.net] >>963 >transform.position = Vector3.Lerp(moviePoint.position, startPoint.position, Time.deltaTime * speed) Lerpの使い方が悪い。第三引数で与える値は補間係数なので時間経過で0から1に変化させるようにする ついで言うと第一引数が開始位置で第二の方が目的位置だから逆になってるよ
1010 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 14:51:25.35 ID:hWrk7D/h.net] >>963 15秒かけたいならこうだろう。最初の方は多分関係ない。 public class Play : State{ publc Transform moviePoint; publc Transform startPoint; public float speed = 15.0f; float timePass=0f; public StateManager manager; pubic Play(StateManager SM){ manager = SM; } void StateUpdate(){ timePass+=Time.deltaTime; transform.position = Vector3.Lerp(moviePoint.position, startPoint.position, timePass/speed); }
1011 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 17:24:51.57 ID:yT7Nup/Q.net] >>965 キャラを追いかけるカメラはこんな感じの処理です。 もしかしてSlerpってすごい重いのですか? キャラはまっすぐ進ませてるはずなのに横にガクガク動いて見えるんですよねぇ public float distance = 5.0f;//被写体との距離 public float height = 3.0f;//被写体との高さ void freeCamera(){ //start freeCamera // Transform target = GameObject.FindWithTag("Player").transform;//被写体 // float distance = 5.0f;//被写体との距離 // float height = 3.0f;//被写体との高さ // float heightDamping = 2.0f;//大きくするとカメラがはやくついてくる // float rotationDamping = 3.0f;//大きくするとカメラがはやくついてくる float smoothTime = 5f; if (!target)return;//ターゲットがいないときはなにもしない Vector3 basePosition = target.position; basePosition -=target.forward*distance; basePosition +=target.up*height; // transform.position = Vector3.Slerp(transform.position,basePosition,smoothTime * Time.deltaTime); transform.position = Vector3.Lerp(transform.position,basePosition,smoothTime*Time.deltaTime); // transform.position = Vector3.Lerp(transform.position,basePosition,smoothTime*Time.deltaTime); //Vector3 targetVelocity = target.GetComponent<Rigidbody> ().velocity; //Vector3 targetVelocity = target.transform.forward; Quaternion wantedRotation = Quaternion.LookRotation(target.position-transform.position); // transform.rotation = Quaternion.Slerp(transform.rotation,wantedRotation,smoothTime*Time.deltaTime); transform.rotation = Quaternion.Lerp(transform.rotation,wantedRotation,smoothTime*Time.deltaTime); //end freeCamera }
1012 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 17:32:20.74 ID:hWrk7D/h.net] >>968 そういうカメラはLateUpdate()でやるべき、というのがUnityでの作法
1013 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 18:01:24.03 ID:ESSmrvBP.net] >>968 > ,smoothTime*Time.deltaTime); これの意図がイマイチ判らん 5.0f/Time.deltaTime になるわけだけどdeltaTimeは前フレームからの経過時間だから 補間の係数Tに使えるものじゃなくね fixedupdateで安定したのは試してないけど定期的に呼ばれるからdeltaTimeのブレがなくて 変な数値で固定できていたからでは? そもそもどういう挙動を意図してるかどうかわからんけど、それをアルゴリズム化できていないという コーディング能力の問題じゃないですかねこれ
1014 名前:名前は開発中のものです。 [2015/06/12(金) 18:15:26.45 ID:yT7Nup/Q.net] >>970 キャラクター側 private Rigidbody rigid; private int sppedForce = 10; public float maxSpeed = 20; private GameObject player; // Use this for initialization void Start ()
1015 名前:{ //start Start rigid = GetComponent<Rigidbody>(); player = GameObject.FindWithTag ("Player"); //end Start } void FixedUpdate() { //start FixedUpdate if(rigid.velocity.magnitude<maxSpeed && !Input.GetKey("space") )rigid.AddForce(transform.forward*sppedForce); //end FixedUpdate } void Update () { //start Update float smoothTime = 5f; Vector3 wantedVector; wantedVector = player.transform.position-transform.position;/*操作できるやつ= new Vector3(Input.GetAxis ("Horizontal"),0,1);*/ Quaternion wantedRotation = Quaternion.LookRotation(wantedVector); //transform.rotation = Quaternion.Slerp(transform.rotation,wantedRotation,smoothTime * Time.deltaTime); transform.rotation = Quaternion.Lerp(transform.rotation,wantedRotation,smoothTime * Time.deltaTime); //end Update } 公式のsmoothCameraを参考にしていましたがおかしかったのですか。 全オブジェクトのUpdateのあとにLateUpdateが呼び出されるのでfreeCameraをLateで呼び出せばいいんですよね。 [] [ここ壊れてます]
1016 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 18:16:28.69 ID:yT7Nup/Q.net] ageちゃったよ・・・ごめんなさい
1017 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 18:45:53.98 ID:ESSmrvBP.net] >>971 おかしいかどうかは知らんが補間の係数Tが1以上の場合は終点側の値になり、結果的に補間が無意味。 想定している動きがわからない以上正しいかどうかの判断はこっちにできない カメラのがたつきが追尾したいgameobjectとカメラの実行順が問題だった場合はLateupdateで解決する
1018 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 19:06:29.22 ID:keOW9Bgo.net] いや、この補完の仕方は別におかしいって程のことじゃないよ。 FPSが高くなればなるほど補完にかかる時間が伸びるという意味で 安定しないのは確かなんだけどお手軽なやり方ではある。 公式のサンプルでも多用されてるし実際30FPS切るようじゃゲーム的に問題あるしね
1019 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 19:18:19.49 ID:yT7Nup/Q.net] >>973 みなさまありがとうございます。 すいませんエスパー状態になっていることに今気づきました。 やろうとしているのはRigidBodyをつけた状態でレースゲームのように動かすことで、 カメラは動かすキャラクターを滑らかに追いかけるようにしたいのです。 問題は挙動はだいたい合っているのに動かすとガタガタ動いて見えてしまうということです。 ノーパソなのでグラボのせいなんでしょうか。
1020 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 21:48:14.77 ID:/NdS7CrW.net] LateUpdateでカメラを移動しても解決しないの? グラボは関係ないと思うよ
1021 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 22:23:37.79 ID:yT7Nup/Q.net] LateUpdateからfreeCameraを呼び出すようにしたのですがカクついてる気がします。 ほかの人のゲームはカクつかないからグラボではないか。
1022 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 23:56:19.76 ID:FVgZS4sfO] >>961 丁寧な解説、ありがとうございます。 >そもそもMinMaxの設定値がキャラの大きさとか考慮しきれてないのではないか いずれの値も、inspectorの値とあわせて、Debugで現在のpositionの値を表示しながら設定したので、大丈夫だと思います >あとUpdate()はFixedUpdate()と違った周期で実行されていて壁へのめりこみを 自動で押し返す機能を持ったRigidBodyはFixedUpdate()の周期で実行されているので FixedUpdate()でRigidBodyが押し返す→Update()で壁にめり込ませている ということに恐らくなってる。 正確にはRigidBodyの処理はFixedUpdate()の直後に実行されているはず FixedUpdateの中に、Input内容をAddForceで動きに反映し、 一定の閾値MinとMaxの中に収まるようにpositionに代入しなおしています(前述 960のスクリプト) ほかに考慮すべきことがあれば、ご指摘頂けると大変助かります
1023 名前:名前は開発中のものです。 mailto:sage [2015/06/13(土) 02:33:16.23 ID:PA0eND2Z.net] Unity5でPhotonCloudを使用するのにはどうすれば良いでしょうか? 公式を含むいくつか参考になるサイトを探したのですが、いずれも旧バージョンのPhotonでの解説で、 見本同様にプロジェクトを作っていくと必ず予期せぬエラー(弄ったScriptに関連される別Scriptがエラーを吐く) が発生してしまいます。 もしくは、オンラインPvPを目的とするツールがPhoton以外にオススメがありますでしょうか?
1024 名前:名前は開発中のものです。 mailto:sage [2015/06/13(土) 06:05:16.
] [ここ壊れてます]
1025 名前:93 ID:jvd/zf7/.net mailto: 少し強い力が加わっただけですぐバグるヒンジジョイントなんとかなりませんか? [] [ここ壊れてます]
1026 名前:名前は開発中のものです。 mailto:sage [2015/06/13(土) 06:38:28.84 ID:TnLsHvVv.net] やさ〜しく、そっとだ…そっと〜
1027 名前:名前は開発中のものです。 mailto:sage [2015/06/13(土) 11:34:36.87 ID:KlJyJN4K.net] >>979 unity3d.com/unity/whats-new/unity-5.1 Unityを応援するんだ
1028 名前:名前は開発中のものです。 mailto:sage [2015/06/13(土) 11:54:35.41 ID:wmUor49o.net] unity5.1にしてからmp3が使えません皆さんは使えますか?
1029 名前:名前は開発中のものです。 mailto:sage [2015/06/13(土) 16:11:05.18 ID:wXDfZgam.net] >>977 グラボなわけがないので実際に試してみた 原理的に秒間50回の加速度運動を秒間60回のLerp/Slerpで追跡するのは無理があるんだと思う ファンが回るのは別途最適化するとしてカメラの移動もFixedUpdateでやるのが正解だろうな ちなみにFixed Timestampを0.0166とかにしてもほぼ解決するが何のことかわからなければ無視してくれ
1030 名前:名前は開発中のものです。 mailto:sage [2015/06/13(土) 21:06:33.20 ID:0mG/EuFF.net] public class Kitei : MonoBehaviour { public void Test() } public class Hasei : Kitei { public void Test() } public class Jissi : Mono { var tes = new Hasei; tes.Test(); ★Hasei.Testがコールされる } これはなぜですか? ttp://ufcpp.net/study/csharp/oo_polymorphism.html#virtual によるとKitei.Testがコールされるのではないのですか? >どちらのメソッドが呼び出されるかは静的な型によって決定されます これの意味が分かりません
1031 名前:名前は開発中のものです。 mailto:sage [2015/06/13(土) 21:20:21.76 ID:wmUor49o.net] >>985 このページのどこにも暗黙的型指定のvarなんて出て来てないんじゃないの? KiteiのTest呼び出したいならKitei tesとしないとだめじゃない?
1032 名前:名前は開発中のものです。 mailto:sage [2015/06/13(土) 21:40:58.65 ID:W26rcz6T.net] >>985 virtual指定してないメソッドだと、例えば Kitei instance1 = new Kitei(); Hasei instance2 = new Hasei(); でそれぞれinstance1.Test()//Kiteiが実行、instance2.Test() //Haseiが実行 静的ってのはinstanceに何が入ってるかじゃなくてinstanceの宣言の方だな両式の最初のKiteiかHaseiか virtual指定してたら Kitei instance3 = new Kitei(); instance3.Test() //Kiteiが実行 Kitei instance4 = new Hasei1(); instance4.Test() //Hasei1が実行 Kitei instance5 = new Hasei2(); instance5.Test() //Hasei2が実行 みたいに親クラス宣言したインスタンスには派生クラスのインスタンスが代入できてその代入したものによって行動を変えるってこと
1033 名前:名前は開発中のものです。 mailto:sage [2015/06/13(土) 22:13:49.86 ID:DlmCg7k/.net] その流れで基底の方呼ばれたら継承の意味なんてないのでは…
1034 名前:名前は開発中のものです。 [2015/06/13(土) 23:17:58.27 ID:WSex0UOD.net] kiteiとかローマ字にするくらいなら日本語使え
1035 名前:名前は開発中のものです。 mailto:sage [2015/06/13(土) 23:32:09.07 ID:0mG/EuFF.net] ありがとうございます 色々デバッグで追ってみて意味とかそうなる理由は分かった気がします これを使うとどういうメリットがあるのかは未だによく分かってませんが・・・
1036 名前:名前は開発中のものです。 mailto:sage [2015/06/14(日) 11:44:53.46 ID:mEXxQzHQ.net] mac os x 10.10.2 で unityは5.0.0f4なのですが、 完全に新規のプロジェクトを作成し、 ゲームオブジェクトを作成し、 prefab化したオブジェクト(例えばこの画像のcube1) を再度読み込むと画像のように白くなってしまうのですが、 これは何が原因なのでしょうか? 本来であれば画像が出たり青いアイコンが表示されると思っているのですが、 何か違うのでしょうか?
1037 名前:名前は開発中のものです。 mailto:sage [2015/06/14(日) 11:46:20.14 ID:mEXxQzHQ.net] ttp://www.dotup.org/uploda/www.dotup.org367329.png 大変申し訳ありません、画像掲載忘れました Unity本なども買って読んでみたのですがいまいちこれについては 原因が分からずで…何卒宜しくお願いいたします。
1038 名前:名前は開発中のものです。 mailto:sage [2015/06/14(日) 11:
] [ここ壊れてます]
1039 名前:53:14.60 ID:DqFHCSwv.net mailto: ・再度読み込む の意味がちょっとわかりません ・どこに表示される画像ですか? [] [ここ壊れてます]
1040 名前:名前は開発中のものです。 mailto:sage [2015/06/14(日) 12:21:49.64 ID:mEXxQzHQ.net] >>993 さっそくの返信ありがとうございます。 Unityで作成したゲームオブジェクトを書きだし、 プロジェクトに読み込んでみると画面上では青いアイコンが出るという解説が マニュアルに載っていて、今度はたそのデータをprojectからシーン内、 (Sceneや同時にHierarchyへ)、ここへもう一度、projectへ読み込んだ アイコンを再度、読み込む作業をする、ということでシーンドラッグなどによる移動をすると、 結果的に読み込めず、表示も変化も特になかったのです。 そのままproject内に画像のアイコンが表示されているのみで、 この白いアイコンは書き出しなどは可能ですが選択してもinspector には情報が出てきませんでした。 この白いアイコンの意味がよく分かっていません。 何か別のものになってしまっているのでしょうか? 青いアイコンは出ないのでしょうか。 あるいは相性の問題で、数回繰り返したり 再起動したりすることで青いアイコンに変化することもありえますか?
1041 名前:名前は開発中のものです。 mailto:sage [2015/06/14(日) 12:51:02.07 ID:DqFHCSwv.net] 書き出しとか読み込みとかそのマニュアル(?)の用語なんすかね hierarchyにGameObjectを作る→Projectへそれをドラッグする これで青い箱のprefabが作られる Unityエディタを終了することでprefabが保存される(変な仕様だが) 再度Unityエディタを立ち上げる事で、白い箱=空のprefabになる現象が回避できると思う
1042 名前:名前は開発中のものです。 mailto:sage [2015/06/14(日) 15:20:23.31 ID:qdVSVdJE.net] SRPGみたいなヤツのフィールドって一つの大きなオブジェクトとして作ったら マス目移動の管理できないですよね? 一つ一つブロックのオブジェクトを作って、それを配置していく方がTagとかで 管理しやすいですよね?
1043 名前:名前は開発中のものです。 mailto:sage [2015/06/14(日) 17:37:42.25 ID:JUSis43h.net] >>982 TOEIC10点なんですが近いうちにアプデで何とかするみたいな話ですか?
1044 名前:名前は開発中のものです。 mailto:sage [2015/06/14(日) 18:09:49.90 ID:JUSis43h.net] >>996 マス目単位でのオブジェクトの生成はスクリプトに投げた方が綺麗でカッコイイ 生成地点を名前にしてあげたり、更には親オブジェクト(MapManagerみたいな空の作っておく)と親子関係にしてあげると Hierarchyもスッキリしてもっとカッコイイ マップデータを持たせて読み込ませるようにすると滅茶苦茶カッコイイ
1045 名前:名前は開発中のものです。 mailto:sage [2015/06/14(日) 18:57:05.23 ID:d4vFrbfY.net] >>997 TOEIC10点の取り方を教えてくれ 990点を取るより難しそう
1046 名前:名前は開発中のものです。 mailto:sage [2015/06/14(日) 19:11:32.10 ID:mEXxQzHQ.net] >>995 ありがとうございます。ちょっと詳しくないものでマニュアル通りにしか 作業できず、困っていました。 一応、prefabの保存は終了すれば当然青いアイコンのままなのですが、 それだとただデータを保存して再起動しただけという状態で、意味がありません。 やりたいこととしては、一度別のユニティプロジェクトに取り込むなどの作業、 あるいは同じユニティプロジェクト内に取り込むため、 プロジェクトの部分に取り込み、ヒエラルキーにアサインするということなのですが、 そのためにエクスポート(書き出し?w)して取り込むのはやはり不可能でした。 もうちょっとユニティ全体に詳しくなってから考えることにします。 色々なキッカケを与えて下さりありがとうございました。
1047 名前:名前は開発中のものです。 mailto:sage [2015/06/14(日) 20:37:20.99 ID:qdVSVdJE.net] >>998 今そのプロシージャルなパネルオブジェクト生成クラスを作ってるんですが もしステージ(城とか草原全体)を一つの大きな3Dオブジェクトで作ってもパネル単位の管理ができるなら パネル単位のオブジェクトを生成するより楽だとは思ったんです FFTは画像データ抜き出すと一つのオブジェクトとして実装しているようなんです でも、ステージ全体を一つのオブジェクトにしちゃうと、パネル単位のtagや位置管理が できないなと思ったんです
1048 名前:名前は開発中のものです。 mailto:sage [2015/06/14(日) 20:40:03.09 ID:DqFHCSwv.net] >>1000 プロジェクトから他のプロジェクトのprefab(というか参照のあるデータ)を利用する事はできない これは(たぶん)metaファイルはプロジェクトごとに管理される為でUnityの仕様 同一プロジェクト内ではシーンを切り替えて利用するのが普通 マニュアルってのが何か知らんけど公式の方で勉強した方がいいんじゃないかなと思う
1049 名前:名前は開発中のものです。 mailto:sage [2015/06/14(日) 20:48:26.32 ID:DqFHCSwv.net] >>1001 ゲームでは見た目と管理用の内部情報の「単位」が同じとは限らないです ぶっちゃけ絵が一切無くても内部情報だけでゲームの仕様は作れる FFTタイプのケースでも例外なく、見た目=モデルの形状側を内部情報のパネルの高さの段階や大きさなどの 「決まりごと」から外れないように設計しているだけです
1050 名前:名前は開発中のものです。 mailto:sage [2015/06/14(日) 20:57:45.77 ID:qdVSVdJE.net] >>1003 なるほど・・・すみません、ありがとうございました
1051 名前:名前は開発中のものです。 mailto:sage [2015/06/15(月) 00:50:22.10 ID:8YoXMrao.net] Androidにビルドをしようとしたところエラーが出てしまいました。 アセットのPhoton3Unity3Dというのを入れたのが原因のようなのですが、エラー回避する方法ございますでしょうか。 あるいはインポートしたアセットを消す方法ってありますでしょうか
1052 名前:名前は開発中のものです。 mailto:sage [2015/06/15(月) 02:05:00.26 ID:rN0TgCiv.net] >>963 です 皆さんの指導を元に 休日いっぱい頑張って見ましたが上手くいきませんでした。 遅くなりまして、すいません ご指導ありがとうございました
1053 名前:名前は開発中のものです。 [2015/06/15(月) 02:17:56.57 ID:BBlCm+mI.net] プログラム飽きてきたから、13HD買って絵描くわ。
1054 名前:名前は開発中のものです。 mailto:sage [2015/06/15(月) 03:10:59.21 ID:dIdsFnyx.net] でかいディスプレイ持ってるなら素直に板タブ買ったほうがいいぞ ゲームを操作するときにコントローラーを見ないように、ブラインドタッチのように、慣れれば手元を見る必要性も価値もない 画面はでかいほうがツールが置けるし液タブは視界に手が入ってきて邪魔 それにも慣れるがわざわざ高い金を出すほどいいものじゃない
1055 名前:名前は開発中のものです。 mailto:sage [2015/06/16(火) 00:17:25.74 ID:/yqIPzvo.net] https://www.youtube.com/watch?v=bBQQEcfkHoE&app=desktop この動画みたいな3D感をunityで出したいのですがどうすればよいでしょうか 画面と一致する最も手前の枠だけを動かさずに奥行きだけを変化させる?ようなやり方です
1056 名前:名前は開発中のものです。 mailto:sage [2015/06/16(火) 01:27:14.51 ID:43mdMv1q.net] 次スレでもっかい言って
1057 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。
1058 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています