【ゲームエンジン】Unityなんでも質問スレpart6
■ このスレッドは過去ログ倉庫に格納されています
https://d.kuku.lu/d3fb62fba 初心者質問です、現在unity練習中で現在のオブジェクトにアニメーションを追加したいと思い別のアセットからスプライトを持ってきました。 すると画像のようにアニメーションを切り替えると位置がずれてしまいます アニメーション内の特定のスプライトの座標を変更することはできますか?できなければ他のやり方を教えて頂きたいです SpriteEditorでPivotの位置を調整するとかあるけど 余白含めて画像自体のサイズを揃えるのが適切な気がする Resorcesフォルダ使用禁止らしいけど、何で? 今後のバージョンアップで一切使えなくなったりする可能性有り? Unityの外部ライブラリ追加方法が分かりません。どうやるのでしょう? csc.rspファイルで見た目は追加できるのですが、追加した外部ライブラリを使おうとすると インスペクターに「該当するスクリプトをロードできません〜」というエラーが表示されてしまいます 以下、再現方法 --- visual studio 2019で新規プロジェクト「ClassLibrary1」作成(クラスライブラリ、.net standerd 2.0) releaseモードでビルド。クラスライブラリのdllが完成する (クラスライブラリの中身はデフォルトのClassLibrary1.Class1があるのみ) 新規Unityプロジェクト作成 空のオブジェクトを作成。その中にコンポーネントを追加 new script「test」 Assetフォルダーにcsc.rspという名前の新規ファイルを作成。次の一行を記入して保存 -r:"D:\work\ClassLibrary1\ClassLibrary1\bin\Release\netstandard2.0\ClassLibrary1.dll" Unity上でスクリプト「test」をダブルクリックでVisual studio 2019起動 (参照を見ると「ClassLibrary1」がすでに追加されている) public class test : MonoBehaviour { ClassLibrary1.Class1 ddd = null; //↑この行を追加するとエラーが起きる //このクラス自体はクラスライブラリで定義されているのでコンパイルエラーはない } 自決 AssetフォルダにClassLibrary1.dllをコピーするとエラーなくなり動作しました そのくらい勝手にコピーしてよ・・・ >>104 禁止になるの? まあ、addressabls があるからそっち使えってことなんかもしれんけど、Resources は気楽に使えて便利なんだよなー 新規にtimelineを作って新規にAnimation Trackを追加しても Animation Trackに○も空欄も表示されず「Animation Track」と表示されるだけで ゲームオブジェクトを選択できない(参照できない)のですが、どうすれば参照できますか? ワレ対策になんか簡単にできるコピープロテクトってなんかないすか?シリアルナンバーはサバ管理とか大変だからやりたくない ダウンロードサーバー自前で用意するか、アクティベーションサーバー自前で用意するのが簡単だよ 購入時の個人情報に簡単な電子署名つけてプログラムと一緒に同梱する で、それ削除したり改変したら起動しないようにしとく サーバー認証もif文外せば突破されるし クラッカーが購入者だったら暗号化した変数も筒抜けになり努力も泡と消える コピープロテクトは原理的に不可能と思った方が良い できることは改造を難しくするための難読化か、リバースしたプロジェクトに地雷を仕込むぐらい 簡単にできるのはクラウドアプリ化。一部だけでもいいから処理を鯖においとく 特定のサイトからDLしたもので無いと起動出来ないとか、 ファイル複製しようとするとソマリアの海賊が襲撃しにくるとか簡単な方法ないん? 一見ちゃんとコピーできたように見せて ラスボス寸前に詰むような仕掛け 割れ対策は無理なんじゃないかな 割られても意味ないようなゲームを作る方がいい オンライン依存の形態にするか、最初から無料にするとか、ゲームを丸ごと落とす形式は時代にそぐわなくなってきてる 別のスレで割れ対策にゲーム中に使わないけど全宗教と習近平とプーチンを馬鹿にする画像を仕込んで解析すると自爆するってアイデアがあったけど ぶっちゃけ個人のパソコン内で表示されても大したことないと思うんだよなー それがIP付きで自前のサーバにアップロードされるとかだと激強だけどそんなことできないだろうし 無料化したらしたで今度はチーターがわくしなぁ 自動で掲示板に生IPで書き込む様にするとか? アクティベーションコードごとに数個しかIPアドレス設定できなくするとか まずアクティベーションコードを生成したり運用したりをどうするか全くイメージつかないしそこまでする技術力もないけど こんばんは。 アイテムボックスについて質問です。 @アイテムを取得したら、取得した順にアイテムボックスに左詰めで表示したい。 Aアイテムボックスのアイテムを選択したら枠を表示させたい。 ※選択出来るのは1つだけ をやりたいのですが、やり方が分かりません。 どなたか教えていただけないでしょうか? >>127 コピペでポンを求めてるならそれを待ってください。 そうじゃないならまず、質問は一つづつになるはずなので、どこまでできているのかの説明が必要です。そしてどこで詰まっているのか、を書いてください。 >>128 取得したアイテムをアイテムボックスに表示させる事は出来ています。 ただ、表示される場所が固定になっていて左詰めに出来ません。 アイテム1を先に取得したら一番左にアイテム1を、アイテム2を先に取得したらアイテム2を一番左に表示させる事が出来ません。 よろしくお願い致します。 >>129 取得したアイテムの情報は、 配列系を使っていれば取得順に格納されるはずだけど、配列じゃないのか描画の時に選別してしまっているのか? 2Dゲームの画像解像度と容量圧縮について教えて下さい。 ウェブの講座を見てると、容量圧縮やメモリ節約にpngなどの画像サイズは、2のべき乗にするべき、と4の倍数にするべき、と意見を2つ見るのですが、どっちが正解でしょうか? ・画像サイズ自体を大きくしてでも2のべき乗にすべきか? ・4の倍数であっても2のべき乗でないと圧縮率などは落ちるのですか? ・また、1辺が2のべき乗であってももう1辺が2のべき乗出ない場合は、2のべき乗でない画像とみなされるのか? 上記のような疑問があります。 無圧縮ビットマップはx軸側が4の倍数じゃないとパディングが入って効率落ちるから、X軸は4の倍数の方がいい(と思う!) jpgは8x8ピクセルのブロック処理するから、X軸y軸ともに8の倍数の方が効率がいい(と思う!) pngはランレングスのような処理をするから、X軸y軸ともになんでも効率はかわらない(と思う!) web講座は見たことないから知らね あほっぽいけど理論も糞もなく実際はどうなんだろとテキトーに数百枚の画像を1024x1024、1024x1023、1023x1024、1023x1023でpng保存してバイト数比較みたいなことしてみたら? >>131 結論から言うと4の倍数(64×128pxとか)で描いて、 それを2のべき乗(2048×4096とか)にまとめてUnityに取り込むのが最適解 4の倍数で描くのは圧縮形式の制限の為 俺は低パフォーマンスの圧縮でもいいぜって場合はどうでも良い 2のべき乗にまとめるのはGPUの制限の為 例えば300×600pxの画像は内部では2のべき乗の512×1024pxとして扱われるんだけど、 それなら最初から256×512でピッタリ作るか1024×1024で隙間を別の画像で埋めた方が無駄にならないってだけ >>130 配列使っていません。 クリックで表示・非表示を変えているだけです。 >>134 取得とは? では、配列を使ってやってみてください。 ・クリックしたら配列に入れる。 ・表示を配列の値を見て行う。 すぐ実現できますよ。 >>132 png形式ですが、4の倍数でないとUnityが無圧縮でRGBA8 UNormとなり、かなり重いのですが、 4の倍数だとRGBA CompressedDXT5 UNormで圧縮されるのでかなり軽くなります。 2のべき乗だとさらにNPOTでなくなるのですが、NPOTであるかないかでどこまで違いが出るのか分かりません >>133 まとめて、というのはアトラス化するということでしょうか? まだ初心者なので理解がふわっとしていますが、4の倍数はビルドした後の容量が軽くなり、2のべき乗は実行時のGPU負荷が効率的になるという感じでしょうか? >>136 > NPOTであるかないかでどこまで違いが出るのか 違いは出ない 480×480のテクスチャをインポートした場合512×512に手直ししたテクスチャをインポートした場合 どちらも同じく内部的には512×512として扱われる ただ差分の空白が無駄だなぁってだけで負荷もビルドサイズも変わらない >>137 ありがとうございます。 背景の建物とか樽とかテントとかそういうパーツ一つ一つ、500pxだったのを空白追加して512にしたりとかしてたんですけど、無理してべき乗サイズでテクスチャ用意しなくてもよさそうですね。 4倍数の出力して後でアトラス化することにします。 >>135 さんのレスを見る前にScriptableObjectを使ってアイテムのデータベースを作ってしまいました。 「表示を配列の値を見て行う」 というのが分かりません。 for文を使いますか? >>139 申し訳ない、私はscriptbl objectは使ったことがないのでわかりません。 配列にデータを代入すれば要素があるか無いか判断できるのですが。 dictionaryを使ってはどうですか? dictomaryならforechで入れた順に取り出せます。 Macのchrome上でも動かせるものを作りたいのですが まだMacを所持しておりません Windowsでビルドしたものでも動きますか? iPhoneとiPadで動かく予定はございません >>141 Web埋め込みのビルドだったらどんなものでも動くと思うけど MacのChromeで必ず動かす必要がある要件ならMacのChromeを検証環境にするのが確実かと unityと一緒に使う上で持っておいた方が便利なソフトはありますか? 例えばadobeのものやblenderなどの様なもので… 侵入検知コライダーみたいなRendererのないゲームオブジェクトをシーン上で見やすくするためにラベルアイコンをつけてるんですが、 シーン全体を見ようとビューを遠くから全体表示すると消えてしまい使いづらいです。 ラベルアイコンが非表示になる距離を設定できたりしませんか? >>139 取得の判定はどうやって作ってますか? もしかしてscriptableObjectに直接boolで持たせたりしてる? >>146-147 ありがとう!3Dのチェック外したら常時表示できました! ゲームに後付けでゲーム内アイテムの配布をしたい場合 どういった方法で実現するのが良いでしょうか? イメージとしてはなんらかのパッチのようなものを当てたり、暗号化ファイルを読ませると1回限定で何らかのアイテムが貰えるような感じです 2Dでキャラを真上から見おろした画面で作ろうと思っていじっています とりあえず1キャラあたり64px四方で上下左右押すと1キャラ分移動します 横スクロールだとRigdBody2Dとcollider2Dを互いのオブジェクトに貼りつけていれば、重ならないように勝手にやってくれるので楽なのですが、 こういう上から見下ろしたタイプの画面の場合、 rigidBody2DのBodyTypeを重力が働かないようにDynamicにすると思うのですが、こうするとすり抜けてしまいます。 一般的にどうやって重ならないようにするものなのでしょうか。スクリプトでいちいち他のオブジェクト探して判定するものなのでしょうか? 重力がきかないということは重力がゼロということです RigidbodyのGravityを0にすればいいよ 質問でふ(^^ Photonでゲストがログインするとゲスト側でこんなエラーが出まんこ(^^ NullReferenceException: Object reference not set to an instance of an object Photon.Pun.PhotonNetwork.OnEvent (ExitGames.Client.Photon.EventData photonEvent) (at Assets/Photon/PhotonUnityNetworking/Code/PhotonNetworkPart.cs:2415) Photon.Realtime.LoadBalancingClient.OnEvent (ExitGames.Client.Photon.EventData photonEvent) (at Assets/Photon/PhotonRealtime/Code/LoadBalancingClient.cs:3356) ExitGames.Client.Photon.PeerBase.DeserializeMessageAndCallback (ExitGames.Client.Photon.StreamBuffer stream) (at D:/Dev/Work/photon-dotnet-sdk/PhotonDotNet/PeerBase.cs:898) ExitGames.Client.Photon.EnetPeer.DispatchIncomingCommands () (at D:/Dev/Work/photon-dotnet-sdk/PhotonDotNet/EnetPeer.cs:565) ExitGames.Client.Photon.PhotonPeer.DispatchIncomingCommands () (at D:/Dev/Work/photon-dotnet-sdk/PhotonDotNet/PhotonPeer.cs:1863) Photon.Pun.PhotonHandler.Dispatch () (at Assets/Photon/PhotonUnityNetworking/Code/PhotonHandler.cs:221) Photon.Pun.PhotonHandler.FixedUpdate () (at Assets/Photon/PhotonUnityNetworking/Code/PhotonHandler.cs:147) どうすりゃいいのよこれ(^^ チンコショボーン(^^ それとレス遅くなりまひたが以前答えて頂いた方に感謝感謝でふ(^^ ボッキング!(^^ こういうエラーは辛いですよね。 その時に何をやったか、そこから探るしかありませんが、それは覚えてますか? あと、peerbase.csは自前スクリプトでしょうか?であれば、そのあたりの関係、898行目に関連したものと思われます。 ※entpeer.csの565行目から呼ばれているみたいです。 NullPointerException =ぬるぽ NullReferenceException = C#版ぬるぽ peerbase.csはPhotonのスクリプトでふ(^^ これより前にやってることと言えばログイン処理とシーンチェンジだけでふ(^^ チンコショボーン(^^ そうでしたか。それはお手間とらせました。 では、この中にご自身のscは出てきてないのですかね? となると、ログインできていた時のバージョンの、直前で変更した箇所を思い出すしかではないでしょうか。 1000万の世界一アクションRPGの人が言ってたけど Exceptionの9割はヌルポです ってさすがにある程度の量作ったことないんじゃないか MissingReferenceExceptionとか ArgumentExceptionとか IndexOutOfRangeException あるのにな >>159 日本語で頼む 誰に対して何が言いたいのか分からない さすがにそれは読めるだろ・・・ 俺自身だとnullpointerなんてほぼゼロだな わりい 「Exceptionの9割はヌルポです 」 これが彼が言ったことね ここを区切んないと意味わからないよね 一千万の世界一RPGの人っていうのが意味不明過ぎて読めんかったスマン ググっても碌な人間ヒットしなかったけどその人がエラーについて知らないって言いたかったのな スクリプトを昔のに修正したりしても治りまふぇんね(^^ 本当に萎えるわ(^^ これ年末の体験会間に合わないでふ(^^ 正月の体験会に変更でふか?(^^ NullReferenceExceptionさっき直したが結構キツイ GetTypeは効かないしTry/chatchで回避は出来たが原因の除去ではないのが厄介 動的にScriptでもアタッチしてんじゃねえの? 動的にスクリプト付けてるところはない筈でふ(^^ 今日一日試してダメでひたら8月ごろのプロジェクトもってきて巻き戻しでふ(^^ 質問です 今2Dのシューティングを作っています https://video.twimg.com/ext_tw_video/1476448988601917450/pu/vid/640x360/ovoMiGtlaZ7Fb0r5.mp4 こういうものなのですが この13秒あたりに注目して欲しいのですが弾が壁を通過するときに壁の奥側に 行ってしまって隠れてしまいます これを弾を前面に持ってきたいのですがどうしたらいいでしょうか? ソーティングレイヤーとかZ軸の位置変更などをやってみましたが奥のままです canvasのSort Order Sprite RendererのOrder in Layer あたりは動かしてみまひたか?(^^ あとありがちでふけど生成するときのpositionのZ軸がおかしくなってたりとか?(^^ >>169 UIではないのでキャンバスは無関係 弾のエフェクトは3Dオブジェクトなのでオーダーインレイヤーは無関係 生成時のZ軸はゲーム中、止めてシーンビューでチェックしたけど特に異常なし という状況です >>167 Photonは使ってる訳ではなく試用しただけだしverが違えば行は変わるから知らんけど 手持ちのverなら、Eventがnullなのに参照してコケてると推測される ちゃんとソース見ればヒントあるだろ ロビーから離れたら消えるEventを後からロビーに入って参照するからnullになってんじゃねえの? >>168 弾が加算合成なんじゃね? 非HDRなら1でクリップされるから、白は白以上にならない つまり上に書いてあっても白にしか見えない事はアリエルサリエルガブリエル >>172 あ、それかも! その発想はなかったですw 何という蒙恬 >>172 見事にこれでした ありがとうございました! 手抜きして白でテストしてたからダメだった Linux環境での実行について質問です。 物理演算を使った通信対戦ゲーム制作のために下記サイトを参考に Ubuntu環境でServerBuildしたファイルを置いて専用サーバーを立てようとしています。 https://qiita.com/yanosen_jp/items/e60476f494824a7138df ただ「うまくいけば、こんな感じの画面が出てくるはずです。」のところで以下のエラーが出てしまいます。 ERROR: Shader Sprites/Default shader is not supported on this GPU (none of subshaders/fallbacks are suitable) ERROR: Shader Sprites/Mask shader is not supported on this GPU (none of subshaders/fallbacks are suitable) 海外でも似たような状況の方がいましたが特にレスはなく… https://johnnn.tech/q/shader-unsupported-when-starting-unity-server-with-batchmode-nographics-flags/ これはGPU付きのレンタルサーバーにしないといけないのでしょうか? お詳しい方おりましたらご教示お願いいたします。 新年からすみません 3DでUIボタンの上にカーソルを置くとなんというかボタンテキストやらがガタつくというか少しZ座標が動いてズレるような感じになるんですが これを解消する方法はありますか? 最新のベータ版入れたらUnityのUI自体がそうなって 何書いてあるんだか分からなくなることがある ずいぶん上でUnityのバージョンアップしたら実機で起動しなくなった件だけどLibrary全部消したら解決しそう >>177 自決しました ボタンにアニメーターコンポーネントを追加していたのですが、それに使っていたアニメーターコントローラーの状態遷移時に僅かにスケールが変化するようになっていました Unityの開発してもMVVMとか ドメイン駆動開発?とかデザインパターンとか 勉強しておいたほうがいいですか? しといた方がいいかと聞かれたら答えはそりゃyesよ でもunity(ゲーム作り)したいのにそっちやらずに寄り道ばっかでいいのか? そんなのよりリリース数を多くする事に励む方が良いですよ。 それさえあれば、後から何とでもなる。 必要に迫られたら考えれば? MVVM→知らない ドメイン駆動開発も初めて聞いたけどオブジェクト指向の曖昧さや抽象化を 別の視点から見る事でもう少し具体的にするアプローチみたいなものじゃね? デザインパターンは多少使ってるけどいきなり見てもへーそうですかで終わりそう 学んだからといって即効性は多分ない オブジェクト指向ですら下手すると10年くらい掛かるとか言われているものなので 必要かと言われれば必要だが蛇足と言えば蛇足なんじゃないの?しらんけど 皆さん有難うございます リリースを優先に今後効率的に 開発したいと感じた際に改めて学ぼうと思います Rewired使ってる人いる? 最後に操作したコントローラーの個別の名前を取得(Xbox OneとかDualShock4)ってどうすればできる? 質問良いでふか?(^^ PlayFabにおいて同一アカウントへの二重ログイン、多重ログインを防ぐ方法を教えてくらふぁい(^^ 変数Boolを鯖上に保管してログイン中はTrueで他人がログインできないようにすればいいと考えたんでふけど(^^ PlayFabってかなり高機能でふひそういうの用意されてるかなって思いまひて(^^ デザパタは実際にコーディングしていかないと凄さを実感しないからなー 性器にソフィアでモザイク付けてるんですけど、カメラが近づきすぎるとモザイク消えちゃうんですよ? カメラのニア値は0.01にしても近づくと見えちゃう、解決策ないですか? >>194 なるほどそれもいいですが、 カメラとオブジェクトの距離を計算して一定以上は近づけない様にしましたチャンチャン >>184 どのみち結局は状態をどう管理してくのかって話に落ち着くと思うけど、並行してそれらも学んでた方がいいと思うよ モザイク消失バグが見つかる ↓ めっちゃ売れる ↓ バグが直る ↓ 存在が空気になる 僕の質問への回答が見当たらないんでふけど(^^ ひょっとして国家機密にあたるから隠密に透明削除されまひたか?(^^ CustomBlockerっていうアドオン使うとキモい書き込みとか嫌いな芸能人の記事とか まとめて非表示にできるんでおすすめ 詳細画面の表示がしたいのですが、コードの書き方が分かりません。 どなたか教えていただけないでしょうか? ・List<Item>とList<GameObject>(詳細画面)の2つのリストがあり、それぞれが0〜8まであります。 ・Itemはクリックすると枠が表示されます。 ・枠はtoggle groupで管理しており、一つしか表示されないようになっています。 やりたい事は Item1をクリック ↓ 枠の表示 ↓ GameObject1(詳細画面)を表示 です。 枠の表示までは出来ているのですが、2つのListの紐付け(この表現で合っているでしょうか?)と「なおかつ枠が表示されていたら」という条件の書き方が分かりません。 ご教授いただければと思います。 よろしくお願い致します。 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる