【3Dゲームエンジン】Unity質問スレッド34
■ このスレッドは過去ログ倉庫に格納されています
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。 プラットフォームサポートは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質問スレッド33 https://mevius.5ch.net/test/read.cgi/gamedev/1513643755/ >>443 While(true)は無限ループ これだと一度このコルチーンに入ると永久に連射してるっぽかったです。 チュートリアルがおかしいのかも。 Breakの無いループは普通は使わない。 if でinput.getkeyのやつもコルチーンにして、そこからまたコルチーン入れてみたらけっこういい挙動でした。 回答ありがとう。 >>444 OnEnableいいですね。 ちょっと試してみます。 UpdateにStartCorutine書くと次のフレームもコルチーン入ってるような気がしてスッキリ来なかったのです。 まあ、同じコルチーンのStart命令はシステム的にキックしてないかなと思ってるのですが。 質問、今2dのマルチプレイゲームを作っているんだけどキャラクターアニメーションの同期がわかんねえ void FixedUpdate () { if (!gameClear) { if (!isLocalPlayer) { return; } float x = Input.GetAxisRaw ("Horizontal"); if (x != 0) { rigidbody2D.velocity = new Vector2 (x * speed, rigidbody2D.velocity.y); Vector2 temp = transform.localScale; temp.x = x; transform.localScale = temp; anim.SetBool ("Dash", true); if (transform.position.x > mainCamera.transform.position.x - 4) { Vector3 cameraPos = mainCamera.transform.position; cameraPos.x = transform.position.x + 4; mainCamera.transform.position = cameraPos; } Vector2 min = Camera.main.ViewportToWorldPoint (new Vector2 (0, 0)); Vector2 max = Camera.main.ViewportToWorldPoint (new Vector2 (1, 1)); Vector2 pos = transform.position; pos.x = Mathf.Clamp (pos.x, min.x + 0.5f, max.x); transform.position = pos; } else { rigidbody2D.velocity = new Vector2 (0, rigidbody2D.velocity.y); anim.SetBool ("Dash", false); } isLocalPlayerでDashのアニメーションを止めているんだけどその時に一緒に書いてある画像反転も止めてしまうからそれをどうにかしたい、わかる人お願いします >>448 ちょっと何言ってるかよくわからないんだけど、画像の反転ってスケールでやってるの? スプライトのフリップ機能で反映してるなら、キャラの向きも通信に乗っけて各々のクライアントで反映させればいいだけじゃない? for (int i = 0; i <MaxCount; i++){ instantiate(Bullet, transform.position, transform.rotation) yield return new WairForSecond (0.5f) } でWhile(true)付けろ言ってたのって、このforも含めて、全体で付けろって意味だったのね。 チュートリアル進んで知りました。 >>448 そのソースだけだとリモートキャラのアニメが動かないように思えるけど、 とりあえず自分ならこんな感じで書いてしまうな float prevX; void Update(){ if(!isLocalPlayer){ if(prevX - transform.position.x != 0){ anim.SetBool ("Dash", true); }else{ anim.SetBool ("Dash", false); } prevX = transform.position.x; } } >>449 スケールでやってるよ スプライトのフリップ機能ってtransform.localScale.x を -1 にするやつのこと? それだったらやってあるけど >>451 これでやれば一応動くけど画像の反転だけが反映されない 書いてもらったコード打たせてもらったらDashのアニメーションと画像の反転が反映されなかった >>452 スケールの同期が出来てないだけじゃない? ポジションと同じように同期させたらいいんじゃない? もしくは既に回転が同期できてるならY軸回転で反転するのもありだよ >>452-453 もうここまで来たら>>451 をこうするだけじゃん? if(!isLocalPlayer){ float tmp = prevX - transform.position.x; prevX = transform.position.x; if(tmp != 0){ anim.SetBool ("Dash", true); transform.localScale = new Vector2((tmp > 0? 1: -1), 1); }else{ anim.SetBool ("Dash", false); } } >>454 >>455 俺が理解できてないせいでやっぱりできないわ >>456 NetworkTransform使ってるんだよね? 使ったことないからわからんけど、これって位置と回転は同期してくれそうだけど、スケールの同期はしないんじゃないの? とりあえず、syncRotationAxisをYにして、向きをY軸回転(0°と180°かな)でやってみなよ >>456 プログラムの知識がない人はアセットを買いましょう スクリプト貼られて有意義なスレの流れだな もっとプログラマ来て欲しい プランナーとデザイナーは消えろ ここはプログラマのスレだ 別にええじゃろ PlayMakerでもArborでも宴使ってもUnity使いであることには変わらんわけだし webGLの最初のローディング画面の修正方法を探しているのですが、どこかに解説ありますでしょうか。公式のマニュアルは見たのですがわからず… >>463 実はここの説明読んだのですがちんぷんかんぷんでした(汗 単純に画像表示してnow loading...と表示したいと思っています。 >>465 それくらいのことならエクスポートされたファイルと、このドキュメントを見れば簡単にできるけど、HTMLとCSSとJavaScriptの知識は必須だから、まずはそこから勉強だね 了解です。単純に読み込み中はjavascriptで描画してると書いてた意味が繋がりました。しっかりhtmlとjs見て自分で描画してみます。ありがとうございますm(_ _)m GPLだと思われるDLL(MySQL.DLL)が含まれてるアセットがいくつか売られてるけど、そういうのってUnityとの契約の上で問題ないんかな? これが良いのなら俺もアセットを売りたい スクリプトについての質問なんですが、Camera.ScreenPointToRayのリファレンス https://docs.unity3d.com/ja/540/ScriptReference/Camera.ScreenPointToRay.html に書いてあるのをコピペすると Ray ray = camera.ScreenPointToRay(new Vector3(200, 200, 0)); の部分で、暗黙的にRayに変換できないとエラーが出るのですが、何かやり方が間違っているんでしょうか。使用しているUnityのバージョンは2017.3.1.f1(64bit)です。 マインクラフトのインベントリのようなものを作りたいと思っています つまりインベントリ内の位置情報も持つ必要があると思うんですが どういうクラスにしたらいいか迷っています public class Inventory { Item item(アイテムの名前やら効果やらが入ったアイテムクラス) int slotIndex(インベントリ内の位置情報) } このクラスのListを持っていれば大丈夫でしょうか? それとももっといい方法ありますか? >暗黙的にRayに変換できないとエラーが出る 明示的に「Ray ray = (Ray)camera.Scree〜」でおkのはず。 >>471 明示的に変換しようとすると 'UnityEngine.Ray' を 'Ray' に変換できません とやはりエラーが出ます。リファレンスが5.4のものなので何か変更があったんじゃないかと思っているんですが・・・ 質問失礼します。 Cameraで見ている画面を一時停止して、写真のような機能を作りたいと思っています。 流れとしては、携帯オブジェクトの画面にメッシュを設置、外カメの位置に置いたCameraからマテリアルを通じて画面に投影 そのままカメラの画面を停止(撮影)して、他オブジェクトにその撮影したマテリアルを割り当てて表示する というのを考えていますが、カメラの一時停止の方法が分かりませんので教えてもらいたいです。 >>470 俺ならListに持たせるのはIdと個数だけかな 同じ Idで属性違いとか、アイテム毎に耐久値とかあるならアイテムクラスが必要だけど slotIndexもList内の場所がindexそのものだし要らないと思う >>473 カメラを止めるというかrenderTextureに残す形で出来ると思う >>474 補足だけど アイテムの名前、効果、効果値、買値、売値、アイコンファイル名、prefab名、 その辺は全部エクセルで管理してランタイムではscriptableObjectに変換してそのListやdictionaryにぶち込んでおく Idからそのアイテムの情報を取得する役割のmasterDataクラスを作る >>475 なるほど、難しくない操作かもしれませんが、初心者なもので・・・ よければご教授願えませんか >>471 すいません、できました。 なぜかMonoBehaviourは継承しているのに no monobehaviour scripts in the fileになっていたので そこを修正したら暗黙的に変換できました。 >>477 進行状況ですが、renderTextureにカメラの画像をリアルタイムに映すことは成功しています。 >>474 >slotIndexもList内の場所がindexそのものだし要らないと思う 自分も最初そう考えたんですが、そうなると例えば一つのチェストの容量が30あるとして まず30個の空のデータを容量としてを確保しないとダメですよね? 結構な数のインベントリを用意するタイプのゲームを考えてたので躊躇してたんですが これって大した容量にならないんですかね? 予想としてはだいたい500位のインベントリなんですけど 横レスだけど、自分ならリストにインベントリクラスを格納かな。 ソートや所持品の種別総数が取りやすいからね。 まあ、旧ガラケーじゃ無いんだから千、万単位じゃなければ設計前から気にする程のモノじゃないよ。 カメラを撮影すると言う端末側のOSに通達されるであろうイベントにアプリが反応できるようにバインドしたらいいんじゃね おれも初心者だから適当な事言うけど。 >>483 アプリではなく、PCでの動作を予定しております。 ※なお、Unity 5.5現在シーン ↑これの所為かもしれんが、まぁチュートリアルは最新のVersionで差し替えて欲しいね マウスでクリックしたオブジェクトを検知する為だけにBoxColliderを使用しています。 オブジェクト同士の衝突判定はしていません。 この場合IsTriggerはOnにした方がいいですか 処理速度とかになにか影響はしますか ゲームパッドの種類を判別するにはどうしたら良いか誰か分かる? >>487 このバグまだ起こるか? とうの昔に改善されてる印象なんだが UnityってDynamicオブジェクトのライトマップ自動じゃなくデフォルトでオフなんだな。 だれかUnityはパフォーマンス重視でデフォルト設定してるとか言ってたけど。 X BOXかPSシリーズのコントローラしか使えない。 キーボードの押したキーをそういうアナログゲームパッドじゃないゲームパッドで使うなら、JoyAdapterかな XP時代にリリースされて更新されてないけど、おれもWindows10で使ってるし、使える。 https://www.vector.co.jp/soft/win95/util/se069688.html 近くにX BOXのコントローラ売ってるけど、いまんとここれで遊べてるから困る。フリーウェアだしさ。 unityのAndroid版ビルドについて質問があるのですが...。 SDKとJDKをインストールし、パスを指定するところまでは出来たのですが ビルドボタンを押すと以下のエラーが出て来てしまい、ビルドすることができません。 SDKのパスは /Users/ユーザー名/Library/Android/sdk JDKのパスは /Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home です。 OSはMac Book Proで、Android版へのスイッチプラットフォームは完了しています。 きちんと最新版をインストールしたつもりなのですが、何故ビルド出来ないのでしょうか。 解決方法を知っている方がいましたら、ご回答頂けると嬉しいです。 以下、エラー部分のスクリーンショットです。 https://dotup.org/uploda/dotup.org1486884.png.html 何卒、よろしくお願いいたします。 なんだっけ最新版はダメとか誰かゆってた気がする あとはググって! >>495 やはり最新版はダメのですか。 SDKとJDK、どちらも旧バージョンを使用する場合、どのバージョンを使用する方が良いですか? 色々サイトを巡回してみたのですが、具体的なバージョンが指定されていなかったので....。 >>4941 補足質問よろしいでしょうか。 現在、3つのエラーが出ているのですが、それぞれ何が原因なのかを教えていただけないでしょうか。 >>497 アセットを買えば>>4941 に伝わると思います /Android/android-sdkoid/android-sdk sdkはAndroidstudioをいれたsdkだな これは最新かな?忘れた jdkは jdk1.8.0_152 てある とりあえず俺はこれで動いておるぞ あと俺はwindowsなのでmacは知らん Mac Book ProってOSは知らない MacでVisual Studio使ってたら厄介だね 初歩的な質問なのですが、Unityを初めBlenderやMakeHumanなどのソフトは、 オープンソースのフリーソフトということになっていますが、そのソースコードは、 どこで公開されているのですか? 検索してもなかなか見つからず、ここで質問した次第です。 よろしくお願いします! MakeHumanでぐぐったら http://www.makehumancommunity.org/content/downloads.html にいけるので If you want to download the source code for MakeHuman and/or run from a source snapshot, see the MakeHuman repository on Github. って書いてあるぞ丁寧にリンクまで貼ってあるけど、ほんとに検索したの? >>504 カルタ取りが苦手なもので、見つけられなかったwサンキュー!! しかしダウンロードはしたがわからないことだらけ・・・ ソースはVisualStudioでは開けないみたい。py拡張子って何!? 1から勉強する必要があるな・・・w >>504 ダメだよ親切に教えてはキムチは少しもググってはいない。 昔から自分でググらず人に調べさせて手柄だけ持っていこうとしてるセコイやつで有名。 本人が昔そう発言していたから情報源に間違はないぞ。 これからは気を付けた方がいい。 webglでブラウザ上で実行させようと追うのですが、これってリバースエンジニアリングで中身見られますでしょうか。データベースにアクセスするクエリとか書いたらパスワードとか利用者様にばれてしまうのではないかと… >>508 JavaScriptではもちろん丸見え しかし仮にexeで配布したところで逆コンパイルされれば見えてしまうのは変わりないから、ソースにパスワードを載せるのが間違いだな データベース運用するならサーバー側にエンドポイントを用意して安全に使うべき unity初心者です。ググっても解決法が見当たらず質問させて下さい。 リップシンクでOVRLipSync使ってみたんですが ゲーム画面がアクティブ時と非アクティブ時でずいぶん 口の形が変わる感度が変わっちゃうんですが 仕様なんでしょうか。2017.3.1f1使用です。 おれもここ来たばっかのときキムチくんがインポートしたモデルのマテリアル編集出来ないとか言うから、やってみたらあっさり出来たんであ然とした。 しかもUnityに移籍して3日ぐらいのUE4触ったことある初心者でまったくマニュアルみないでUE4でやってたようにやったらあっさりと… 単純に、自分のコリジョンに自分の弾があたって爆発しないようにするため弾にPlayerBulletってタグつけてるんだけど、 下図のような感じでPlayerBullet is not Definedって出てしまう。 https://i.imgur.com/cqKuxxo.png なぜだろう 2DShootingのチュートで、自機に自分の弾で爆発するから、下図のように https://i.imgur.com/WrajpDg.png PlayerBulletと自分の弾にタグ付けて、タグを見てPlayerBulletならば、何もするなって書いてる。 そして、爆発させたらその爆発させたやつのタグをデバグウィンドウに出せと。 テストプレイすると・・・ https://i.imgur.com/gLQeX3m.png デバグコンソールにしっかりPlayerBulletだと出力して、自機を爆発させやがった・・・ なんでこれ・・・ PlayerBulletなら何もするなと書いてたはずなのに >>515 c.gameObject.tag== じやなくて? >>509 ありがとうございますm(_ _)mログイン後、クッキーにAPIkey入れて、サーバ側と通信できるような仕様にしたいと思います unityで開発始めようと思うんだけど unity2018からmonodevelopがサポートから外れるんだね 今unity2017でmonodevelopで開発して、unity2018リリースされたらアップデートしてVisualStudioに変更して 互換性とか大丈夫なんだろうか >>515 Collider2D cが弾だと言うならこう書く if(c.CompareTag("PlayerBullet") == true) なんで比較してるんだよ スクリプトリファレンスに書いてあるだろ ダークスキンに恥じない行動を心掛けろよ 無料版の俺に謝れよ >>521 すまん、おれも無料版(Personal Edition)なのだが。 ダークスキンにするってバッチファイル適用しただけなんだ。 void OnTriggerEnter2D(Collider2D c) //Triggerでspaceship.Explosionメソッドを呼び出す。(現状タグPlayerBulletは無視) { if (c .tag("PlayerBullet")) { } else { Destroy(c.gameObject); spaceship.Explosion(); Destroy(gameObject); // Debug.Log(c.tag); } } } にしたら想定どおり動いたw そりゃこのオブジェクト(Player.cs)と衝突したオブジェクト(PlayerBullet.cs)を較べたら意味なかったな… とにかく、ありがとう MonoDevelopperもVisual Studioもテキストエディタだしな基本的に。 補助機能とかが違うだけ。 C#と.NetFrameworkの親和性はVisual Studioのほうが高いし。なにせ両方の開発元だから。 いまからVisual Studioに慣れておくのもいいんじゃないか。 if (c .tag("PlayerBullet")) { } else { Destroy(c.gameObject); spaceship.Explosion(); Destroy(gameObject); // Debug.Log(c.tag); } 確かに何もしない時の処理なんだけど、コード的には if (!c .tag("PlayerBullet")) { Destroy(c.gameObject); spaceship.Explosion(); Destroy(gameObject); // Debug.Log(c.tag); } にした方がすっきり感も 「!」で否定になるので、PlayerBulletじゃなかったら処理するよとなります。 まぁ好みかなぁ… >>524 今ってC#スクリプト生成すると自動でMonoBehabierを継承したクラスファイルが生成されるじゃん VisualStudioでも同じなのだろうか 個人的にはVisual Studioのほうが使い勝手良い気もするが。 やはり、個人にとって使い慣れてるほうがいいんだろうな。 デバグの仕方もMonobehaviourと変わらないし。 MonoBehaviourのデバグの仕方のチュートみながら、Visual studioでわかるレベル。 ありがとう まだ2018はベータ版しか出てないから2017で エディターをvisual studio for macに変えて開発する >>528 >デバグの仕方もMonobehaviourと変わらないし。 Monobehaviour? monodevelopじゃないのか?www >>524 今はvisual studioも無償版でも有償並の機能載せてきてるから方針転換してるのかもね。 本当はメモリを食わないVSCodeが良いんだろうけど、プロジェクトにゴミアセットを追加しないとならないのがちょっと嫌・・・・ >>494 まず、パスの/arataniryosuke/の部分を、/niidaniryosuke/とか/arataniryousuke/とか変えて試してみようぜ >>525 あ、何もしないなら if (c .tag("PlayerBullet"))return; の方が解りやすいかな 先日教えてもらったMakeHumanのコードをDLしてメモ帳で開いていま一生懸命調べているんですが、 コードの量が膨大なせいか、なかなか調べたい部分を発見することができません。 コード自体はC++に似ているような気もしますが、別の言語のような気もするしそこはよくわからないのですが、 別の言語だとしてもこれだったらC++に移植できそうな気もします・・。 ただ一見するとちゃんとしたところで開発されている割にはオブジェクト指向になってなくて、 泥縄っぽく見えますが、そこら辺どうなんでしょうね・・? 当方が見たいのは、目とか首とか鼻とかのメッシュをパーツごとにどのように変形させているかという部分なのですが、 そこをさがすのはなかなか大変で、何というファイルの何行目あたりにそれが書かれているかがわかれば、助けになるのですが・・・ 一見するとどこを読んでもGUIに関連したようなコードしか出て来ず、それを探すのもなかなか大変な作業です。。。 上にパイソンだって書い手アルのも読めないなら君には無理 だいたいメモ帳で開くこと自体ありえないだろ 行番号もコードの色分けもないのに 行番号降ってて色分けしててもわからないやつがメモ帳で開いてなにをしたいのかと >>540 >だいたいメモ帳で開くこと自体ありえないだろ メモ帳をバカにしてはいけない。メモ帳で開いてコピペしてVisualStudioに取り込むのよ。 それでビルドしてエラーが出たところを修正すればだいたいOKだろう? ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる