[過去ログ]
【3Dゲームエンジン】Unity質問スレッド33 (1002レス)
【3Dゲームエンジン】Unity質問スレッド33 http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
215: 名前は開発中のものです。 [sage] 2017/12/28(木) 23:00:56.25 ID:mH5YII84 >>187 >>200 全部1フレーム内での出来事だったのか >>186 >>200 呼び出される順序の問題で、物理演算をまたいでしまうと、 その時点で1フレーム分の内容のズレが出ちゃうのが真相か・・・ http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/215
216: 名前は開発中のものです。 [sage] 2017/12/29(金) 09:19:21.34 ID:K0u5BC7r >>214 それはワープになるからな MovePosition使えば大丈夫だよ http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/216
217: 名前は開発中のものです。 [sage] 2017/12/29(金) 23:42:13.44 ID:qixlPtWp 初心者です。 2Dでジャンプアクションゲームを物理演算で製作中です。 ようやく左右への移動ができるようになったところです。 (Input.GetAxisをvelocityに代入しています) ジャンプの際に、お聞きしたい事があるのですが、 まず地面に接している判定をどうするのか、 ジャンプはvelocity変更でよいのか、AddForceの方がよいのか、 ボタンを押している時間に応じてジャンプを高くしたい (無制限に高くではなく、ジャンプ力には上限を設けたい) などを詳しく解説し
てあるサイトとかありますでしょうか? あるいは、ジャンプ動作のスクリプトに、定石・セオリーみたいのはあるのでしょうか? http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/217
218: 名前は開発中のものです。 [] 2017/12/30(土) 00:35:07.56 ID:5n68sL0m AddForceの方がいいよ、単純にジャンプだけだったら変わんないかもしれないけど他の動作と重なったときに融通がきかなくなる 設置してるかどうかはコリジョンを見れば良いんだよ ジャンプ系の処理は定石化してるから、Youtubeでしっかり頭に叩き込んだほうが良いよ 数値の上限については、ちゃんとC#らしい書き方ができるといいね http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/218
219: 名前は開発中のものです。 [sage] 2017/12/30(土) 09:26:09.43 ID:sj8HSsvd UNITYの定石としては、アセットを買うことですね http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/219
220: 名前は開発中のものです。 [sage] 2017/12/30(土) 14:20:42.17 ID:LpYIXbLi "物理演算"でやるならVelocityは基本使っちゃだめよ 物理演算を無視した移動だから見た目が物理っぽくなくなるよ キャラの操作制御はInput.GetAxisでもいいがCharacter Controllerを使えばisGroundというパラメーターで地面との接点判定できるよ http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/220
221: 名前は開発中のものです。 [sage] 2017/12/30(土) 16:10:37.30 ID:DH75+pHx >>217 初心者向けに 2D platformerというジャンプアクションゲームのアセット(無料)がある https://www.assetstore.unity3d.com/jp/#!/content/11228 あとはggれば解説してるとこがあったはず http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/221
222: 217です [sage] 2017/12/30(土) 23:14:59.07 ID:6xEuTupH この時間しかレスできず、大変すみません。 皆さん、いろいろアドバイス下さり、ありがとうございます。 >>218さん >>220さん velocityは直接変えない方がよいんですね。 AddForceでImpuseモードで変更することにしました。 >>219さん >>221さん アセットは魅力的に思っていましたが、導入方法が分からなかったのと、 基本有料と思って、二の足を踏んでいました。 無料のジャンプアセットあるのですね。ためになりました。 >>220さん Character Contro
llerは3D専用の機能かと思って触っていませんでした。 これから勉強します。 http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/222
223: 名前は開発中のものです。 [sage] 2017/12/31(日) 11:58:25.06 ID:YEuDj3bX 物理演算を使って、物理法則に則ったゲームを作成するのか、 物理演算を使って、既存型のゲームを作成するのか、 (コライダーは利用するが、動きは非物理) 物理演算を使わずに、既存型のゲームを作成するのか (旧来のゲームシステム) http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/223
224: 名前は開発中のものです。 [sage] 2017/12/31(日) 12:40:49.59 ID:YEuDj3bX positionの直接変更は、コライダーへの衝突計算が乱れる危険性あり MovePositionによるposition変更は、velocity変更に基づいているので、 比較的安全にコライダーとの衝突計算がなされる velocity変更を行わずに、全てAddForceで行った方が、 より自然な物理演算になるけど、velocityを0にするのが難しくなる AddForceでvelocityを0にしようと逆方向に力を与え続けると、 逆向きの加速度がついてしまうので、基本的にはDragで減速せざるを得ない http://mevius.5c
h.net/test/read.cgi/gamedev/1513643755/224
225: 名前は開発中のものです。 [sage] 2017/12/31(日) 13:07:55.13 ID:YEuDj3bX 2Dで地面との接触判定を行うのであれば、 ・IsTouching,IsTouchingLayers 他のコライダーやレイヤーとの接触を検出する方法 (全方向からの接触を検出してしまう) ・Physics2D.OverlapArea,Physics2D.OverlapBox 配置した矩形が接触したコライダーを検出する方法 (OverlapAreaとOverlapBoxは矩形の設定方法が異なる) ・Physics2D.Linecast 配置した線分が接触したコライダーを検出する方法 (RayCastとは異なり、直線ではなく長さを持つ線分) ・
Physics2D.BoxCast,Physics2D.RayCast 放射した直線が接触したコライダーを検出する方法 (BoxCastはRayCastの先端が矩形) IsTouching系は、Collider2D.(自分との判定)とPhysics2D.(2者間の判定)がある Cast系は投射方向を指定できるが、投射前に接触していると検出されないのが難点 LineCastやRayCastは線のため太さがなく、幅を持つコライダーでは複数本が必要 OverlapBoxと違って、Physics.CheckBoxは、2Dでは使えない http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/225
226: 名前は開発中のものです。 [] 2017/12/31(日) 18:15:19.74 ID:/rN76OKL 簡単にお金が稼げる方法興味ある人だけ見てください。 グーグル検索⇒『来島のモノノリウエ』 WQFIUEMH6C http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/226
227: 名前は開発中のものです。 [sage] 2018/01/01(月) 00:44:27.66 ID:j7kcIBAU 斜面に球を置いたとき、コロコロと転がっていくか、転がらずに滑っていくかは、摩擦設定で変わるのですか? http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/227
228: 名前は開発中のものです。 [sage] 2018/01/01(月) 01:03:03.11 ID:6abiTkqK 変わるよ ただし物理計算のタイムアウトも関係してくる 一定時間経過するとタイムアウトになり何か刺激がくるまで動かなくなる http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/228
229: 名前は開発中のものです。 [sage] 2018/01/01(月) 12:16:58.00 ID:ljD1K3gw IsTouchingLayersをつけたbox型のコライダーを足元に付けておけば、 足元だけで地面のレイヤーとの接地判定できるよ キャラクタ全体をIsTouchingにしちゃうと、 横のブロックに触れただけでも接地に判定されちゃうから・・・ (逆に、壁登りや三角飛びするなら、これでもよいけど) http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/229
230: 名前は開発中のものです。 [sage] 2018/01/01(月) 12:30:50.04 ID:ljD1K3gw >>225 LineCastは判定線の長さが限られているから、直下だけの判定できるけど、 RayCastだと判定線の長さが伸びるから、下方向(距離無関係)の判定になっちゃうよ >>224 1フレームで見れば、velocityの直接変更も、AddForce(Impulse)も同じだけど、 velocityの直接変更は、ボタン押下中、毎フレーム呼び出されても同じ値が代入されるのに対して、 AddForce(Impulse)は、ボタン押下中、毎フレーム呼び出されて加算されてどんどん加速するからね AddF
orceで、gravityと同じ値で逆方向に加速すると、重力が相殺されて、速度が保存されるよ http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/230
231: 名前は開発中のものです。 [sage] 2018/01/01(月) 12:32:16.63 ID:PNv1Z/iK なぜ皆さんはこんな無駄なことに時間を費やすのか? アセットを買えばすぐに解決するのに http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/231
232: 名前は開発中のものです。 [sage] 2018/01/01(月) 15:25:49.26 ID:ljD1K3gw >>217 ちなみに、自分の場合は、2Dでジャンプ機能を実装する際は、 Startでint t = 100,float v = 1.0fをセット Updateでボタン入力と接地を監視 ?入力あり t >= 0なら、Jump()へ飛んで、その後にt = t -1 ?入力なし 接地ありなら、t = 100へ 接地なしなら、t = 0へ Jump() t = 100なら、AddForce(mass * v * Vector2.up, ForceMode2D.Impulse) そうでない場合は、AddForce (mass * (t/100) * (- Physics2D.gravity)) 最初のフレームで上向き
初速v = 1.0をつけておき、 次のフレームからは重力加速度の相殺を線形的に減じていき、 t = 100フレームで重力加速度の相殺が消える仕組み ボタン入力がない場合は、接地時はt = 100に戻して、 非接地時はt = 0をセットして連続での再ジャンプを防止 http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/232
233: 名前は開発中のものです。 [sage] 2018/01/01(月) 15:36:55.88 ID:ljD1K3gw 接地判定は、足元に別コライダーを接地しておいて、IsTouchingLayersでも良いけど、 Startで、public LayerMask layerを宣言して、layerに地面のレイヤーを指定しておき、 キャラクタの足元に、縦厚みd×横幅x-dの判定枠を作って、 V2center = position - (キャラの縦サイズy/2) * Vector2.up V2size = new Vecto2(キャラの横サイズx - d, d) if (Physics2D.OverlapBox(V2center, V2size, 0, layer) == true)で layer = 地面のレイヤーとの接地判定すると、コライダ
ーを追加する必要はなくなるよ http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/233
234: 名前は開発中のものです。 [sage] 2018/01/01(月) 18:00:56.88 ID:j7kcIBAU >>228 変わるんですね unityは、静止摩擦係数、動摩擦係数とか、滑り摩擦、転がり摩擦とかも設定できるんですか? http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/234
235: 名前は開発中のものです。 [sage] 2018/01/01(月) 18:03:03.31 ID:j7kcIBAU Debug.DrawLineだと、Lineしか引けないんですけど、 Boxを描画したり、Circleを描画したりしたいんですけど、どうすれば良いんでしょうか? http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/235
236: 名前は開発中のものです。 [sage] 2018/01/01(月) 18:45:59.90 ID:6abiTkqK 静止摩擦係数、動摩擦係数だけです http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/236
237: 名前は開発中のものです。 [sage] 2018/01/01(月) 20:01:42.78 ID:j7kcIBAU >>236 摩擦係数は2種類設定できるんですね! http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/237
238: 名前は開発中のものです。 [sage] 2018/01/01(月) 20:58:09.99 ID:Ep+lOIal >>235 cube作るなりplane作るなりすればいいんじゃないの? http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/238
239: 名前は開発中のものです。 [sage] 2018/01/01(月) 21:03:34.71 ID:yWvNMSX7 アセットガイジ死ねや http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/239
240: 名無し@キムチ [] 2018/01/01(月) 21:18:47.92 ID:SQPXIuv2 >>238 cubeやplaneだと立体的になっちゃうから、 あくまでBoxを描画したり、Circleを描画したりして、テキストを補足する説明図っぽくしたいんじゃないかと忖度するが・・・w ほら、数学の説明でよくあるやつ。>>235はああいう感じにしたいのではなかろうか? Circleは難しいけど、まずcubeやplaneをつくって、 そのぴったり表面にシリンダーをすごく細くラインみたくしたものを置いて子オブジェクトにする。 次に3Dテキストを置いて子オブジェクトにする。 ラインと
テキストをレイアウトしたら、cubeやplaneの面をカメラにぴったり向けてカメラの子オブジェクトにする。 最後にcubeやplaneを透明にすれば、カメラをどこに向けてもついてくる数学っぽい説明の出来上がりw http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/240
241: 名前は開発中のものです。 [sage] 2018/01/01(月) 21:57:52.53 ID:j7kcIBAU >>240の言うように、あくまで2Dでの画面への描画を考えてました もともとは、Physics2D.OverlapCircleとかPhysics2D.OverlapBoxの判定枠をシーンビューに描画したかったのでした Physics2D.LineCastの判定線はDebug.DrawLineで描画できたのですが・・・・・・ http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/241
242: 名前は開発中のものです。 [sage] 2018/01/01(月) 21:59:17.32 ID:j7kcIBAU >>240 3Dオブジェクトで、擬似UIみたいにできるんですね! とても勉強になりました http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/242
243: 名前は開発中のものです。 [sage] 2018/01/02(火) 00:14:05.59 ID:D2TESPw/ 回転で不可解な挙動と思ったら、角速度は上限設定あるのね 3Dオブジェクトは角速度の上限が7みたい どおりで、回転速度があがらないわけだww 2Dオブジェクトも角速度の上限あるんかな?? http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/243
244: 名前は開発中のものです。 [] 2018/01/02(火) 07:20:03.89 ID:ItKV58jV Unityでゲーム制作を始めようとしましたが、 2DのScene画面を3Dに切り替えようとすると、 高い確率でフリーズしてしまいます。スペック不足なのでしょうか。 スペックは macmini 2.5GHz intel core i5 16GB 1600MHz DDR3 Intel HD Graphics 4000 1024MB OS X 10.9.5 ですが、しょぼすぎますか http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/244
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 758 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.011s