1 名前:名前は開発中のものです。 [2016/05/02(月) 22:38:08.79 ID:EnZTTc62.net] 3Dゲームエンジン「Unity」の質問に優しく答えるスレです。 Windows/Mac用。JavaScript/C#といった汎用言語を使用できるのが特徴です。 フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。 プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他 次スレは>>970 を踏んだ方が建てること。ダメなら>>980 か>>990 が建てて下さい。 ■本スレ 【3Dゲームエンジン】Unity総合スレッド27 [転載禁止](c)2ch.net peace.2ch.net/test/read.cgi/gamedev/1441891966/ ■Unity 2ch Wiki(まとめ、過去ログ、リンク集) www24.atwiki.jp/unity2ch/ ●リンク ・Unity(日本公式サイト) unity3d.com/jp ・ユーザーガイド docs.unity3d.com/ja/current/Manual/UnityManualRestructured.html ・チュートリアル unity3d.com/jp/learn/tutorials ・スクリプトリファレンス docs.unity3d.com/ja/current/ScriptReference/index.html ・FAQ unity3d.com/jp/unity/faq ・MSDN msdn.microsoft.com/ja-jp/ms348103 ←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。 前スレ 【3Dゲームエンジン】Unity質問スレッド23 echo.2ch.net/test/read.cgi/gamedev/1457424481/
428 名前:397 mailto:sage [2016/05/16(月) 23:02:37.03 ID:DAaItmnW.net] 皆さん返信ありがとうございます。 >>400 3か月前の参考書ですら使えない場合もあるんですか? てっきりunity5の参考書を買えばまず大丈夫だと思っていました。 チュートリアルやってみます。 それにしても、unityの起動やビルドにものすごい時間がかかるのだが、 俺のノートPCのスペックが足りないのかな。
429 名前:名前は開発中のものです。 mailto:sage [2016/05/16(月) 23:07:42.72 ID:NRL4D3Jt.net] まぁその方法だと球が1000個あった場合に計算回数がたった1000回になるだけだし 本当に総当たりしたら50万回くらいになってるし
430 名前:名前は開発中のものです。 mailto:sage [2016/05/16(月) 23:30:16.88 ID:NRL4D3Jt.net] あとRigidbodyの当たり判定はFixedUpdateの間隔で処理してるハズだけど、その方法だとUpdateの間隔でしか処理してないやん 当たり判定の検出回数減ってるやん
431 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 00:08:50.61 ID:RFqvbH97.net] >>424 >>425 弾幕シューティングで弾同士に当たり判定を持つのか? 設計の段階でいらん枝を先に切るってのは当然やってるものだと思ったがまさか言葉通りの総当たりを想定してたのかwそりゃ論外だから設計見直せとしか Rigidbody使ってもレイヤー切って弾同士の判定はしないで比較してるからそこで差は埋まらんよ? Updateでやってる処理をFixedUpdateに移したぐらいで結果が変わる程度の差じゃないから粒度が気になるなら移せばいいよ
432 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 00:19:47.34 ID:c7Es4G1U.net] >弾幕シューティングで弾同士に当たり判定を持つのか? いやいや別にあってもおかしくないが >>420 見ただけじゃ仮定が不明すぎてわけわかんないのに、「当然やってるものだと思った」と言われても自分テレパシーじゃないんで
433 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 00:30:16.61 ID:Z2ucCY2C.net] うえいるせ 雌の部分みせろ
434 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 00:33:37.46 ID:kSn04VNU.net] 俺のESP値は54万だ
435 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 07:06:13.78 ID:30PsNdMs.net] シューティングで弾同士があたり判定を持つってどんな感じなんだろう・・・? 味方同士の弾が当たったら1発に集束されて威力合算とか 敵と味方の弾当たったら相殺とか、敵と敵の弾が当たったら別の弾種になるとか そんな感じの事をやる時に必要になってくるんだろうか・・・?
436 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 08:57:23.39 ID:Z8urgFF3.net] 人間は壁にぶち当たる。 その時に否が応でもやらなければいけないものさ。
437 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 11:00:14.89 ID:HRkpY7dw.net] 日本語で書かれたUnityの解説本はさあ、「なぞれば同じゲームが作れます」って言うような公式チュートリアル以下の初心者本ばっかりになったんだよな 公式チュートリアルが英語だからか、それが出来ない中学生〜専門学校生等の層をターゲットにしてるんだろう まあ、一歩進んだ本は売れない上、さらにレビューには「使い方の説明がない」等のひどい評価が書かれるというとんでもない時代になってるからね いい本を出そうって気はしないよな
438 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 11:11:45.22 ID:16YnhEn2.net] 突然どうした、疲れてんのか ちょっと外に出て気分転換してこい
439 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 11:57:18.27 ID:eRbYndXk.net] 初級本「クリックしたままカーソルを移動させることを『ドラッグ』と言います。この標準で付いているスクリプトファイルをキューブのところにドラッグすれば、ほら動いた!」 中級本「GameObjectをnewしてInstanceをprivateなvariableにassignしたらGetComponentからRigidbodyをAddForceもしくはvelocityで、ほら動いた!」 ぶっちゃけこの中間の本を作れなかったのだろうかと初心者の頃は思ってたよ
440 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 12:06:48.83 ID:eRbYndXk.net] 正直なところ今でもクラスを細分化する理由とか分からないんだよなぁ 例えばプレイヤーとカメラの操作みたいな相互に作用するものは分けて書くと逆に可読性が落ちるし それぞれにスクリプト当ててそれぞれでお互いの参照を保持するのは無駄にしか思えない
441 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 12:10:48.38 ID:unjj9Zl5.net] 2chでひとり語りを始める人は軽度のうつ病の恐れがあるってエロいお医者さんが言ってた
442 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 12:38:06.79 ID:RJ0HcG3P.net] >>435 チームで開発するときは、ファイル分けてくれた方が問題の箇所を見つけやすいってのはあるかも
443 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 12:40:59.06 ID:FLvMyiRD.net] >>435 雑談は雑談スレでやれよw それ自体はもっと大規模なゲーム作ってけば分かるようになるよ 最終的にはオブジェクト指向は正しいのかとかいう宗教戦争になるw
444 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 12:52:13.06 ID:qP+ihOpu.net] お前らチームで開発なんてしてるの?
445 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 12:54:50.07 ID:m1vuMDHT.net] >>435 のようなレスを見るとオブジェクト指向が理解できず苦労してんだなあと コボルやフォートラン時代の頭の硬化したジジイたちは気の毒
446 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 12:58:54.84 ID:Eq74oSJq.net] 俺は434に同意するけどね 無駄なコードが多すぎる さして読みやすくなってるわけでもないのに
447 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 13:42:07.71 ID:T9Vr550j.net] クラス同士が密結合していると、状態の組み合わせ爆発が起こる。 もし変数が10個あれば、10! これが2つのクラスで、疎結合になれば、 例えば、3! * 7! のように、状態の組み合わせ数が減る
448 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 13:53:54.12 ID:qMLet7/6.net] openbook4.me/projects/161/sections/1023 こちらのサイトを見ながらブロック崩しを作成しているのですが 「BallScriptを作成して記述」の所をそのまんま記入したところ、コンパイルエラーが発生してしまいます。 エラーの内容は以下の通りです。 Assets/BallScript.js(9,42): BCE0144: 'UnityEngine.Component.rigidbody' is obsolete. Property rigidbody has been deprecated. Use GetComponent<Rigidbody>() instead. (UnityUpgradable) Assets/BallScript.js(9,52): BCE0019: 'velocity' is not a member of 'UnityEngine.Component'. Assets/BallScript.js(10,9): BCE0144: 'UnityEngine.Component.rigidbody' is obsolete. Property rigidbody has been deprecated. Use GetComponent<Rigidbody>() instead. (UnityUpgradable) Assets/BallScript.js(10,19): BCE0019: 'AddForce' is not a member of 'UnityEngine.Component'. ちなみに自分が入力したソースコードは以下の通りです。 #pragma strict var Speed : float = 15.0; function Start () { } function Update () { if (Input.GetButtonUp("Jump") && rigidbody.velocity == Vector3(0, 0, 0)){ rigidbody.AddForce((transform.forward + transform.right) * Speed, ForceMode.VelocityChange); } } エラーコード番号や英文をググったりしましたがわかりませんでした。どなたか教えていただけないでしょうか。
449 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 14:01:32.32 ID:gPw3orDt.net] おぶそれーと?(読めない) って出てるでしょ エラーメッセージちゃんと読めば、これはすぐわかる
450 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 14:10:25.54 ID:xuPMAP+N.net] >>440 一人で作る日曜DIYなのに、 「ここは木材を切る場所」 「ここは木材を削る場所」 「ここは組み立てる場所」 と工程別にライン化してたらアホかと思うがな
451 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 14:24:13.05 ID:qMLet7/6.net] >>444 ありがとうございます。恥ずかしながら、エラーコードの英文が読めない時は翻訳を使うとわかることもあるということに質問してから気づきました。 一番上の意味はrigidbodyは廃れてしまい、使われていない。代わりにこれを使えと言っていることがなんとなくわかりましたが、具体的にどう書き換えたらいいかがわかりませんでした。 またもう一つのエラーとしてvelocityはunityコンポーネントのメンバーではありませんといったことが書いてあるのはわかりましたが、具体的にどのように直せばいいのかわかりませんでした。 どなたか教えていただけないでしょうか。 また、今後unityでスクリプトを触る上でこれからも様々な種類のエラーが出ると思うのですが これらをどのように乗り越えていけばいいのでしょうか。 スクリプトのコンパイルエラーの対処法として、自分にできることは、エラー番号、エラーメッセージをそのままググる。 翻訳で日本語に置き換えて考えてみるといった方法を試しているのですが それでもわからずここで質問することになってしまいました。 わからないことを掲示板等で極力聞かずに自分でコンパイルエラーを解決する方法としてもっとよい学習方法はあるのでしょうか。
452 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 14:34:37.72 ID:FLvMyiRD.net] >>443 function Update () { if (Input.GetButtonUp("Jump") && GetComponent("Rigidbody").velocity == Vector3(0, 0, 0)){ GetComponent("Rigidbody").AddForce((transform.forward + transform.right) * Speed, ForceMode.VelocityChange); } UnityEngine.Component.rigidbody' is obsolete. Property rigidbody has been deprecated. Use GetComponent<Rigidbody>() instead. UnityEngine.Component.rigidbody は廃止されました。リジッドボディプロパティは非推奨です。代わりにGetComponent<Rigidbody>()を使用してください docs.unity3d.com/jp/current/ScriptReference/GameObject.GetComponent.html 'velocity' is not a member of 'UnityEngine.Component'. velocityはUnityEngine.Componentのメンバではありません 'AddForce' is not a member of 'UnityEngine.Component'. AddForceはUnityEngine.Componentのメンバではありません。 docs.unity3d.com/jp/current/ScriptReference/Rigidbody.html docs.unity3d.com/jp/current/ScriptReference/Rigidbody-velocity.html docs.unity3d.com/jp/current/ScriptReference/Rigidbody.AddForce.html この辺の意味が分からないなら延々「コピペすれば動くコードをよこせ」と言わねばならなくなる。 Unityはプログラムできることは必須でUnityだけ覚えるとかいう道は基本的にないよ。
453 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 14:38:47.11 ID:swIfBpnI.net] つか何でわざわざ公式じゃないよくわからんサイト探してunityjavaとかで始めるんだよ せっかくまっさらなんだから公式でC#でやれよ 動画見ながらそのまま打てば確実に動くぞ、英語なんて解らなくても動画の通りやればいい unity3d.com/jp/learn/tutorials/modules/beginner/live-training-archive/creating-a-breakout-game?playlist=17219
454 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 14:53:28.53 ID:qMLet7/6.net] >>447 >>448 ありがとうございます。 過去にunity公式のチュートリアルは英語なので、英語が聞き取れない人にはあまりお勧めできないと書かれたサイトがあったので unityチュートリアルは躊躇していたのですが、これからやってみようと思います。 つい先ほど日本語字幕への変更の方法もわかったことだし。 プログラミングができることが必須ということはC#やJavascriptの参考書は今後必要になるのかな。
455 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 14:55:11.49 ID:FLvMyiRD.net] 色々あったけど結局もうスクリプトはC#でやるのが正解ってことだよなぁ。 エラーコードもGetComponent<T>()で出てくるんじゃC#しか考えてないってことじゃんって話になるし。 まぁC#ちゃんとやることだよ。他に道はない。 猫でもわかるの本に書いてある程度のことが全部頭に入ってればそれで十分だし
456 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 15:29:19.21 ID:RFqvbH97.net] >>446 とりあえずUnityScript(javascriptのような別物)はあまりお勧め出来ないのでC#を使うようにするといいと思うよ Obsolateは過去のバージョンでは存在したが古く不適切な実装やより優れた同等品の追加などによってなくす方向にシフトしたものにつけられるアトリビュート 今回の場合は、バージョン4.xの頃には存在したが内部的にGetComponentを使っていたプロパティ群がまとめて廃止された経緯があるんよ GetComponentは重いから暗黙的に多用してしまう事を助長するのは良くないってのが廃止の理由 velocityやAddForce絡みのエラーはrigidbodyの取得時に明示的にキャストすれば大丈夫 ただまあ前述のobsolateにされた経緯の通り毎回GetComponentを呼ぶのはよろしくない、Awakeで一回だけGetComponentしてRigidBody型の変数にっっこんでおくのがいいと思う ついでに言えばそのクラスで特定のコンポーネントが必須ならRequireComponentアトリビュートをつけておくことをお勧めしとく まあとりあえずやる気になったみたいだしチュートリアル頑張れ
457 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 15:58:10.94 ID:gPw3orDt.net] >>446 代わりにこれを使えの、これの公式マニュアル読むといいよ というかそれしかない
458 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 17:43:18.14 ID:gPw3orDt.net] Unityって扱いやすいんだろうけど、 情報の錯綜っぷりとか それに輪をかけるアップデートの頻繁さとか 状況が入門者向きじゃないよね… 悪い意味で枯れてないというか。 いい点でもあるんだけど
459 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 19:31:45.71 ID:MHr1tVrA.net] Unityについて語れるのは Unityで作品を完成させた者のみ 語るものは知らず 知るものは語らず
460 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 19:51:35.70 ID:JSGpve5o.net] 上級者ぶる為にわざと難解な書き方してブログに載せる素人プログラマが多い印象
461 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 20:07:07.92 ID:pGNa23Ii.net] Unity5にて… 角度の違うCubeを二つ用意して接触した状態にして、その接点に向かってSphereを落とした時、 跳ね返ったSphereの軌跡が二つに分かれるのですが、ひとつにする方法はないでしょうか? データを取ると、どちらのCubeが先に衝突判定処理を通ったか、で変わっているように見られるので、 同時に衝突した場合用の優先度があれば、可能なのでは…と考えていますが、そのようなパラメータはあるのでしょうか? もしくは、他に方法があれば、ご教示頂けると助かります…。
462 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 20:32:05.24 ID:FLvMyiRD.net] >>456 同時の衝突はないからそうなる訳で同時に衝突した場合の、という方法はない。 すごい限定された対策だがSphereを落とすときに Physics.IgnoreCollision(sphereCollider,cube2Collider); とでもしておいてOnCollisionEnter()で Physics.IgnoreCollision(sphereCollider,cube2Collider,false); とかする。 .docs.unity3d.com/ja/current/ScriptReference/Physics.IgnoreCollision.html あと見た目は二つのCubeが同じように配されているがコライダーは見た目とずれていて どちらかが上になっている、とかかな。 これはSphereの落ちる速度によっては意味ないかもしれない。
463 名前:455 mailto:sage [2016/05/17(火) 20:56:39.07 ID:pGNa23Ii.net] >>457 回答ありがとうございます。 >同時の衝突はないからそうなる訳で同時に衝突した場合の、という方法はない。 確かに同時に衝突という書き方は誤認される書き方でした。すいません。 パラメータとしてはないようなので、他の方法を考えてみます。 >限定的された対策 この方法も一つの案として、参考にさせて頂きます。 ありがとうございました。
464 名前:名前は開発中のものです。 mailto:sage [2016/05/17(火) 23:23:59.89 ID:kSn04VNU.net] 全然別の物体に切り替えるか速度を望みの動作に強制設定とか?
465 名前:名前は開発中のものです。 mailto:sage [2016/05/18(水) 01:49:51.51 ID:IxPQ81Oz.net] 何言ってるか分からないけど親子関係を 動的に作ればいいとか適当なこと言ってみる
466 名前:名前は開発中のものです。 [2016/05/18(水) 10:45:50.23 ID:/bN/mExs.net] すまぬがプログラム板のC#スレで反応がなかったんで教えて欲しいだけどさあ iOSでLINQを使った際、使えない機能一覧ってどっかにまとまってないかな?
467 名前:名前は開発中のものです。 mailto:sage [2016/05/18(水) 16:02:45.09 ID:uzG6k9QN.net] >>461 qiita.com/RyotaMurohoshi/items/6fb02e50d9e08b487f47 この辺 iOS csharp LINQ でググればいくらでもでてくる、ここで大事なのはC#だと当たりを引けないcsharpって書くのが大事。
468 名前:名前は開発中のものです。 mailto:sage [2016/05/18(水) 16:16:28.70 ID:aFm3BHdm.net] >>461 Unity iOSでLINQを使うと実行時にコケるってのはAOTコンパイラが古いMonoを使ってたのが原因で IL2CPPに切り替わってからはこの手のエラーはほぼ出なくなったと思うんだが? もし実行時にコケるならビルド設定でMonoが選択されていないか確認、選択されていたらIL2CPPに変更して試してみてくれ
469 名前:名前は開発中のものです。 mailto:sage [2016/05/18(水) 16:42:24.84 ID:1q5c9kCV.net] 座標系の計算で勉強になるサイトとかどこかに無いもんですかね 二つの位置からベクトル取って距離やら角度やら計算して動きに反映させる一連の流れを知りたい
470 名前:名前は開発中のものです。 mailto:sage [2016/05/18(水) 17:04:11.09 ID:qQqol+Oq.net] www.sousakuba.com/Programming/
471 名前:名前は開発中のものです。 mailto:sage [2016/05/18(水) 17:09:10.16 ID:1q5c9kCV.net] >>465 ありがとうございまする
472 名前:名前は開発中のものです。 mailto:sage [2016/05/19(木) 11:27:39.89 ID:JapTkgvt.net] Unity5で @AB A B C D E F って感じに表示して@が空欄の状態でAを押すと@がAに変わるみたいにして パーティ選択的なことをしたいんだけどどうすればいい? ○の方の画像を入力した数字に応じて変化させるってのはできたんだけどAから○への数字の受け渡しがどうすればいいのかわからない…
473 名前:名前は開発中のものです。 mailto:sage [2016/05/19(木) 11:44:52.80 ID:w/5fouEY.net] >>467 せめて自分の書いてるコードを書けよw 画像を変化させるってことは何かの情報を「どこか」に受け渡してその画像を変化させてる訳だ。 その「どこか」に数字を受け渡せばいいってだけだろ。 あるいは「別のどこか」に数字を受け渡せばいいんだろ。 何の違いがあるんだ?
474 名前:名前は開発中のものです。 mailto:sage [2016/05/19(木) 12:36:01.44 ID:JapTkgvt.net] >>468 Aのボタンに check = 0; for (int i = 0; i < 3; i++) { //重複してたら6(空白状態の画像)にする if (choice[i] == 0) { choice[i] = 6; check = 1; break; } } if (check == 0){ //重複がなければ空白の場所に0を入れる for(int i = 0; i < 3; i++) { if (choice[i] > 5) { choice[i] = 0; break; } } } Choice0.SendMessage("choice0", choice[0]); } @に SpriteRenderer sr; public Sprite[] c0; void Start() { sr = GetComponent<SpriteRenderer>(); } public void Choice0(int choice0) { sr.sprite = c0[choice0]; } 改行制限引っかかりそうだから{}のとこの改行はいじったけどこんな感じ
475 名前:名前は開発中のものです。 mailto:sage [2016/05/19(木) 13:38:22.62 ID:HwpKTbFM.net] ここスプライト変換は以前やったけど、ググれば出るぞ・・・
476 名前:名前は開発中のものです。 mailto:sage [2016/05/19(木) 13:50:32.91 ID:w/5fouEY.net] >>469 それだけ書ければ普通にわかりそうなもんだがなw これはchoice[]はstaticになっててボタンBだと if(choice[i]==1)とかなる訳?だな? このメンバーが選ばれた、ということを@もしくはABに 送りたいということであればボタン側に public GameObject[] thumnailObjs とかしておいてそこにインスペクター上で@ABをD&Dしておいて thumbailObjs[i].SendMessage("choice0", choice[0]); とかやってやればいい。
477 名前:名前は開発中のものです。 mailto:sage [2016/05/19(木) 13:52:25.98 ID:w/5fouEY.net] うわあ、適当に書いたから誤字しまくりだよw thumnailObjsとthumbailObjsはthumbnailObjsねw
478 名前:名前は開発中のものです。 mailto:sage [2016/05/19(木) 16:08:56.10 ID:DrGbRApl.net] デジャブの気がすんだけどどこぞの専門学校の宿題?
479 名前:名前は開発中のものです。 mailto:sage [2016/05/19(木) 21:22:54.21 ID:JapTkgvt.net] >>471 そう、ボタンBでは1とかになってる 上手くいかないから画像の表示がおかしいのか数値の受け渡しがうまくいってないのか調べてみたら数値の受け渡しがうまくいってないっぽいわ >>473 俺は専門学校でも何でもないど素人が趣味で作ってみてるだけだよ というか専門学校だったらきっと聞かなくてもできるはずなんだ…
480 名前:名前は開発中のものです。 mailto:sage [2016/05/19(木) 21:30:53.08 ID:w/5fouEY.net] >>474 あj〜数値の受け渡しがうまくいかないっていうのは Choice0.SendMessage("choice0", choice[0]); の部分がうまくいってないってことか? もし本当にこれがソースのままだったら上手くいかないのは当然で 少なくとも Choice0.SendMessage("Choice0", choice[0]); でなければならない。 Choice0.SendMessageのChoice0イコール@のオブジェクトでなければならない、 ということが理解できていないならむしろそこが原因だともいえる。
481 名前:名前は開発中のものです。 mailto:sage [2016/05/19(木) 22:52:03.99 ID:JapTkgvt.net] >>475 そこか… そこ直したら普通にできたわありがとう
482 名前:名前は開発中のものです。 mailto:sage [2016/05/19(木) 23:58:38.62 ID:6QWM6BfZ.net] アセットについて質問です。 エフェクト用の素材が欲しく、アセットでフリーで落とせる物を落としてこようと思うのですが、このエフェクトを使用する際に注意や守らないといけないことなどございますでしょうか。 スマホ用ゲームを作っていて完成したら公開(課金も実装する予定です)するつもりなのですが、アセットの物をそのまま使うといけないとか、逆に手を入れるといけない(火のエフェクトを青くするなどの変更)などございますでしょうか。 注意事項等読みたいのですが大体英語で書いてあって理解が出来なく困っています・・・ アセットを組み込んだゲームを公開した後にアメリカなどから突然メールが来て「うちのエフェクト誰の許可取って使ってんだオラァ!200万払えや!アメリカの法廷来いやぁ!」などメールが来ないか怖くてアセットになかなか手を出せないでいます・・・ ご教示お願いします。
483 名前:名前は開発中のものです。 mailto:sage [2016/05/20(金) 00:32:26.68 ID:Jza1z3qo.net] メールは来るよ。金払うしかないから金を準備しとけばいい。それだけ
484 名前:名前は開発中のものです。 mailto:sage [2016/05/20(金) 00:44:05.98 ID:Po/p686/.net] むしろ課金ゲーだと供託金払えメール来そう
485 名前:名前は開発中のものです。 mailto:sage [2016/05/20(金) 01:08:26.02 ID:368p0L/N.net] まあ売れるようなゲームに仕上がる確率は宝くじに当たるより低いだろうから心配しなくておk 公開してもほとんど誰にも知られず消えてくだけさ・・・
486 名前:名前は開発中のものです。 mailto:sage [2016/05/20(金) 02:42:58.93 ID:imTmdaD1.net] >>477 ライセンスは基本は 改変複製不可、 コンパイル済みのものは逆コンパイル不可 ビルドしたものは配布OK 商用利用もOK あたりの筈、なんだけどどれも個別規約がなければ、の話なんだよねw だからもうライセンスは読むしかないよ。他に手段はない。 金儲けしようと思うんだったら準備にもカネかけるしかないよ。 翻訳のサービスはググればすぐ出てくるよ。 質は値段次第ということにはなると思うけど。 あと改変不可と言っても例えばトランスフォームの位置を一切変えてはいけない とかはそれこそライセンスで明示されていない限りあり得ない訳で インスペクターからアクセスできるデータ部分は 「変更されることが予定されている」 と思っていいと思う。まぁそれもライセンス次第ではあるけど。
487 名前:名前は開発中のものです。 mailto:sage [2016/05/20(金) 08:53:01.23 ID:3aKDqwdr.net] 標準ライセンスって改変禁止だったのか ローポリ化もソース改造も出来ないならもうエディタ拡張以外にアセットの使い道無いな
488 名前:名前は開発中のものです。 mailto:sage [2016/05/20(金) 11:36:04.01 ID:9GkhEl9v.net] ライセンスうんぬんの前に売れるゲームの一つも作れ
489 名前:名前は開発中のものです。 mailto:sage [2016/05/20(金) 12:41:28.25 ID:Po/p686/.net] 言えてる 昨日一日Light Probes調べてて消費した もう面倒だからLegacy Shaderでいいわ
490 名前:名前は開発中のものです。 mailto:sage [2016/05/20(金) 14:21:09.38 ID:ucZAkPXT.net] 最新版インストールしようとするとネットワークから切断されて再試行って出てくるんだけどどうすればよろしいでしょうか win10
491 名前:名前は開発中のものです。 mailto:sage [2016/05/20(金) 18:59:05.23 ID:92qhpj6m.net] モデルの形に沿ってきちんと当たり判定取る方法無いかな… MeshCollderだと細かい部分が省かれて思った通りにいかない…
492 名前:名前は開発中のものです。 mailto:sage [2016/05/20(金) 19:25:14.84 ID:imTmdaD1.net] >>485 ネットワーク環境を見直す。 ただUnityはなんか昔からWeb関係は弱くてアセットストアにつながらねぇとか 落としたインストーラが壊れてるとか頻繁にあったので向こうの問題ならどうにもならないなw >>486 自分で書くしかないね。 衝突判定処理の中身をちゃんと知れば恐らく今なぜ思った通りにいかないのかの理由もわかると思うよ。
493 名前:名前は開発中のものです。 mailto:sage [2016/05/20(金) 19:58:38.82 ID:92qhpj6m.net] わかりづらくて申し訳ないです こういうことです sssp://o.8ch.net/c3u6.png
494 名前:名前は開発中のものです。 mailto:sage [2016/05/20(金) 20:57:55.85 ID:imTmdaD1.net] >>488 MeshColliderをconvexにした場合そうなる。 convexというのは凸包という意味だ。 RigidBodyをつける場合にはこれにしなければならない。 なぜそういうことになるかというと凸包でない剛体のモーメント計算など リアルタイムではやってられないからだ。 またメッシュコライダー同士の衝突も少なくとも片方は凸包にしなければならないのは やはり計算が爆発的に増えるからだ。 MeshColliderの中身は推測するしかないが恐らく一面一面をコライダーとしている。 つまり100トライアングルのメッシュを使うということは100個コライダーをつけるということだ。 二つの100トライアングルメッシュ同士で衝突計算した場合1万回の衝突判定が行われることになる。 こういったことはリアルタイムゲームではやってられないので そういうのは最初から無しにしようというのがUnityの仕様。 だからその事例でその形に判定をとりたかったら Colliderに使うメッシュをあらかじめ凸包要素に分割した上で 複数のMeshColliderを使うくらいしか方法はない。 勿論Convexにしなくていい、という事情があればそれだけでもいい。
495 名前:名前は開発中のものです。 mailto:sage [2016/05/20(金) 21:14:24.30 ID:92qhpj6m.net] >>489 なるほど余計なチェック入れてたのが原因だったんですね!ありがとうございます!
496 名前:名前は開発中のものです。 mailto:sage [2016/05/20(金) 22:10:05.81 ID:/E6CTDJa.net] >>488 凹形状で困るというと歯車でも作ってるんかね? Unityが採用しているPhysXエンジンはstaticでない凹(concave)な形状を扱わず、単純に凸(convex)形状に変換して演算するという仕様 convexにチェックを入れないとMeshCollider同士が衝突しなくなるので注意な
497 名前:名前は開発中のものです。 mailto:sage [2016/05/21(土) 00:21:15.77 ID:o2apVCjl.net] 質問です。 パズドラを作るとしてシーンをまたいで情報がほしい下の2つを実装するとしてみなさんはどう実装しますか? @.全てのシーンで必要な情報、情報量は少ない。 すべてのシーンで必ず読み込む ex.ユーザー情報(ユーザー名、魔法石の数、パーティ構成モンスター番号など設定してあるもの) A.特定のシーンで必要な情報で、情報量は多い。 この情報を読み込まないシーンも有る。 ex.モンスターの情報。 パーティ構成モンスター番号の参照先。 全てのモンスターの画像、ステータス、レベルごとの伸び幅、成長経験値テーブル、スキル、スキルエフェクト……などなど情報が多い。 最初のタイトル画面から@もAも専用のGameObjectを用意しておいて「DontDestroyOnLoad(this);」でシーンをまたいでも壊れないようにしてそこに情報の読み込み、更新をかけようと思っています。 色々なシーンで使う情報を作るのは初めてでどうしようか悩んでいます。
498 名前:名前は開発中のものです。 mailto:sage [2016/05/21(土) 00:42:29.32 ID:SWXbsePJ.net] それで行けそうならいいんじゃないか? 俺は異論はないぜ 組み方に答えは無いからな
499 名前:名前は開発中のものです。 mailto:sage [2016/05/21(土) 00:54:07.23 ID:XIKl4tZh.net] なぜググったほうがずっと情報豊富で即回答が得られるような質問をすんだろうかねえ ひょっとして教えたい君に気を使ってるの?
500 名前:名前は開発中のものです。 [2016/05/21(土) 01:45:35.72 ID:OwBOct4Q.net] >>494 上のような質問を的確にググるにはキーワード何さ
501 名前:名前は開発中のものです。 mailto:sage [2016/05/21(土) 02:21:46.02 ID:LaEf0vmk.net] 「何でしょうか」だろ!? なんだその口の利き方は!!チョンか!?
502 名前:名前は開発中のものです。 mailto:sage [2016/05/21(土) 08:44:22.39 ID:nPb62Y84.net] >>492 PCのみの動作ならば全部読み込んで保持しとく富豪プログラミングでいいと思う モバイル機での動作を考えているならメモリーを出来るだけ節約してゲームの方に回したいからシーンに必要のない情報をシーンに展開したくないな この手のゲームはバージョンアップで要素や演出の追加が起こり得るので極力余裕を残した作りにしておきたいと考える 前者は常時展開しておくのに異論はない 後者は全ての情報を持つのではなく、最初に読むのは最小限に留め、Rerources.Loadで随時追加読み出来るようにしといて必要になる前の余裕のありそうなところで動的に先読みをかけるように組むかなぁ 数値やデータはともかくテクスチャは無駄に読み込んでおきたくないのでRerourcesのキャッシュもこまめに開放したいところ 「使わないシーン」がメモリ負荷の低いシーンであれば全て展開してしていても問題ないだろうし読み込み時間によるラグも考慮しなきゃいけない この辺の設計は普遍的な正解があるわけじゃなくて、外部仕様次第で都度考えて内部仕様を書く感じになるから、作るものに合わせるのがベスト
503 名前:名前は開発中のものです。 mailto:sage [2016/05/21(土) 09:35:48.01 ID:7exjwWsC.net] ここまで自演? なんでこんな事を偉そうに答えれるんだろうな マニュアルかどっかのリンク貼ればいいだけだろ
504 名前:名前は開発中のものです。 [2016/05/21(土) 09:53:07.23 ID:OwBOct4Q.net] >>498 だからそのマニュアルなりリンクなり検索ワード頼むよ
505 名前:名前は開発中のものです。 mailto:sage [2016/05/21(土) 09:56:00.90 ID:7exjwWsC.net] 本気に言ってたのw Unity データ保存 シーン遷移 シングルトン とか適当に組み合わせれば幾らでも出てくる
506 名前:名前は開発中のものです。 mailto:sage [2016/05/21(土) 10:55:57.49 ID:vgTUIEiB.net] データ保持用オブジェクトを作って、DontDestroyOnLoadを設定する っていうのは定番だけど、エディタからの再生がちょっと面倒くさい気がする。 Awake()のタイミングなりで、データがなければ特定シーンに飛ばすとか、 シングルトン設定して各シーンに配置、それぞれに適したデフォルト値を設定するとか、 みんなはどうやってる? あとはエディタ拡張を使う方法もあるみたいだけど、やったことないんで分からん
507 名前:名前は開発中のものです。 mailto:sage [2016/05/21(土) 12:13:02.92 ID:gD6w+TQT.net] Awakeでシーン飛ばすとか冒険過ぎる 何かあったら無限ループバグになるぞ
508 名前:名前は開発中のものです。 mailto:sage [2016/05/21(土) 12:18:47.79 ID:vgTUIEiB.net] まああくまで一例として。楽だしね。
509 名前:名前は開発中のものです。 mailto:sage [2016/05/21(土) 12:37:50.84 ID:xhT3S4jm.net] >>492 staticなデータ保存用のクラスを作って、そこの中のstaticな変数に保存したら良いのでは?
510 名前:名前は開発中のものです。 [2016/05/21(土) 12:41:08.87 ID:h0WbG+T2.net] >>500 バカでもわかるとか言って答え言わない類と思ってな。すまそ けどユニティ界隈では知らんけどシングルトンはバッドノウハウだと思うぞ。 一番の理由はテスタビリティの欠如
511 名前:名前は開発中のものです。 mailto:sage [2016/05/21(土) 12:45:08.18 ID:LaEf0vmk.net] >一番の理由はテスタビリティの欠如 はいバカ確定
512 名前:名前は開発中のものです。 [2016/05/21(土) 12:51:47.54 ID:h0WbG+T2.net] うんだからどうバカか説明したら?
513 名前:名前は開発中のものです。 mailto:sage [2016/05/21(土) 13:12:37.83 ID:vgTUIEiB.net] 別にシングルトンを使いたいから使ってるってわけではないからなあ。 あくまで目的を達成するための手段でしかないわけで 手軽で適切で、かつ標準的な方法があれば、そちらに是非移行したいところ
514 名前:名前は開発中のものです。 mailto:sage [2016/05/21(土) 13:51:08.41 ID:ge72jDbD.net] さっきから何を問題視しているのか分からん エディタから特定のシーンを再生出来ないってただの設計ミスじゃないのか?
515 名前:名前は開発中のものです。 mailto:sage [2016/05/21(土) 14:46:17.47 ID:vgTUIEiB.net] >>509 ざっくり言うと、面クリア型のゲームにおけるリザルト画面みたいなやつ。 他シーンから得点等を受け渡される前提のシーンだろ?
516 名前:名前は開発中のものです。 mailto:sage [2016/05/21(土) 14:55:42.00 ID:Cznvtddf.net] 俺は>>508 や>>500 じゃないけど 富豪プログラミングで、最初に全データをロードしてインスタンスも作っておけば 画面遷移時=ステータス遷移だけですむからシングルトンはいらないし、 スマホみたいにメモリが少なかったりデータ量が大きい場合は、画面遷移時にデータロードやインスタンス生成しなきゃいけないから そこをシングルトンにしておけば(呼び出される側でインスタンスを1つになるよう制御してくれるので) 毎回インスタンス生成するようなコードにできて楽(呼び出し側の分岐も減るのでテストも楽)、 ってことじゃないの? ちなみに俺は富豪プログラム専門。。。体がなまってくるぜw
517 名前:名前は開発中のものです。 mailto:sage [2016/05/21(土) 15:14:56.99 ID:f1MT5Kg0.net] >>510 それリザルトシーンに同じスコア管理クラスを置いておけば何も問題起きないはず 前シーンから何も引き継いでいなければ生成されたインスタンスを初期値で使う 引き継いでいれば重複してしまったインスタンスをAwakeでオブジェクトごと自殺させる むしろシングルトン最高って叫ぶ場面だ
518 名前:名前は開発中のものです。 mailto:sage [2016/05/21(土) 20:28:14.16 ID:vgTUIEiB.net] >>512 あれ、自分(>501)は全く同じ話をしてたつもりだったんだけど
519 名前:名前は開発中のものです。 [2016/05/21(土) 21:06:17.72 ID:2Y2rq4mW.net] >>506 結局何でバカかの説明ないのか(´・_・`)
520 名前:名前は開発中のものです。 mailto:sage [2016/05/21(土) 21:14:25.35 ID:DYC5g6rn.net] プレハ
521 名前:ブのインスタンスを共有するだけでいいんじゃないの isじゃなくてhasだぞ [] [ここ壊れてます]
522 名前:名前は開発中のものです。 [2016/05/21(土) 22:09:09.68 ID:QIEQL/sm.net] #pragma strict public var target : Transform; function Start () { } function Update () { transform.position = target.position; transform.LookAt(target); if(Input.GetKey(KeyCode.Q)){ this.transform.Rotate(0,-120*Time.deltaTime,0); } if(Input.GetKey(KeyCode.E)){ this.transform.Rotate(0,120*Time.deltaTime,0); } if(Input.GetKeyDown(KeyCode.Z)){ this.transform.Rotate(-90,0,0); } if(Input.GetKeyDown(KeyCode.X)){ this.transform.Rotate(90,0,0); } } 上記のスクリプトをアタッチしたオブジェクトを親にし、子にMainCameraを持たせてキャラクターを追随させようとしたのですが、 キャラクターの細かなブレを読み取ったのか終始カメラがぶれてしまいます。 キャラクターのRigidbodyのisKinematicのチェックを外したらブレは無くなるのですが、キャラクターが他のオブジェクトに力を与えることができなくなってしまいます。 どうすれば解決できるでしょうか
523 名前:名前は開発中のものです。 [2016/05/21(土) 22:14:51.32 ID:QIEQL/sm.net] >>516 また、下記パラメータのCharacter Controllerを外したところブレは無くなります Character Controller Slope Limit 45 Step Offset 0.03 SkinWidth 0.0001 Min Move Distance 0 Center X:0 Y:0.8 Z:0 Radius 0.51 Height 1.6
524 名前:名前は開発中のものです。 [2016/05/21(土) 22:18:00.80 ID:QIEQL/sm.net] >>516 すみません、訂正です。 isKinematicにチェックを入れたところブレは無くなります
525 名前:名前は開発中のものです。 mailto:sage [2016/05/21(土) 22:43:18.30 ID:zAGYzsp7.net] >>516 まぁ正直何とも言えんのだが CharactorControllerとRigidbodyを同時に使えば 基本的には必ずガタガタする。 なぜならば本来CharactorControllerというのはRigidbodyの代わりに使うものだからだ docs.unity3d.com/ja/current/ScriptReference/CharacterController.html "CharacterController は Rigidbdy による処理を持たなくてもコリジョンによって簡単に動きの制限を行うことが可能です。" 同じような働きをすべきコンポーネントが二つ付いているから2重に処理が行われる。 例えば地面の上に立っているというだけでも ・地面にめり込む→押し戻す という処理が二回行われる。 当然次のフレームでは浮いているので今度は落ちる処理が入る。しかも2回。 次のフレームではまためり込むので押し戻される、2回。以下ループ
526 名前:名前は開発中のものです。 mailto:sage [2016/05/21(土) 22:47:48.74 ID:7exjwWsC.net] >>516 >子にMainCameraを持たせてキャラクターを追随させようとしたのですが 安直に子にせずカメラに追従スクリプトを付けましょう スタンダードアセットにもあるしフリーのも色々ある あと>>519 の言う通りCharacterControllerとRigidbodyを両方使う意味はない 他にはjava以外やりたくないならともかく初心者ならjavaもどきは止めてC#がいい 無理せずにマニュアル読んでチュートリアルを基礎からやったほうがいいよ
527 名前:名前は開発中のものです。 [2016/05/21(土) 23:09:28.41 ID:QIEQL/sm.net] >>519 >>520 ありがとうございます。自分があまりに未熟すぎました。 しっかり勉強して出直してきます。
528 名前:名前は開発中のものです。 mailto:sage [2016/05/21(土) 23:24:38.83 ID:vgTUIEiB.net] そういやスタンダードアセットのカメラって使ったことなかったなあ。 単にイージングで追従するだけだったので、自前でさくっと書いてたレベルだけど 使ったらだいぶ便利になるのかな