【ゲームエンジン】Unity初心者質問スレBuild3
レス数が900を超えています。1000を超えると表示できなくなるよ。
DOTSでビジュアルスクリプトできるようになるってことはPLAYmakerは死ぬんでしょうか? DOTSのECSとか意味がわからんな
普通にコンピュートシェーダーじゃあかんのかという疑問しかない
要するにマルチスレッドCPUの最適化というだけでGPU使ったコンピュートとは別ってことかな
違いのわかるエロい人はここにいるやろか 最近Macを使い始めました。
外付けのHDDにUnityプロジェクトを作成し、
VisualStudioでソースコードを編集したあと、コマンド+sを押して*.csファイルを保存しようとしたのですが、保存できません。
VSに外付けのHDDへのアクセス権限がないのでしょうか?
どうすれば保存出来るか教えて頂けると助かります。
宜しくお願いいたします。 そういうのは自分でググって解決できるようにならないと意味ないぞ >>839
コンピュートシェーダーとかで自前でフィジックスとかアニメーションとかもろもろ作るの?それをナイスにやれるようにしてやんよってのがECSだと思うのだけど >>843
DOTSはCPUに依存するからベストとは言えない言う人が
海外フォーラムにいたから、何の意味があるんだろうって疑問が再熱してる
数千オブジェを動かすとかなら良いかもしれないけど
100万超えるようなもの(スキャッタとか)なら最初からGPUに流し込んだ方がええのではと思った すめんスキャッタがよく分からんけど、VFXグラフがカバーするあたりなんちゃうの? Unityでモデル作ってVRChatで試してみたんだけど歩いたり走ったりすると自分の顔に埋まって前が見えなくなるのですがこれって視点を外にしないとダメなものなのですか?参考にしたものでは視点を頭の中に入れていたのですが >>847
すみませんカリングの設定はどこにあるのでしょうか >>848
マテリアルでシェーダーのプロパティにない? >>846
方法1
頭のメッシュを削除する
方法2
頭が表示されない程度にカメラのClipping PlanesのNearを調整する
方法3
頭オブジェクトにLayerを設定する
カメラのCulling MaskでそのLayerをオフにする >>849
Culling Modeがありました!今はBack CulingになってるのですがこれをFront Culingにすればいいのでしょうか?
それともOFFにするのでしょうか >>850すみません本当に初心者でわからないのですがBlenderで制作した場合はBlenderの時点で頭をいじれってことですか?
Unity側にはボディしか出てなくてメッシュがいじれないです >>851
バックのままでいい
スクショとか見ないと分かんねーな Unity2018を利用しています。
uGUIでユーザインターフェースを実装しています。
クリックした場所へ移動するというMMOでありがちな操作方法で動いています。
GUIをクリックしたときは動かないようにしてあるのですが、GUIの閉じるボタンをファンクションで動作させると、
GUIが閉じた瞬間に閉じるボタンがあった場所へ向かって移動をしてしまいます。
どうも閉じるボタンのファンクションが実行され、パネルが閉じた後でクリックした場所のRaycastを取得してしまい、
移動が暴発してしまうようでした。
仕方なくパネルを閉じる場合はは閉じるボタンのファンクションではなく、プレイヤーを操作しているクラス内で
閉じるボタンがクリックされたかどうかを判定しパネルを閉じているのですが、
毎回GetComponentやらFindやら重い処理で閉じるボタンの判定することとなったり、
すべての閉じるボタンを保持しておいてRaychastで取得したボタンと一致するかどうかを判定する、
とかボタン登録の量から考えて非現実な手法であったり、
名前を統一してその名前で作られたボタンを閉じるボタンにする、としたら同階層で名前の違う閉じるボタンの実装が必要になったりと
うまくいきません。
何よりボタンのファンクションではなくプレイヤーの動作アクションのクラスでどうにかしようとしている所がスマートではないことが気になります。
どうしたら移動を暴発させずに閉じるボタンでパネルを閉じることができるでしょうか? 設計のやり直しするしかない。
まずは入出力のフローを整理することから。 または、クリックのたびに最後にウィンドウを押したのか、画面を押したのかフラグを持つか。 作成したラグドールを再編集したり削除したりする方法をご存知の方が居ましたら教えて頂けませんか?
再生するとぐにゃりと倒れるようになったのですが、腕の設定を間違えてしまって肘から先が高速回転しています。
ですが、コンポーネントらしき物も見当たらず修正も削除もできません。
作成したラグドール設定はどこに保存されたのですか? ラグドールはよく知らんのですまんが、ラグドールヘルパーなるアセットがあるのでそれでなんとかならんかね? >>860
ラグドールヘルパーを使ってもラグドールは設定できるのですが(手動の部分を勝手に設定してくれる?)結局それで設定したラグドールは何処にあるの?と同じ事に困ってしまいます。
あとから変更する事は出来ないのかもしれませんね・・・。 >>857
申し訳ございませんが理解ができないのでもう少し詳しくお願いします
>まずは入出力のフローを整理することから。
この点ですが、クリックのたびにRayCastがGUIに接触しているかどうかの処理は毎回入れています。
しかし、閉じるボタンを押したときの挙動の場合
クリック→閉じるボタンのファンクション実行(GUIを閉じる)→Raycastの判定(この時点でGUIが閉じているため、RaycastにGUIが引っ掛からない)
という挙動となってしまいます。
この順番を入れ替えることができるということでしょうか?
クリック時に先にRaycastの判定さえ先行えれば即解決する問題なのですが、どうすれば順序を入れ替えられるのでしょうか。
>>858
>または、クリックのたびに最後にウィンドウを押したのか、画面を押したのかフラグを持つか。
前述の通りRaycastの判定は毎回行っており、ここからさらにどこでフラグを立てればよいかがわかりません
仮に閉じるボタンの所にフラグを設けた場合、FindやGetComponentを使わずに
プレイヤー操作コンポーネントにフラグを送るため、全てのコンポーネントに参照を持つ、
もしくはプレイヤー操作コンポーネントのファンクション自体を閉じるボタンにしてしまう、
という方法ぐらいしか思いつかないのですが、
プレイヤーの操作を行わせるコンポーネントはDBサーバから取得したデータをもとに毎回インスタンス化しているため、
全部に動的に割り当てていくというのは現実的ではないように思われます。
良い方法があるのでしょうか? どうかご教示願います。 >>856
自分はタイマー作って処理してるけど
UI上にマウスある時はタイマーの値が0.1とか小さな値が代入され続ける
これが0になるとキャラ操作可能になる
タイマー側は0以上だと絶えず減算し続けている仕組み
UIの動作が複雑になってくるとスクリプトの動作順や1フレーム単位での動機のズレで誤爆が起きたり起きなかったりして面倒な問題に
ウィンドウの開閉で問題が出やすいと思う
だから単純だけど誤爆が起きようが無いタイマーで数フレーのラグを稼いで操作を切り替えてるけど >>862
根本から作り直す必要ありと言う意味です。
レイキャストならどのように取り出すかなどforechとかで判定できるけど、作りがそれに対応できない感じなのでそう書きました。
後述は、できるならと思いましたが、参照先が不特定多数のようでよくわからないですが構造的に難しいなら見直した方がいいです。 >>862
GUIを閉じるフレームだけやり過ごせばいいので、
GUIのボタンクリックのイベントでコルーチンを呼んで、1フレーム待ってから閉じる処理を呼ぶ
ボタンクリックのファンクションで
invokeを使って時間差で閉じるファンクションを呼ぶ
あたりでいけると思う モディファイアーでミラーリングした物が、クリッピングしてサブディビジョンサーフェスしても
点線的なのがミラーした側に出てこないんだがこれどうやって出すの? >>863-865
ボタンとRaycastの判定がマルチスレッドで行われていることまで頭が向きませんでした。
ありがとうございました。
とりあえず修正が少なそうなコルーチンで想定通りの動きを起こすことができました。
同期ずれの方はこれでどうにかなるのかは不明ですが、今後問題になるようなら改めて大幅な修正をしようと思います。
単純に各メニュー画面を開いて処理させているだけなので、そんなに複雑なことをやっているつもりはないんで大丈夫だと思っていますが。>>863 メッシュが空っぽのPrefubをシーン内に自動生成して
後からC#でメッシュを割り当てたいのですがやり方が分かりません。
var mesh = (Mesh)Resources.Load("Assets/Resources/Mesh/hogehoge");
Debug.Log(mesh);
まずはこんな感じでメッシュを呼び出せるかと思いましたが、
コンソール上では"Null"になってしまいました。。。 Play中にNavmeshAgentのPriorityの設定をいじっても反映されないんですけど
これ反映させるためのメソッドかなんかありますかね?
・Agent同士で当たり判定を残したい
・でもワープさせたいので、その都度一度AgentのEnableを切りたい
・切ったら当たり判定なくなってる
AgentじゃなくてObstacld使えば当たり判定あるんですけど
一応Destination移動もできるようにしときたいからAgentにしたいんですよね Unityでゲーム作りたいと思い始めたんだけどUnity製ゲームのキャラモデルって基本的にヒューマノイド使ってるの?
ヒューマノイドって補助ボーンが使えないとか色々制限があるって聞いたんだけどどうなんだろう? iosアプリを作っていて、TouchScriptを用いてタップとフリック操作を取り入れたのですが、フリック操作をした時にまずタップ操作として認識されてしまいます。
競合しないようにするにはどうすればいいでしょうか タップは離したときにタップ位置と近かったらタップ動作、とかでだめかな まあそうでなくとも同じ動作で始まるからタップでタイマー開始、一定時間後に大きく動いてなければ、とかね タイマーだろうね。タップなんだから、0.3秒以内で離したらタップ処理。それまではフリック処理の準備、という感じかしら。 >>856
常にUIの一番下に何も表示しないimageを敷いといて、そこでpressを受け取ったときのみ、3D面にレイキャストする Unity+Playfabを利用しています
アイテムをキャラクターのインベントリに格納した際、カタログアイテムの方で記述したカスタムデータが
インベントリ内のアイテムインスタンスに反映されません
色々調べたところ英語のフォーラムにカタログアイテムのカスタムデータを明示的に取得してインベントリ
のアイテムインスタンスのカスタムデータに入れるということが書かれてありました
しかも、Unity上でカタログアイテム自体単体で取得する方法がないため、カタログのアイテム全部を取得し、
ループ検索で一致するアイテムIDからカスタムデータを取り出して、アイテムインスタンスに入れるとありました
アイテムを追加するたびにループをしてまでカスタムデータを取得しなくてはならないというのもばかばかしいことこの上ないのですが、
そもそも内容を見る限り、カタログアイテムのカスタムデータはアイテムの性能を決める重要な役割をしているものと思われるのですが、
これがインスタンス化した時に反映されないのはおかしいと感じています
フォーラムを見る限り何年も前からこの状態らしいのですが、そもそもカスタムデータとは何のために存在しているのでしょうか?
もしアイテムの性能を決定するものでないとした場合、アイテムの性能はどこに記述すればよいのでしょうか? >>877
多分だけど一瞬で反応するから問題の同じ挙動になると思う
必要なのは移動処理の判定開始を遅らせるとかキャンセルする系の処理だよ unityでPC向けスタンドアローンアプリをビルドしたあとに見つかった
バグ等の修正パッチを当てるための方法ってありますか?
それとも再ビルドしてまるごとあげ直しになりますか? まるごとだと思うけど
アセットとかは素材の部分だけだし Unity2018を利用、uGUIでRPG風のインベントリアイテムスロットを製作しています
インベントリ内のスロット一つ一つはプレハブ化しており以下のような構成
Slot(画像UI。スロットの背景スプライト)
+ Image(画像UI。アイテムのアイコンスプライト)
+ EquipImage(画像UI。装備中なら右下に「E」が付くだけのスプライト)
スロットにアタッチしたスクリプト内のUpdateで装備状態を見てEquipImageをアクティブを操作しています
現装備品のスロット(プレハブ化していません)
□□□
インベントリ内のスロット
123□ ←1、2,3はアイテム
ドラッグアンドドロップで装備スロットにアイテムを移動したとき、装備品スロットにアイテムが格納され、インベントリのスロットでは装備中を表す「E」が表示されます
12□
↑↑
123□←1、2に「E」が表示される
ここまではよいのですが、インベントリ内の装備中のアイテムを別なスロットに移動すると「E」の画像が消えてしまいます
12□
□231←装備中にもかかわらず1は「E」が消える
ここで不可解なのが、元のスロットに戻すと「E」が表示されます
また、例のように元々1、2、3のあった場所であれば位置が変わっても「E」が表示されます
12□
312□←1,2ともEは表示される
動いている状態を確認すると、位置が変わっても装備中ならば各スロットのEquipImageはアクティブになっていますが、画面には表示されません
一体何がどうなってこのような挙動になっているのか分かりません。調べようにもキーワードもわかりません
どなたか解決方法をご存じありませんでしょうか >>884
コメントをいただき、先ほど試してみましたが、挙動に変化はありません
動かして気付いたのですが、インベントリのパネルを開いた状態のまま装備アイテムを取得し、
そのまま装備スロットにドラックアンドドロップした場合でも、インベントリのスロットには「E」が表示されませんでした
一体何が原因なのでしょうか >>885
あとはヒエラルキーの描画順やキャンバス内に設置は大丈夫そうですか?
もしかしたら画像やスクリプトも貼った方が答えがでやすいかもしれません 初めて、Unityをインストールしてて、
もう1時間半経ちますがまだ終わりません。
こんなもんなのでしょうか?
Windows10 Homeです。 うちも最近UNITY始めたばかりですが
数分でインストールできましたよ(2〜3分くらいだったと思う Windowsモジュールだけにしても5GBくらいあるから回線遅かったらそれくらいはかかるだろうね Unityのインストールは死ぬ程長い
何故だか知らんが… >>889>>890
ありがとうございます。
異常じゃないのが分かって安心しました。 >>892
エディターをダウンロードしてインストールするならそんなもんよ
インストーラーはファイルをダウンロードしながらなので時間かかる 続々と表示されるデバッグコンソールを
スクリプトからリセットするにはどうしたらいいですか? ツイッタでなんか話題上がってたけど、前年度にUnityと関係ない売り上げが3000万あった会社でちょっとUnity使ってなんかプロトタイプ作っちゃおうかなーって使い出すときは最初からProライセンス買わないとダメよでおけー?
なんか前Unityによる売り上げが上がってないなら関係ないって見た気がするんだけど気のせい? 金の無いインディーへの優遇措置が、
なぜ金のある奴にも適用されると思うのかね? >>897
ちょっとしか使わないのにフルプライスとるガイジなんか普通おらんと思うだろ
Unityはそのガイジらしいが >>896
アプリ開発を個人事業主に業務委託でどうなんだろ?
納品先でビルドしない限りライセンス発生しないだろうし >>897
一般的なソフトはソフトによる売り上げ関係なく
ソフトのライセンス料払わないといけないしね >>898
Unityは月額制のサブスクだがフルプライス……?
ちょっとしか使わないならその一ヶ月分のお金払うだけだぞ? 会社に貢献してくれたのなら、その中からお礼を出すのはやぶさかではない。となって欲しいね。
なんか、付き合いのあまりない同僚の送別金を出すべきかを相談されてるみたいでなんかねぇ… ITの巨大掲示板群 ttp://x0000.net
(アルファ・ラボ|学術掲示板群) >>896
無理して使う必要無いのでは?
売り上げがあるのに金払わないのかよ。 ライセンス料ってゲームをリリースする月だけ月額料払えばいいの?
それとも開発中でも毎月払わなければいけないもの? >>905
だからUnityに関する売り上げかどうかの要件どうなのかって質問だろ?
unrealは製品による売り上げの数%とかって計算じゃないの?何でもかんでも必ず使えば金払う仕組みじゃねーだろガイジは黙ってろ 5chで聞いてないで約款を自分で読むべきだと思うんですけど。仮に後で違約金請求されたときに5chで支払わなくていいって言われたって言い訳するのかよ 自分は売上とか全く無くてUNITYロゴ出ないようにしたいだけなんだけど
やっぱ月額料いるのね ロゴ非表示はあきらめるか・・・ >>910
ビルドする月だけproじゃダメなのかね? >>910
何のロゴ?プラットフォームで初期見せない設定にできるみたいだが おそらくC#の初歩的な質問になるかもしれませんが、お願いいたします。
Playfab + Unty でオンラインゲームを目指しています
Playfabにはラムダ式とかいう非同期処理を行う所が多く出てくるのですが、そのせいでゲームの動作が不安定になっています
今躓いているところはアイテムの全削除→アイテムの付与の部分なのですが
PlayFabServerAPI.GetCharacterInventory(←インベントリアイテム全取得
略
, result => {
//ラムダ式非同期処理
foreach (インベントリアイテムのループ)
{
PlayFabServerAPI.RevokeInventoryItem(//アイテム削除処理(一件ずつしか処理できないためループで一つずつ)
//略
);
}
}
, error => {});
PlayFabServerAPI.GrantItemsToUsers()//アイテム付与処理(複数のアイテムを一気に処理できるので実行は一回だけ)
//略
result =>{
//ラムダ式非同期処理
PlayFabClientAPI.GetCharacterInventory();インベントリ取得処理
}
);
概要としてはこのように処理しているのですが、時々アイテムの削除処理がすべて完了する前にアイテムの付与処理+インベントリから取得処理が実行されてしまい、
DB上では問題ないのですがクライアント画面で削除されたはずのアイテムが表示されてしまいます
アイテムの削除が完全に終わってから、アイテムの付与+インベントリの取得を行いたいのですが、
どうすれば同期がとれるのでしょうか 一年間は払い続ける必要ありだったような…
途中で使うの止めても請求は続きますって ライフイズストレンジって有名なナラティブアドベンチャーゲームで
UNITYロゴ堂々と出していたぞ
エンドロールにも出しているし
それどころか主要キャラの出身地をunity通りって名前にしてるぞ 過去12ヶ月間の売上が10万$未満だったら制限なしって事だろ?
個人にそんな関係あるかね >>896を見ろ
会社人がこんな場末の5chで
ゲームエンジンの仕様の相談だとさ
本物なのかねえ 知り合いから相談受けて、ちょっと書いてみただけ、かな。 しょうじきこんなとこでビジネスの相談するようなやつに仕事はだせないよな >>918
そこに書いてあるようにツイッタでそう見たけどどうなの?ってだけで自分は個人だし今んとこ関係ないのでよく見てないから知ってる人教えて?って言ったらワラワラガイジ湧いた所 質問しといて回答してくれた相手をガイジ扱いする人間のクズ 稟議申請にとっておきなテクニックなら訊きたいけど…ぶっちゃけ >>921
余計な煽り入れてるからだろ。つかそいつは回答すらしてないだろw 基本的な使い方の質問です
なんらかの処理を変更したくてスクリプト書き換えるってなったとき
スクリプト書き換える → 上書き保存 → テストプレイ
という手順になるかと思うのですが、
テストプレイした後で、やっぱり以前の状態に戻したいって思うとき
また前のコードに書き直さなくてはいけないですよね。
こういうとき、みなさんどのように作業してるのでしょうか?
スクリプトを変更するまえにあらかじめコピーしとくとかするんでしょうか?
スマートなやりかたがあれば教えてほしいです。 >>924
バージョン管理ソフト
tortoise svnもしくはgit >>925>>926
そんなソフトあったんですね
検索してみたらリポジトリ、リモートサーバ、コミットとか専門用語で
何言ってるか全然わからないけど
ちょっと勉強して使いこなせるようになりたいと思います
ありがとうございます!! gitでローカルレポジトリ管理してて、個別のスクリプトのリストアはやるけど
プロジェクトぶっ壊れた時は直せないよね
心配だから定期的にzipで取ってる >>927
ざっくりいうとローカルでいじったものは元に戻せるしそれをリモート経由で共有したりすることもできるものだけどUnityに関しては>>928も言ってるように戻してもなんかおかしいままってのはあった。
自分はマシンごと再起動とかなんやらしてたら治ったけど。シェーダーのコンパイルだか何かの関係かなとは思ってる >>924
プロジェクトフォルダごと、まるっとコピー。フォルダ名を日付と簡単なコメントつけて保管。
稚拙だが最も簡単で確実に復帰できる。
いまは、hubでバージョンによる動作を行なってるので、より楽になった。 フリーのファイルコピーソフトがあるからそれの機能でバックアップが楽かもな
コピー先も複数登録出来るし git 使えばrevert一発
変えたのも取っておきたいならブランチ切ってコミット git 使えばrevert一発で候
変えたのも取っておきたきなればブランチ切ってコミットなり Unityで3Dのゲームを作成するとき、画面のアスペクト比を固定にするにはどの様にすれば良いのでしょうか?
アスペクト比の違うスマホで動作確認すると、画面の端が切れてしまったり、uGUIのレイアウトが崩れてしまうので、
画面の端に黒い余白を付けるなどして、アスペクト比を固定したいです。
方法をご存知の方いらっしゃいましたら教えて頂けると助かります。宜しくお願い致します。 ユニティのアニメーションエディターに録画ボタンついてる意味がわからん
アニメーションってのはざっくり言えばリグの動きを記録して使いたいタイミングで使える機能だよな
そもそも記録する機能のものに録画ボタンって意味がわからん
罵倒してもいいから教えて 録画ボタンに似てるだけでオートキーボタンだと思えばいい レス数が900を超えています。1000を超えると表示できなくなるよ。