【3Dゲームエンジン】Unity質問スレッド33
■ このスレッドは過去ログ倉庫に格納されています
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。 プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他 次スレは>>950 以降にできるだけ早く(できれば回答者が回答した後にでも余裕を持って)建てて下さい。 ■Unity 2ch Wiki(まとめ、過去ログ、リンク集) http://www24.atwiki.jp/unity2ch/ ●リンク ・Unity(日本公式サイト) http://unity3d.com/jp ・マニュアル http://docs.unity3d.com/ja/current/Manual/index.html ・チュートリアル http://unity3d.com/jp/learn/tutorials ・スクリプトリファレンス http://docs.unity3d.com/ja/current/ScriptReference/index.html ・FAQ http://unity3d.com/jp/unity/faq ・MSDN http://msdn.microsoft.com/ja-jp/ms348103 ←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。 前スレ 【3Dゲームエンジン】Unity質問スレッド32 http://mevius.5ch.net/test/read.cgi/gamedev/1509307535/ NSObjectのNSはNextStepの略だしな >>210 物理演算をつけたオブジェクトは、transform命令では動かさない方が良い 同様に、Rigidbody.positionやRigidbody.rotationも極力直接いじらないほうが良い (なるべく、初期値を設定するだけにしておく) 物理演算をつけたオブジェクトは、原則velocity設定や、 AddForceかAddTorqueで動かさないと、演算に干渉して挙動が不安定になる >>187 >>200 全部1フレーム内での出来事だったのか >>186 >>200 呼び出される順序の問題で、物理演算をまたいでしまうと、 その時点で1フレーム分の内容のズレが出ちゃうのが真相か・・・ >>214 それはワープになるからな MovePosition使えば大丈夫だよ 初心者です。 2Dでジャンプアクションゲームを物理演算で製作中です。 ようやく左右への移動ができるようになったところです。 (Input.GetAxisをvelocityに代入しています) ジャンプの際に、お聞きしたい事があるのですが、 まず地面に接している判定をどうするのか、 ジャンプはvelocity変更でよいのか、AddForceの方がよいのか、 ボタンを押している時間に応じてジャンプを高くしたい (無制限に高くではなく、ジャンプ力には上限を設けたい) などを詳しく解説してあるサイトとかありますでしょうか? あるいは、ジャンプ動作のスクリプトに、定石・セオリーみたいのはあるのでしょうか? AddForceの方がいいよ、単純にジャンプだけだったら変わんないかもしれないけど他の動作と重なったときに融通がきかなくなる 設置してるかどうかはコリジョンを見れば良いんだよ ジャンプ系の処理は定石化してるから、Youtubeでしっかり頭に叩き込んだほうが良いよ 数値の上限については、ちゃんとC#らしい書き方ができるといいね UNITYの定石としては、アセットを買うことですね "物理演算"でやるならVelocityは基本使っちゃだめよ 物理演算を無視した移動だから見た目が物理っぽくなくなるよ キャラの操作制御はInput.GetAxisでもいいがCharacter Controllerを使えばisGroundというパラメーターで地面との接点判定できるよ >>217 初心者向けに 2D platformerというジャンプアクションゲームのアセット(無料)がある https://www.assetstore.unity3d.com/jp/#!/content/11228 あとはggれば解説してるとこがあったはず この時間しかレスできず、大変すみません。 皆さん、いろいろアドバイス下さり、ありがとうございます。 >>218 さん >>220 さん velocityは直接変えない方がよいんですね。 AddForceでImpuseモードで変更することにしました。 >>219 さん >>221 さん アセットは魅力的に思っていましたが、導入方法が分からなかったのと、 基本有料と思って、二の足を踏んでいました。 無料のジャンプアセットあるのですね。ためになりました。 >>220 さん Character Controllerは3D専用の機能かと思って触っていませんでした。 これから勉強します。 物理演算を使って、物理法則に則ったゲームを作成するのか、 物理演算を使って、既存型のゲームを作成するのか、 (コライダーは利用するが、動きは非物理) 物理演算を使わずに、既存型のゲームを作成するのか (旧来のゲームシステム) positionの直接変更は、コライダーへの衝突計算が乱れる危険性あり MovePositionによるposition変更は、velocity変更に基づいているので、 比較的安全にコライダーとの衝突計算がなされる velocity変更を行わずに、全てAddForceで行った方が、 より自然な物理演算になるけど、velocityを0にするのが難しくなる AddForceでvelocityを0にしようと逆方向に力を与え続けると、 逆向きの加速度がついてしまうので、基本的にはDragで減速せざるを得ない 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では使えない 簡単にお金が稼げる方法興味ある人だけ見てください。 グーグル検索⇒『来島のモノノリウエ』 WQFIUEMH6C 斜面に球を置いたとき、コロコロと転がっていくか、転がらずに滑っていくかは、摩擦設定で変わるのですか? 変わるよ ただし物理計算のタイムアウトも関係してくる 一定時間経過するとタイムアウトになり何か刺激がくるまで動かなくなる IsTouchingLayersをつけたbox型のコライダーを足元に付けておけば、 足元だけで地面のレイヤーとの接地判定できるよ キャラクタ全体をIsTouchingにしちゃうと、 横のブロックに触れただけでも接地に判定されちゃうから・・・ (逆に、壁登りや三角飛びするなら、これでもよいけど) >>225 LineCastは判定線の長さが限られているから、直下だけの判定できるけど、 RayCastだと判定線の長さが伸びるから、下方向(距離無関係)の判定になっちゃうよ >>224 1フレームで見れば、velocityの直接変更も、AddForce(Impulse)も同じだけど、 velocityの直接変更は、ボタン押下中、毎フレーム呼び出されても同じ値が代入されるのに対して、 AddForce(Impulse)は、ボタン押下中、毎フレーム呼び出されて加算されてどんどん加速するからね AddForceで、gravityと同じ値で逆方向に加速すると、重力が相殺されて、速度が保存されるよ なぜ皆さんはこんな無駄なことに時間を費やすのか? アセットを買えばすぐに解決するのに >>217 ちなみに、自分の場合は、2Dでジャンプ機能を実装する際は、 Startでint t = 100,float v = 1.0fをセット Updateでボタン入力と接地を監視 @入力あり t >= 0なら、Jump()へ飛んで、その後にt = t -1 A入力なし 接地ありなら、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をセットして連続での再ジャンプを防止 接地判定は、足元に別コライダーを接地しておいて、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 = 地面のレイヤーとの接地判定すると、コライダーを追加する必要はなくなるよ >>228 変わるんですね unityは、静止摩擦係数、動摩擦係数とか、滑り摩擦、転がり摩擦とかも設定できるんですか? Debug.DrawLineだと、Lineしか引けないんですけど、 Boxを描画したり、Circleを描画したりしたいんですけど、どうすれば良いんでしょうか? >>235 cube作るなりplane作るなりすればいいんじゃないの? >>238 cubeやplaneだと立体的になっちゃうから、 あくまでBoxを描画したり、Circleを描画したりして、テキストを補足する説明図っぽくしたいんじゃないかと忖度するが・・・w ほら、数学の説明でよくあるやつ。>>235 はああいう感じにしたいのではなかろうか? Circleは難しいけど、まずcubeやplaneをつくって、 そのぴったり表面にシリンダーをすごく細くラインみたくしたものを置いて子オブジェクトにする。 次に3Dテキストを置いて子オブジェクトにする。 ラインとテキストをレイアウトしたら、cubeやplaneの面をカメラにぴったり向けてカメラの子オブジェクトにする。 最後にcubeやplaneを透明にすれば、カメラをどこに向けてもついてくる数学っぽい説明の出来上がりw >>240 の言うように、あくまで2Dでの画面への描画を考えてました もともとは、Physics2D.OverlapCircleとかPhysics2D.OverlapBoxの判定枠をシーンビューに描画したかったのでした Physics2D.LineCastの判定線はDebug.DrawLineで描画できたのですが・・・・・・ >>240 3Dオブジェクトで、擬似UIみたいにできるんですね! とても勉強になりました 回転で不可解な挙動と思ったら、角速度は上限設定あるのね 3Dオブジェクトは角速度の上限が7みたい どおりで、回転速度があがらないわけだww 2Dオブジェクトも角速度の上限あるんかな?? Unityでゲーム制作を始めようとしましたが、 2DのScene画面を3Dに切り替えようとすると、 高い確率でフリーズしてしまいます。スペック不足なのでしょうか。 スペックは macmini 2.5GHz intel core i5 16GB 1600MHz DDR3 Intel HD Graphics 4000 1024MB OS X 10.9.5 ですが、しょぼすぎますか 将来バーチャル配信したいと思います とりあえずマウスの1080tiのpc全部で45万買いました hmdはviveを買いたいです unityもしくはアンリアル4のプログラミング学びたいです Unityちゃんを動かすとデフォルトのアニメーションは髪も服も揺れるけど 他のアニメーション適用すると髪や服が動かなくなります。動かすにはどうすれば? SpringBoneというスクリプトで動かせるっていうページ見てたら Unityちゃんのアセットについてくると書いてたけどそんなスクリプト見当たらないよ…? https://www.assetstore.unity3d.com/jp/#!/content/18705 >>243 2Dだと、Physics2D.maxRotationSpeedが最大角速度じゃね? たぶん、デフォルト360 >>245 バイブ10万グラボ7万で、あと28万何に使ってん >>244 グラボ乗ってないのが原因 GTX1060買いなさい >>245 これで税抜き33万なのがG-tune ま、バカが買うものだわな ■OS : Windows 10 Home 64ビット ■CPU : インテルR Core? i7-7820X プロセッサー (8コア/3.60GHz/TB時最大4.30GHz/11MB スマートキャッシュ/HT対応) ■グラフィックス : GeForceR GTX 1080 Ti (11GB) ■メモリ : 32GB PC4-19200 (8GB×4/ クアッドチャネル) ■SSD : 960GB Serial ATAIII ■ハードディスク : 3TB Serial ATAIII 7200rpm ■チップセット : インテルR X299 チップセット ■光学ドライブ : DVDスーパーマルチドライブ ■電源 : 700W 【80PLUSR BRONZE】 >>254 そのスペックが必要な人にとってはバカな買い物じゃないだろ。バカ? arkで最安値でほぼ同じ構成でカートにぶち込むと 税込合計:331,800円 最近のはバラ買いと大差ないよ あ、ショップBTOの値段じゃなくてマウス45万か ご愁傷さまですな >>256 >>257 見て何か言いたいことは?ねぇ今どんな気持ち?ねぇ今どんな気持ち? >>259 馬鹿? リテール品だけで組んだらそうなるのは当たり前だろ バルクとリテールの差額で利益出してるんだぞ 本人が納得して払ってるんだ、どんだけマウントしたいんだw >>260 じゃあお前はバルクなり何なり好きに使ってもっと安くできんのかよw マジでアホかこいつwww 自作だとパーツ単位で交換出来て、前に使っていたパーツが使い回せる分が安いのであって、 一式揃える時はOSの事まで考えると下手したら既製品より高くなるのは普通だぞ。 いやまてw マウスの45万の構成って1080 TiのSLIじゃねーかwww >254が1グレード下と間違えてんだな >>263 昔は自作の方が安く出来たけどね。 あれはもうなん年前のことなんだろうか… 自分で使うマシンはちまちま部品入れ替えとかして結局自作のもの使ってるけど。 >>265 自作が流行ったのは15年くらい前じゃないかな。 あの頃は日進月歩だったから自作っていっても頻繁に交換の必要に迫られて割とお金掛かったけど、 今は64bit対応してりゃ10年前くらいのMBでも普通に使えるから、出費がほとんど無くなったね。 >>233 IsTouchingLayersで足元のコライダーを選択する時、 体用、足元用ってコライダーが複数あるとな、 GetComponentだと一番上のコライダーしかGetできないから、 コライダーの種類を分けて設定しておくと便利やぞ >>270 何言ってんだコイツwと思ったら、アセットストアにあるのは削ってあるのか http://unity-chan.com/ に行って 右上のData Download 同意 ユニティちゃん 3Dモデルデータ Download押す 落としたunitypackageをDnDすればいい >>253 すみません、学生なのでお金がないです…。 公式サイトによると、推奨環境は DirectX 9 相当 (シェーダーモデル 2.0) の性能を持つグラフィックスカード。 2004 年以降に生産されたカードが目安 私のmac miniだとこれを満たしていないってことなのでしょうか。 unityを最近始めた初心者なんだが、数日間困っていることがある。 簡潔に言えば「作ったアプリをandroidにビルドできない」ということなんだが、いろいろ試してもうまく動かない。 使っているのは windows10 android studio2.3 unity5.6.4f1 Edit<preferences<External Tool<SDKのパスは通ってる File<Buid Setting<Platformでandroidへの設定、GameSceneとPlayer Settingの設定も出来ているんだが、いざビルドしてみると「unity unable to list target pratforms.~」ってのが出てくるんだ。 webで対処法見て、試してみたんだが一向に動かん。 対処法知ってて、教えてくれる優しい人いたら教えておくれ。頼む。 >>275 C:/Users/ユーザー名/AppData/Local/Android/Sdk >>276 もう一度確認してみるよ >>272 お金無いのにmac選んだのか… しょぼいスペックのPCで開発できるのはしょぼいスペックを要求するゲーム 作ろうとしてる内容と同等程度のゲームがサクサクで動くくらいじゃないと開発は無理だよ >>278 はじめてゲームを作るので、習作と言う事でプレステ1みたいな簡単なポリゴンが動けばいいのですが…。 調べてみたら、「玄人志向 ビデオカード GEFORCE GTX 1050Ti」みたいなものを買って外付けすればいいのですか? というか、お金ないのでできれば 「玄人志向 ビデオカードGEFORCE GT 710搭載 ロープロファイル 空冷FAN GF-GT710-E1GB/LP」 が安くて良さそうなのですが、これで簡単なゲーム動くかな…。 初歩的な質問で恐縮なのですが、 ユーザーがソフトを起動したときに、 ユーザーにバージョンアップの案内を知らせるためには、 どういった機能を実装すればいいですか? これはユーザー管理上、大変重要な機能だと思うので、よろしくご教授のほどお願いいたします!!!! >>280 それなににつけるつもり。 Mac miniじゃつかんぞ うう、サンダーボルトとかいうのを使ってもダメですか…。 同じくらいの値段と性能で、mac miniにつきそうなグラボはなんでしょう… >>270 ん、揺れもののセットアップしてあるunitychan_dynamicはAssetStoreのUnityChanアセット にも入ってるでしょ? SpringBoneスクリプトも入ってるし、なんで見つけられなかったかなぁ? Projectで検索するだけで簡単に見つけられたのに。ネタではなくマジな話だったのか。 >>284 macに詳しくないから細かいアドバイスはできんが、その目の前にある便利な機械は聞けば色々教えてくれるらしいぞ 自分のpcにつけられる条件調べてそれに合致するグラボ探すとか同じpcでグラボ換装してる記事を探すとかしてみたら? >>284 それに付くものはないよ ただ、それの3倍程度しか早くないIrisPro6200でチュートリアル級のゲームだったら十分作れてるから、HD4000でも性能のせいでクラッシュするとは思い難いな >>286 〜289 いろいろありがとうございます!! 推奨スペックを見ても、簡単なcube作ろうとしただけで フリーズするってのは性能のせいではない気がしますね…。 昔のUnityも落とすの試してみます! (夜中にならないと回線速くならないので、今は落とせませんが…) 2、3年くらい前のバージョンがいいのかな… アイフォン5までは、エアの1.8Ghz core2duoでやってたから、練習程度なら大丈夫。 Rgidbody2Dでは、プレイヤーか床のどちらかのfrictionを0にしたら、摩擦は0になるんですね (2Dでは、3DのRigidbodyと違って、双方のfrictionの適用法を選べないみたい) 本題です frictionを1にしたら床が滑らなくて良い感じなんですが、 壁を乗り越える時に、左右キーが押されていると壁にくっついてしまいます (床だけでなく、壁の摩擦も上がってしまっているみたい) frictionを0にすると、壁は滑り落ちて良い漢字なのですが、 今度は床もツルツル滑りまくりになってしまいます 一体どうすれば良いのでしょうか? 床(上面)と壁(側面)でfrictionを別設定できたりしますか? あけましておめでとうございます 今年もアセットを買ってがんばりましょう! 新年の挨拶遅くない? アセットの購入量が足りてないよ unityのバージョンを、5.40にしてみたら無事動くようになりました! ありがとうございます。 5バージョンだったら、最新のものにしてももんだいないかな…? 知識もない技術もない金もない貧乏学生は大変だな オサレ感でmac買ってしまったらその後の学生生活ドン詰まりw アホは大変だな >>272 十分すぎるほど満たしている 念のためmac miniのどのモデルかも書け(2013とか2016とか種類がある) 当然グラボはいらん >>274 回答するにはテストに使おうとしているandroid実機のOSバージョンも必要 >>293 1と0だけでなく0.2とか小数でも指定できる そして膨大な実験繰り返して自分の最適な数値を見つけるのが物理エンジンを扱う上で全てのエンジニアの指名なので 「こういう動きにしたいので最適な数値を教えてください」という質問はもうするんじゃない 叩かれはじめるぞ >>297 それは時代遅れの偏見 mac=高いというのがそもそも情報が古い mac proやnoteは今も確かに無駄に高すぎるが mac miniならcorei7と8GBメモリで8万程度で買える コスパの面で開発機として優秀な部類に入るよ Windows、Android、iPhone、3種類のアプリビルドができる点も非常に大きい Rigidbody2Dについて教えて下さい position変更は同一フレーム内で連続できるのですが、 MovePosition()は同一フレーム内で連続できないみたいなんですが、 それであってますか? 複雑な動きを2行に分けて記載しようとしたら、 MovePosition()ではどうもうまくいかないんですよね・・・ >>298 ありがとうございます! 試行錯誤するしかないんですね・・・・・・ 側面はツルツル、上面はピタッとにしたかったのですが、 摩擦係数を中間値にする方法ではイマイチだったので ブロックの側面にツルツルを貼るか、 プレイヤーキャラの側面にツルツルを貼るかして、 コライダーを二重にしてみようかと思ってます WebGLでビルドした際に、TilemapクラスのSetTile関数で以下のエラーが発生します。 Error running RefreshTile for previous TileNullReferenceException: A null value was found where an object instance was required. Tilemap、TileBase、positionのインスタンスが生成されているのはdebuglog等で確認済みで、開発時及びPC向けビルド時は発生しません。 解決策わかる方いませんでしょうか・・・? >>299 PC周り初心者が開発機にするには向いてないと思うよ 何より情報が少なすぎる とりあえず模倣から入るのが近道なのに模倣する相手が少なすぎる やっすいwin機の方が圧倒的に有利 macの利点はiOSビルドくらい もちろんある程度の知識があったり周りに熟練者が居てすぐに相談できる環境ならmacも悪い開発環境では無いと思うよ 特にweb周りとかね 今までろくなグラボがなかったからMacはUnity開発には向いてないってイメージ >>300 fixed updateについて学べ >>303 驚いた 今更そんな意見の人がいるんだな iosアプリは絶対出さないと決めてるなら話は別だが初心者unityエンジニアにはMacを選ばせるのが常識的な対応だろう MacならWinも使えるのにあえてWinマシンをえらんで将来iOSアプリのためだけにMacも買い足すなんてそれこそデメリットが多すぎる そんな状況が10年近く続いてるんだからゲーム開発に限ってはMacの情報が少なすぎるなんてありえない >>305 iOSアプリを出すどころかアプリを完成できるかどうかもわからん状態でそんなこと気にする意味がどこにある? ドのつく素人がmac上でwinを自由に使えるとでも? ようやくvsがmacでも、なんてことで歓喜してるのがここ2〜3年 PCトラブル系の記事はwinが始めにあり、その上でmacならどうなる?って流れが多い 10年続いたって少ないのには変わりない あんたは探せても初心者には探せないんだよ 初心者がどういう行動をするかを理解してやれないんだな >>305 UnityをMacで使う上で問題ないならいいし、あっても解決法がいろいろ探しやすいならMacのメリットもあると思うがどうなん >>307 macで開発してる人も居るしでか目の企業もあるから問題解決を探せる能力があるなら問題ないよ むしろターゲットがスマホでmacに慣れてりゃmacの方がいいと思う 使い慣れたwin用ツールを使いたいとかあるならしゃーないけど >>306 これからゲームを出そうと思ってる人間にiOSの市場を捨てざるを得ないWindowsを進めて気にしないって人でなしだな ど素人でも扱えるよ winが使いたいなら起動時にキー押して選択するだけ そもそもプログラマは昔からMacユーザーが多いから情報が特別少ないってことはないしマルチプラットフォームが当たり前のゲーム制作に限ればなおさら Macのトラブルに対処できない人間はWinでも無理 >>309 スマホがターゲットかもわからんしそれを仕事にするのかもわからん段階から市場を気にするなんてすごく先を見据えた方ですね こういう人ってプログラマにmacが多いってよく言うよねー せめてシェア5割あってから言おうね macでもwin使えるのを推したいみたいだけどなんで素人の段階から2個のOS使わなきゃならんのだw 素人がマルチプラットフォームなんか気にする前にゲーム制作の入り口で躓かないようにしてやれよ iOSとAndroidのアプリを公開する際、音声ファイルの拡張子って何を使っていますか? mp3だとライセンス料がかかると分かりました。そこでライセンスフリーのoggやMIDIを使おうと思ったのですが、iOSが未対応でした。 音声の拡張子の問題ってどう解決すれば良いですか? ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる