[過去ログ] 【3Dゲームエンジン】Unity質問スレッド29 [無断転載禁止]©2ch.net (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
89(1): 名前は開発中のものです。 [] 2017/05/26(金) 16:54:28.58 ID:nZys6g5+(1/2) AAS
 本を読んでわからないコードが出てきたので質問させてください 
 Sceneに、ObjectState.csというスクリプトをアタッチしたCubeを3つ 
 何もアタッチしてないCapsuleが1つあります 
  
 GameObject[] goArray = (GameObject[]) 
 GameObject.FindObjectsOfType (typeof(GameObject)); 
 foreach (GameObject go in goArray) { 
 ObjectState z = go.GetComponent<ObjectState> (); 
 if (z == null || z == this) {  
 continue;  
 } 
 //処理 
 } 
  
 まず1行目なんですが、GameObject[]型へのキャストの型を、GameObject型にするとエラーになるのはなんででしょうか。 
 error CS0030: Cannot convert type `UnityEngine.Object[]' to `UnityEngine.GameObject' 
 GameObject[]にGameObjectを代入が制限されるケースってあるんですか? 
 それと、4行目のコードでgoArrayの要素にObjectStateコンポーネントがアタッチされてるか調べてると書いてあったんですけど、 
 これはgoにObjectStateコンポーネントを追加して代入してるふうにしか読めません。 
 しかしplayボタンを押すと、CapsuleにObjectStateコンポーネントは追加されずに本に書いてあるコード通りに動きます。 
 どなたか回答お願いします。 
90(1): 名前は開発中のものです。 [sage] 2017/05/26(金) 17:10:47.06 ID:7jTUf7Xw(1) AAS
 >>89 
 >GameObject[]型へのキャストの型を、GameObject型にするとエラーになるのはなんででしょうか。 
  
 ポインターとポインターのポインターでは型が異なるのは当然。 
 なぜ型が異なるのか? という所まで知りたければ、もっと専門的な書籍を当たる方がいい。 
  
 >代入してるふうにしか読めません。 
  
 存在しないTypeをGetComponentで指定するとnullが返るので、 
 nullがzに代入されたかどうかで存在の有無が把握できる。 
91: 名前は開発中のものです。 [sage] 2017/05/26(金) 17:15:29.16 ID:AXnIDVki(1) AAS
 goとかいう命名をするやつとは絶対に仕事しないわ俺 
92: 名前は開発中のものです。 [] 2017/05/26(金) 17:50:02.94 ID:nZys6g5+(2/2) AAS
 >>90 
 getcomponentとaddcomponentをごっちゃにしてました。 
 ポインターというのは今初めて知ったのでこれから調べてみます。 
 ありがとうございました。 
93: 名前は開発中のものです。 [] 2017/05/26(金) 17:53:29.37 ID:7R/advAH(1) AAS
 shaderの質問なのですが 
 CanvasとかuGUIを使わずに、透過のあるテクスチャをマスクにしたshaderってどこかに落ちてないですか? 
 もうshaderわからな過ぎてお手上げなんです 
94: 名無し@キムチ [] 2017/05/26(金) 19:35:21.43 ID:CvEXN/0z(1/2) AAS
 >>74やはり置いてみないとわかりませんか。ベテランのみなさまなら即座に判断できるものと思っておりました。 
 これは当方の愚問によるミステイクというやつですね。今回は質問の仕方のためになりました。 
 今回はありがとうございました!! 
95: 名前は開発中のものです。 [sage] 2017/05/26(金) 19:48:16.90 ID:ZTykTfkv(1) AAS
 皮肉風な文章も、もうすこし勉強しましょう 
 一読では気付き辛く、後からだんだん腹が立つというのが理想です 
 読んで直ぐに皮肉だと気付かれるようでは、ただの捨て台詞になってしまいます 
96(1): 名無し@キムチ [] 2017/05/26(金) 19:51:05.12 ID:CvEXN/0z(2/2) AAS
 >>7878(1): 名前は開発中のものです。 [sage] 2017/05/25(木) 22:56:57.23 ID:NCNqp1Eh(1) AAS
 >>72 
 想定してるプラットホームも書かずにその質問に答えることは困難です 
 計算負荷やメモリ負荷ってのはマシンパワーの問題なので 
 あなたの望んでいる"リアル"がどの程度の"リアル"か分かりません 
 すべてはバランスです 
 どういう層を狙った戦略を取りたいのですか?  
どういう層とかプラットホームとかはまだわかりません。そこまでは勉強できていません。 
 ただオブジェクトが増えてきたので、心配になって質問したのですが、愚問だったようですね。 
 今回は質問の仕方のためになりました。 
 今回はありがとうございました!! 
97: 名前は開発中のものです。 [sage] 2017/05/26(金) 19:54:00.18 ID:tgWUf86T(1) AAS
 とりあえず罰ゲームとしてPC止まる迄生やして 
 ?何本まで生やせたのか 
 ?PCスペック 
 ?と?の報告よろすこ 
98(1): 名前は開発中のものです。 [sage] 2017/05/26(金) 21:03:41.48 ID:fOtYWH1p(1) AAS
 ゲーム作りにも煽りにも才能のない人が降臨されたと聞いて飛んできましたあ 
99: 名前は開発中のものです。 [sage] 2017/05/26(金) 21:10:38.17 ID:y5p9W3o/(2/3) AAS
 >>98 
 飛べるってことは自分の事は「ワシ」って言うの? 
100: 名前は開発中のものです。 [sage] 2017/05/26(金) 21:29:50.25 ID:iZk/z4+6(1) AAS
 自分100ゲットいいすか?wwwww 
 イクイクイクイクンアーッwwwwwwwwww 
101: 名前は開発中のものです。 [sage] 2017/05/26(金) 22:27:26.36 ID:wnQag6SU(1) AAS
 私の戦闘力は530000本です 
 ですがもちろんフルパワーで植える気はありませんからご心配なく… 
102: 名前は開発中のものです。 [sage] 2017/05/26(金) 23:10:31.98 ID:ikw7zEvf(1/3) AAS
 3Dレースゲームの 
 解凍 
103: 名前は開発中のものです。 [sage] 2017/05/26(金) 23:11:41.94 ID:ikw7zEvf(2/3) AAS
 書き込みミスりました。すみません。 
  
 3Dレースゲームの挙動について質問させてください。 
  
 コースのプレハブをタイル状に配置して、その上を走らせているのですが、 
 見た目上は隙間のないタイルの境目や細かな段差(縁石)で引っかかったり、跳ねてします。 
 また、傾きが一定でない坂を上った際にも引っかかってしまいます。 
  
 自分で調べてはみましたが、有効な解決方法が見つかりませんでした。 
 引っかからず、スムーズに移動させるにはどうすればよいでしょうか。 
104(1): 名前は開発中のものです。 [sage] 2017/05/26(金) 23:13:22.77 ID:ikw7zEvf(3/3) AAS
 連投すみません。改行多すぎたので、分割しました。 
 ・プレイヤー(車) 
 Sphere ColliderをAddForceで移動。Wheel Colliderは不使用 
 RigidbodyのCollision DetectionはContinuous Dynamic 
  
 ・マップ(コース) 
 サーキット場のような縁石付きのコースをタイル状に配置 
 縁石は角ばっている。一部に坂道やジャンプ台がある 
 Mesh Colliderを設定、Rigidbodyはなし 
  
 ■試してダメだったこと 
 ・コースのMeshColliderをBoxColliderに変える ⇒跳ねたり、引っかかってしまいます。 
 ・Collision DetectionをDiscreteにする ⇒引っかからくなりましたが、たまにマップを抜けてしまいます 
 ・RigidbodyのFreeze Position Yを使う ⇒跳ねなくなりましたが、段差に引っかかり、坂道を登れなくなってしまいました。 
 ・RaycastHitで地面の法線を取得して、プレイヤーを段差方向に傾ける ⇒坂道に沿って走りますが、跳ねたり、引っかかってしまいます。 
 ・地上にいる時、地面方向にベクトル加算する ⇒跳ねなくなりましたが、引っかかってしまいます 
  
 ■やり方がわからないもの 
 ・地面に引っかかりそうなとき、プレイヤーを浮かせる ⇒「引っかかる」「引っかかりそう」の判定の仕方が分かりません。 
  
 CharacterControllerを使えば上の問題自体は解決するのですが、 
 加速の挙動やぶつかった時の挙動を考えると、できればRigidbodyでなんとかしたいです。 
 どなたかご回答をお願い致します。 
105(1): 名前は開発中のものです。 [sage] 2017/05/26(金) 23:24:52.04 ID:y5p9W3o/(3/3) AAS
 えーとなんだっけ?マテリアルで摩擦をどうとかすれば? 
106(1): 名前は開発中のものです。 [sage] 2017/05/26(金) 23:57:48.27 ID:MLkUNMVD(3/3) AAS
 >>104 
 同じくレースゲームを作っている者です。 
  
 こちらのサイトの「オブジェクトの操作に関するTips」に載っているもののどれかで 
 ピッタリくっつけるように試してテストしてみてください 
 外部リンク:tsubakit1.hateblo.jp 
  
 ちなみに車は最高速度どこまでやる予定ですが? 
 150km/h以下までなら今のやり方で大丈夫ですが 
 それを超えるような場合、特に200km/hを超える場合は 
 段差などの地面の凸凹にシビアに反応しはじめます 
  
 その場合はWheel Colliderを使った方が楽な可能性が出てきます 
 Wheel Colliderには地面との衝撃を吸収するバネの項目があります 
 ただし、この項目を適切に設定するのがまた苦戦しますが 
107(1): 名前は開発中のものです。 [sage] 2017/05/27(土) 00:00:38.91 ID:P1pAgIhK(1/3) AAS
 >>96 
 ネタだと思っていましたが違うようなので 
 こう考えて見てください。 
  
 あなたのPCはPS4並の性能を持っているとします。 
 あなたのPCでサクサク動くゲームでもPS2並のPCでは当然重くなります。 
 停止する事もあるでしょう。 
 PCは人によって性能がバラバラです。 
  
 スマホも同じです。 
 最近発売されているAndroid7.0機種やiPhone7でサクサク動くゲームでも 
 Android4やiPhone5では重くなります。 
  
 他の方が説明している「ターゲットデバイス」というのは 
 「iPhone5でもサクサク動くように作る」みたいに 
 ゲームを作り始める時に基準となる性能を自分の中で決めて制作することを言います。 
  
 尚、リアルな人(ユニティーちゃん)を1つ表示しただけの場合 
 Andorid2.3のCPU1.0GHzの1つコアの機種では15fpsしかでませんでした。 
 Andorid4.4のCPU1.6GHzの4つコアの機種では30fpsしかでませんでした。 
 Corei7のCPU2.7GHzの4つコアのパソコンでは60fps以上でました。 
 ※市販のゲーム速度は60fpsが基本です(稀に30fpsもあります) 
 ※10fpsと60fpsでは10fpsの方が"遅い"です 
  60fpsの1/6の速度だと思ってください。具体的には画面がカクカクとコマ飛びします 
  
 そしてゲームの重さですが、フィールドに配置している木の総本数ではなく 
 実際に画面に表示されている本数が影響されます。 
 例えば100本配置しても遠い場所の木が50本表示されていないようでしたら 
 50本分しか処理していません。 
 さらにメッシュ数が多いと重さに影響してきます。 
  
 以上を参考に勉強を頑張って見てくださいな 
108(1): 名前は開発中のものです。 [sage] 2017/05/27(土) 00:34:00.46 ID:3JRiCsr1(1) AAS
 >>105 
 ありがとうございます。 
 マテリアルを追加して設定を色々試してみましたが、上記の問題は解決できませんでした。 
  
 >>106 
 ありがとうございます。 
 いただいたリンク先の方法でタイルを配置し直してみましたが、 
 再配置前とインスペクターの座標が変わらなかったので、配置位置が原因ではないのかもしれません。 
  
 現状は150Km/hくらいですが、 
 300km/h超の速度まで出ることを想定しているので、 
 WheelColliderを使用した方が手っ取り早いのでしょうか。。 
  
 マリオカートやリッジレーサー等の非現実的な挙動を実装する場合、 
 どれがベターな方法になるんでしょうか。 
 ・CharacterControllerを使う 
 ・WheelColliderを使う ⇒ 試していませんが、非現実挙動がやりにくいというのを見て、敬遠しています 
 ・どちらも使わず、SlopeLimitやSuspensionの動作を自前で用意する ⇒ こちらは参考になるサイトが見つかりませんでした 
109: 名前は開発中のものです。 [sage] 2017/05/27(土) 00:34:25.99 ID:aM4gvSaY(1) AAS
 ユニティーちゃんのspringboneを他キャラに移植して遊んでいるのですが、ボーンの当たり判定のコライダー(黄色い球)が足元に来てしまいます。これをそれぞれのボーンの中心に持ってくるにはどうすれば良いのでしょうか? 
  
 Blender上ではオブジェクトの原点は重心にあるのですが… 
110: 名前は開発中のものです。 [sage] 2017/05/27(土) 01:19:17.55 ID:b376KWjm(1) AAS
 公式チュートリアルで久しぶりにPlus必須じゃないのが来てた 
 もうPersonal民は見捨てられたかと思った・・・ 
111: 名前は開発中のものです。 [sage] 2017/05/27(土) 08:49:03.90 ID:9clCdotg(1) AAS
 なにPlus必須って。plusでないとひらけないとかあるの? 
112(1): 名前は開発中のものです。 [sage] 2017/05/27(土) 10:02:32.17 ID:P1pAgIhK(2/3) AAS
 >>108 
 自分は現実的な挙動なレースゲームを作っているので 
 非現実系のベターはちょっとわからないですね申し訳ないです 
  
 初代マリオカート的な動きを再現する場合 
 ・物理エンジンを使いつつ、無理矢理細工を施すやり方 
 ・物理エンジンを一切使わずに気合でtransform.positionを自分でそれっぽく制御する 
 どっちがベターなのか、これは作った事ある人にしかわからなさそうです 
  
 RigidBodyを使うと物理エンジンが働くので 
 カーブとかで速度と遠心力の関係を現実っぽく計算されるので 
 結局現実的な挙動になります。 
 WheelColliderはRigidBodyに車用の機能を追加したものと思っていいです。 
 WheelColliderもRigidBodyです 
 ちょっと忘れていますがCharacterControllerもRigidBody必要じゃなかったでしたっけ? 
  
 ちなみに仮に0.01の段差があったとして 
 150kmだと少し跳ねる程度だった場合300kmだとその20倍くらい跳ねます(苦笑) 
 これはRigidBodyが現実的に計算してしまうせいです 
  
 自分もだいぶ苦戦しながらやっています(苦笑) 
113(1): 名前は開発中のものです。 [sage] 2017/05/27(土) 10:48:24.56 ID:+tJxLq5C(1) AAS
 馬鹿の溜まり場質問スレ 
 こんなとこ見るより飲み会に行きなよ 
 情報だけじゃなく人脈が未来の君を助けてくれるよ 
上下前次1-新書関写板覧索設栞歴
あと 889 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.022s