【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/ 警告で The GUID for assets/アセット名.mat is already in ues by assets/アセット名.MAT. Assigning a new guid. エラーで Refresh case sensitivity failure. Assets:Assets/アセット名.mat ; Metafile:Assets/アセット名.mat.meta です どーせテクスチャをエクスプローラーからコピペして置き換えしたりしてんだろ >>189 君みたいな雑魚にUnityは使いこなせません 10年webで下積みしてから出直してきなさい >>192 いえ、普通にUnityエディタ内でmaterialを作成してます で真っ白なまま保存しても.matで保存されるんですが少しでも色を変えると保存した時に拡張子が.MATに変わってしまうんです >>194 ファイル消したりしてるでしょ 元ファイル消したのにmetaファイル消してないから名前が使えない だから別の名前使うね、ってなってる 生成も削除も移動も全てuntiy上で行ってください てか警告分の内容は理解してる? 中学英語の単語しか無いぞ 英語だからって毛嫌いせず読もうとしてみるの大事 だんだん慣れてくるから >>195 ありがとうございます、消してしまった気がします… こうなった場合の対処法ってどうすれば良いんですか?調べたんですけど「やらないように注意」みたいにしか書いてなくて… 警告文は1回Google翻訳に突っ込んだ時にルー語で翻訳されてキレそうになりましたw ちゃんと調べてある程度意味はわかりました >>197 基本的には不要なmetaファイルを消せばいい metaファイルの中を理解することは大変だけどmetaファイルの存在意義を理解することはそこまで難しくはないと思う ググればmetaファイルとはなんぞやって記事いっぱいあるからゆっくり読んでみればいい 全部が理解できなくてもいいから色んな記事を読むといい その過程で色んな知識がつくはず それを繰り返してればそのうち色んなことに対処できるようになる >>197 あと警告やエラー文は基本翻訳ソフトに突っ込まないほうがいい 単語の意味を調べる程度にしときな プログラム上で使われる意味合いと英文としての意味合いが異なって余計に混乱することになることが多いと思う GUIDみたいな略語なんかは翻訳仕様がないしね むしろ警告文をそのままググるほうが同じ問題で引っかかった人が解決法とか書いてくれてたりすることもあるからそういうふうに調べたほうがいいよ >>185 正確に言うと1フレーム内なんだけど、イベントが呼び出される順番の問題では? Awake Start FixedUpdate Update LastUpdate OnRenderImage OnGUI OnDestroy 同じフレーム内でも、Updateの前にFixedUpdateが来るから、 FixedUpdateの処理が1フレーム分先の内容になっているんだと思う >>198 >>199 わかりました、また調べてみます 色々とご教示ありがとうございました Start: Debug.Log Invoke A 0秒 Invoke B 0秒 FixedUpdate: Debug.Log Update: Debug.Log A: Debug.Log B: Debug.Log Invoke AA 0秒 AA: Debug.Log Time.frameCountをDebug.Logすると、全て1になるね (FixedUpdateとUpdateは初回のみDebug.Log) 実際にやってみると、Debug.Logされる順番は、 @Start AFixedUpdate BA CB DUpdate EAA の順になるので、 @Satrt→BAの間には、FixedUpdateが入っているので、 その間に物理演算の結果が更新されますが、 CB→EAAの間には、FixedUpdateが入らないので、 その間に物理演算の結果は更新されません 何もない所で誰も引っ掛からない孔明の罠に引っ掛かって 大騒ぎするのがキムチ >>177 他のオブジェクトのアクティブのtrueはfalse明らかにオブジェクトの量で変わる。 オブジェクトの量を増やすと、それまでtrueはfalseがちゃんと動いていたものが、動かなくなる。 その行の削除するとまたちゃんと動き出すことから、それは明らか。 それを回避するには、オブジェクトごとにスクリプトをつけてそれに書けばアクティブのtrueはfalseは確実に動く。 最近わかったんだが、Unityでは基本あるオブジェクトにつけたスクリプトから他のオブジェクトを動かしてはいけないんですね。 あくまでもそのオブジェクトにだけ関するスクリプトであるということ。 MonoBehaviorの「Mono」とはそういう意味なんですね。 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でも性能のせいでクラッシュするとは思い難いな ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる