【ゲームエンジン】Unity初心者質問スレBuild3

■ このスレッドは過去ログ倉庫に格納されています
2020/01/11(土) 14:28:59.18ID:wPvGtAaQ
ゲームエンジンUnityを楽しむ初心者による初心者の為のスレ
その為「アセットを購入しましょう」「チュートリアルやれ」「ググレカス」等禁止
初心者が親身になって初心者に教える。
又ググレの場合、何のキーワードでググるのか書いてね

●リンク
・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←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
※前スレ
【ゲームエンジン】Unity初心者質問スレBuild2
https://mevius.5ch.net/test/read.cgi/gamedev/1557293737/
677名前は開発中のものです。
垢版 |
2020/02/24(月) 21:35:08.27ID:A6C4ojr1
>>676
Rigidbodyを付けている場合、デフォルト設定で重力が働くようになってるからね
勝手に落下したりする

Rigidbodyで物理演算を無効にする場合は
DynamicではなくKinematicにすればいい
Kinematicにすれば重力の影響を受けないし、ほかのオブジェクトが
ぶつかってきた場合も影響されて動くことはない

rigidbodyにあるvelocityは移動速度(速度ベクトル)だから物理演算とは
関係なく動かすことができる
Translateも同様に物理演算とは関係なく動かすことができる

物理演算で動かす or (速度ベクトルや座標の位置を変更することで動かす)
物体を動かす場合 上記2点に気をつかえばいい
2020/02/24(月) 21:44:51.32ID:B7d3DSpn
>>677
668です
インスペクタのrotation.yに誤って値が代入されていました
値を0に変えるとzの値が変動しなくなったのでこれが原因だったようです。
いろいろアドバイスいただきありがとうございました。
679名前は開発中のものです。
垢版 |
2020/02/25(火) 00:57:38.64ID:D2FtDyCq
Blenderで作成したモデルのUnity上での表示について質問です。
・Unity 2019.3.2f1 (64-bit)
・blender:ver27.9b(アドオン無)
・ファイル形式:FBX

上記のブレンダ―で作成したモデルの一部オブジェクトがUnityで面が裏返って表示されます。
ブレンダ―上では特段異常がなく法線も表を向いており、レンダリングなどしても正常に映っております。
また、法線を裏返すと、Unity上では面が表に来るのですが、光の当たり方が上下逆になってしまいます。
法線の方向の整合性を取り直す方法はございますでしょうか。
もしくは法線を裏向きのまま光の当たり方を逆にすることは可能でしょうか。

よろしくお願いいたします。
680弟子
垢版 |
2020/02/25(火) 08:53:12.83ID:disfb7H3
とりま
blenderからUnityへ3Dモデルをエクスポートする
https://dkrevel.com/unity-and-blender/blender-to-unity-fbx-model
681名前は開発中のものです。
垢版 |
2020/02/25(火) 10:39:41.76ID:WedOhwcm
>>664
いや一般論としてビジュアルのやつならシンタックスエラーは起こらないから学習の上での障害ひとつないなというだけ。

プレイメーカーはいいらしいけど情報少なくてこれがやりたい->ぐぐる->プレイメーカーに翻訳 とならざるを得なそうでそれも大変そうだけどどうなんだろ

あと公式のツールがボチボチプレビューくる?
2020/02/25(火) 15:03:22.29ID:1jlyuXHI
>>667
>>658よくみたら間違いがわかるはず
2020/02/25(火) 21:37:14.12ID:7wTy65re
検索ワード「テクスチャを重ねて描画する」(URLが記述できないようなのでこれで失礼します)
こちらのサイトにテクスチャを重ねて描画する方法が載っておりました

これができれば一つのモデルに「肌」→「目」→「口」などを順に描画させ、
テクスチャを付け替えることでキャラエディットみたいなことができるのではと思い、
Unityを確認してみました

しかし、BlenderからインポートしたFBXファイルにはMesh Rendererではなく
Skinned Mesh Rendererがありました
こちらもマテリアルを複数指定することができるようだったので試してみたのですが
前述のようにマテリアルを割り当てても、何故か目のパーツだけがどこに設定しても優先的に描画され、
続いて口、肌においては1つ置いた時にしか描画されませんでした

優先順位も気になるところではありますが、ともかくテクスチャを重ねて描画する方法を教えてください
684弟子
垢版 |
2020/02/25(火) 22:00:46.03ID:disfb7H3
【Unity】マテリアルに複数のテクスチャを重ねて表示する ねくすとねくすと
http://next-next.com/2019/04/19/%E3%80%90unity%E3%80%91%E3%83%9E%E3%83%86%E3%83%AA%E3%82%A2%E3%83%AB%E3%81%AB%E8%A4%87%E6%95%B0%E3%81%AE%E3%83%86%E3%82%AF%E3%82%B9%E3%83%81%E3%83%A3%E3%82%92%E9%87%8D%E3%81%AD%E3%81%A6%E8%A1%A8/

Unity Tips(13:テクスチャを重ねて描画する)
https://t-tutiya.はてなblog.com/entry/20171104/1509778621
はてな=ローマ字
とか?
2020/02/26(水) 09:34:45.20ID:XSiK3Jmd
>>684
優先順位に関しては不明でしたが、重ねて描画はできました
手あたり次第なんでも透過にしていたのが原因だったようです

ありがとうございました
2020/02/26(水) 09:37:41.45ID:XSiK3Jmd
一つ忘れていました
テクスチャをシェーダーでまとめて表示する方法もあると伺っています
マテリアルの方を複数重ねて表示させていますが、
処理の負荷的にはマルチプレイオンラインゲームに耐えられるものでしょうか?
687名前は開発中のものです。
垢版 |
2020/02/26(水) 17:30:16.94ID:GigIyj8j
一つの機能ごとにスクリプトを作っているのですが
それらのスクリプトをまとめて使う本スクリプトは
すべてをGetComponentする
すべてを本スクリプトにコピペする
以外に良い方法はありますか?
688弟子
垢版 |
2020/02/26(水) 18:40:25.13ID:ZpPffGJ6
インターフェースで使うの選んで行けばいいんじゃない
689名前は開発中のものです。
垢版 |
2020/02/26(水) 19:20:56.86ID:GigIyj8j
よくわからないです
インターフェースをどのように使うつもりですか?
690弟子
垢版 |
2020/02/26(水) 20:15:59.17ID:ZpPffGJ6
こんな感じ
https://i.gyazo.com/b8a77351326875f8262d35ccf47ed353.png
メンドイから同じファイルで定義しているけどそれぞれの処理は別ファイルでね
691名前は開発中のものです。
垢版 |
2020/02/26(水) 20:33:18.23ID:808/gSFo
スレチかもしれないですが、

例えば2dで腕が無くなっても動き続ける(アニメーションし続ける)キャラクターを作りたい場合ってunityだとどういう実装にすれば良いでしょうか?
パーツ毎に分けてスクリプトで制御するのか、腕が落ちた時のアニメーションも別個で用意するのが良いのか…
692名前は開発中のものです。
垢版 |
2020/02/26(水) 20:38:57.37ID:GigIyj8j
>>690
確かにできました。ありがとうございます。
693弟子
垢版 |
2020/02/26(水) 21:07:35.79ID:ZpPffGJ6
>>691
スプライト差し替えるか、動きも変えたいならアニメーションコントローラからランタイムコントローラにオーバーらいど
2020/02/26(水) 21:36:09.23ID:XSiK3Jmd
まだ前回の質問の回答をいただいていないのに、再度の質問失礼します。

>>546
ここで以前、Blenderからパーツをアニメーションごとエクスポートし、
インスペクターから各パーツにアニメーター等を割り当てればアニメーションができて、
パーツを組み合わせてのキャラクターエディットができる、と考えていたのですが、

各パーツにアニメーションがある状態でエクスポートするため、パーツ毎FBXの容量が大変大きくなり、
以前考えていたSetActiveで表示パーツを切り替える方法でのキャラエディットよりもひどい状態になることに気づきました
以前教えていただいた方法がよく理解できなかったこともあるのですが

Blenderでアニメーションのボーンと各パーツを別々にエクスポートし、
Unityで動的に組み合わせてアニメーションをさせるにはどうしたらよいでしょうか
695名前は開発中のものです。
垢版 |
2020/02/26(水) 23:17:53.49ID:tqiPAYEJ
アセットストアの SD Unity-Chan Optimaize Custom
のデフォルトSDユニティちゃんを使おうとしたのですが
なぜか初めは仰向けになっていてtransformで起こして再生すると前に倒れて
地面にめりこみ、起こさずに再生すると起きるのですが宙に浮いて落下モーション
のような状態になってしまいます。( standard asset の third person user control をアタッチしました )
rigit body の freeze rotation にチェックを入れてもダメでした・・
どうすれば正常に直立できるのでしょうか?
696名前は開発中のものです。
垢版 |
2020/02/27(木) 00:07:31.23ID:j0OKNYmt
>>695です。
isTriggerにチェックを入れ、use gravityを無効化する事で歩く事は出来ましたが
途中で地面をすり抜けて落下してしまいます・・
停止時に立てると再生時に倒れてしまうので仰向けのままです・・
2020/02/27(木) 00:25:16.25ID:T6a2r4TR
コリジョンを目視してごらんなさい。
どうしてかわかると思う。
698名前は開発中のものです。
垢版 |
2020/02/27(木) 00:29:10.74ID:j0OKNYmt
>>696です。
ground check distance の値を大きくしたらすり抜けなくなりました。
停止時の仰向けの直し方はいまだにわかりません・・
699名前は開発中のものです。
垢版 |
2020/02/27(木) 10:50:04.31ID:fVMfcjq3
>>638
ちと色々調査したらアニメーションカーブらしい事がわかって
次の拡張でカーブ取得してやってて、これなら値がクリアされないようです
【Unity】AnimationClipのMissingなパスを見つけて解決しやすくするエディタ拡張
http://tsubakit1.hateblo.jp/entry/2016/01/26/015331#%E5%B0%8E%E5%85%A5%E3%81%A8%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89
700弟子
垢版 |
2020/02/27(木) 11:01:42.14ID:fVMfcjq3
>>695
インポートした状態でSceneフォルダにある_preview開くとどうなります?
こんな感じなら問題ないと思います
https://i.gyazo.com/aec7d422d4fa7daed5d75aaf20da61b1.png

その後、どれか一体のPrefabを新しいシーンに貼ってみてください
701弟子
垢版 |
2020/02/27(木) 11:08:58.25ID:fVMfcjq3
これが原因かww
https://i.gyazo.com/9a157d0f74483f82aa76f2fde6ed3a14.png

コライダーが楕円なのねw
702名前は開発中のものです。
垢版 |
2020/02/27(木) 18:27:02.37ID:yiLTwQkg
Blender上でモデルにpng画像を貼り、画像の透明部分のポリゴンを透明にするにはどの様にすればよいでしょうか?
703702
垢版 |
2020/02/27(木) 18:28:15.58ID:yiLTwQkg
Blender上で透明にする方法は解るのですが、Unity上では透明にもならず、テクスチャすら貼られていない状態です。
ご存知の方いらっしゃいましたら教えて下さい。お願い致します。
704名前は開発中のものです。
垢版 |
2020/02/27(木) 20:35:10.68ID:Ot7wiF5X
Debug.Logの簡略化は可能でしょうか?

void pr (object ob){Debug.Log(ob);}

例えば上のコードをデバックしたいスクリプトの中に書けばpr()だけでデバッグできますが
これだと各スクリプトごとにこのコードを書かないといけないので効率が悪く感じます。

public static class debg
{
public static void pr ( object ob ){Debug.Log(ob);}
}

他のスクリプトでも共有できるようpublic static classを宣言すれば良いのかと思ったのですが
これだとdebg.pr()と書かないといけないので元のDebug.Logと似たようなものになってしまいます。
何か良い方法があれば宜しくお願いします。
705名前は開発中のものです。
垢版 |
2020/02/27(木) 21:20:47.82ID:q3ikkHtj
>>703
マテリアル作らないとダメでは
706名前は開発中のものです。
垢版 |
2020/02/27(木) 21:31:57.49ID:hKi1HcO8
>>703
ちょうど先日やっていたところなのでお答えいたします

BlenderからUnityへインポートしたモデルデータはUnity上でテクスチャを張りなおす必要があります
(一度張りなおすと命名規約だか何だかで自動的に張られるようですがこの辺は詳しくないので割愛します)

インポートしたモデルデータを確認してみてください
インスペクタービューにMaterialsというボタン(タブ?)があります
マテリアルが全部「なし」になっているのを確認できると思います

テクスチャの画像ファイルを別途Unityへインポートし、メニューのアセット、もしくは右クリックから、
作成→マテリアルでマテリアルを作成し、そのマテリアルにテクスチャの画像ファイルを割り当てます

透明化を有効にするには、マテリアルのインスペクタービューでRendering ModeをCutOutにしてください

こうしてできたマテリアルを前述に確認したMaterialsで割り当てることでテクスチャが張られます

なお、インポートしたモデルのプレハブ上でMesh Renderer、Skinned Mesh Rendererというコンポーネントを探し、
そこのマテリアルパラメータで複数のマテリアルを一つのモデルに割り当てることができます
透明化を利用してテクスチャを重ねて描画できます
707名前は開発中のものです。
垢版 |
2020/02/27(木) 23:22:11.53ID:j0OKNYmt
>>695です。
プレビューシーンを読み込むと正常だったのでそこから色々追加していって解決しましたww
しかしジャンプ後のすり抜けは未解決です。
今調べてはいますが・・
2020/02/28(金) 07:51:11.31ID:YWFNLsBv
>>704
print()使ったら?
709弟子
垢版 |
2020/02/28(金) 10:16:37.03ID:3Lsu3jjC
>>704
ベーススクリプト作成してそこにデバッグログ機能をもたせて
全部のスクリプトをそこから継承

>>707
>しかしジャンプ後のすり抜けは未解決です。
これ質問じゃなくて愚痴だよね?
状況も何を追加して何をすり抜けるのか書いてないから・・・
2020/02/28(金) 11:38:34.50ID:9RFMa+Av
質問です
フォントファイルをunity上で読み込んでTextmeshproでSDF化した後、
このSDF内のMaterialとAtlasのみをファイルとして抽出する事は出来ないのでしょうか?
711694
垢版 |
2020/02/28(金) 11:53:01.91ID:iaQ+QUKs
>>694
から少しだけ進展があったので報告、および質問

https://qiita.com/kaiware007/items/4c7a4b9862fae84d4023
こちらのサイトを参考に、パーツのメッシュ(SkinnedMeshRenderer)の各プロパティ(たぶんウェイトやボーン)を、
ベースのボーンのものに書き換えました
古い生地なのでオブジェクトをDestroyできなかったり、取得できないプロパティを参照していたりと
ソースをそのまま使うことはできませんでしたが、とりあえずコンパイルを通して動かしました

ボーンに合わせてアニメーションをしているような挙動があるのが確認できましたが、
メッシュの位置がnew Mesh()をした時に大幅にずれてしまいました

新しいメッシュにメッシュの位置情報を書き込んでいないのが原因かと思われ、
メッシュの位置はVerticesというもので操作しているらしいという所まで突き止めたのですが、
ここからどうしていいのかがわかりません

試しにベースのボーンを持つオブジェクトや、その子オブジェクトとしていったんインスタンス化したパーツの
Verticesを割り当てたら更に大幅にずれてしまいました

メッシュの位置を想定した場所に置くためにはどうしたらよいでしょうか?

または、キャラエディット機能ならもっとスマートにできる方法をご存じでしたらご教示願います
2020/02/28(金) 12:52:20.39ID:ALzUb0si
2019で5.6の講座を見ながらやっています

delegateSample.csに
public class A{
public int a;
}
public delegate void delegateSample(A aInstance);

public class delegateSample : MonoBehavior{

}

みたいな感じのファイルをアタッチすると
the script needs to derive from monobehaviourというエラーが出るんですけど
ファイル名と同じクラス名のモノビヘイビャーを継承しているファイル内に
別の素classを入れたファイルはアタッチできなくなったのでしょうか?
713名前は開発中のものです。
垢版 |
2020/02/28(金) 12:55:26.53ID:ALzUb0si
delegateSample.csに内にある
(コード)
をからのオブジェクトにアタッチ
です
714弟子
垢版 |
2020/02/28(金) 13:27:37.48ID:3Lsu3jjC
>>712
定義の仕方かなぁ
https://i.gyazo.com/b9ecfe028a2aba70f60a0b040654f28a.png
とりまどっかから拾ったコードをUnityぽくしてみた
2020/02/28(金) 14:02:41.13ID:ALzUb0si
なるほど
ありがとう
それだ通るんですね
ただ動画の人も通っているので
まあそれはほかにも見えないファイルがあるんですが
まあもう少し勉強してみます
2020/02/28(金) 14:48:01.99ID:/AKvkhm4
輪投げのイメージで画面を下から上にフリックすると用意してあったプレハブが生成されてフリックした方向と速度で発射されるというのを作るのは難しいですか?

輪のオブジェクトを画面に出してスタートすると自然落下するという所まで来ましたが、何をしたら飛ぶのかわかりません

何を調べれば良いかもわからないので使いそうな命令?だけでも教えて頂けると助かります
よろしくおねがいします
2020/02/28(金) 14:51:39.15ID:sAVdF7st
touchした座標とそこからドラックした距離、時間を使って力の値を導き出します。
その値を、輪にadd forceなどで移動させます。
2020/02/28(金) 14:55:35.35ID:60vQiGEi
タップしたらそこに輪が置かれるとか、タップすると輪が真上に飛んでいくとか、
そういうとこからちょっとづつ要素増やしたり変えていったりすればいいのでは
いきなり作るのは大変だよ
2020/02/28(金) 19:30:58.44ID:/AKvkhm4
>>717,718
ありがとうございます
取り敢えずフリックは置いておいて、奥に投げるという動作を実装するために

startにaddforceを書いたスクリプトをセットして、生成された瞬間奥に飛ぶプレハブが出来ました
それをタップした位置に生成したのですが、どこをタップしても真ん中に向かって飛んでしまいます

プレハブをスクリプトからinstantiateしないで最初からゲーム画面に置いた時は真っ直ぐ奥に飛びます

ttps://yumineko.com/click-tap-position/
タップ位置は上記URLを参考にして
var pos = Camera.main.ScreenToWorldPoint (Input.mousePosition + Camera.main.transform.forward);
で取得しています

関係あるかわかりませんが、Debug.logでposを取得すると、9:16の画面でX軸が左端が-0.3、右端が0.3と狭い気もします

考えられる原因はありますでしょうか?
2020/02/28(金) 20:11:04.22ID:Medy2iIU
そう言う場合は、極端な数字を入れるがよろし。
出てきたposのxに10、100、1000を、変わらなければ順に掛けてから生成。
2020/02/28(金) 20:39:10.35ID:0RwkjVUc
生成位置と射出方向は分けて考えよ?
ScreenPointToRay使ったら?
2020/02/29(土) 14:33:42.33ID:1kV/1GjB
>>720,721
ありがとうございます
xに10を掛けたら意図した挙動になりました!

現在controllerというオブジェクトに貼り付けたスクリプトでタッチを取得→public float xにpos.xを代入後プレハブを生成

プレハブのスタートでcontrollerオブジェクトをfindし、スクリプトをゲットコンポーネントしたのちにaddforceのxにcontroller.xを指定して射出方向をコントロールしています

findを多様するのは良くないと見かけたのですが、プレハブにゲームオブジェクトをアタッチする事は出来ませんよね?

今後このシステムを輪投げではなく弾を発射などの連射する様なゲームに流用しても大丈夫なのでしょうか?

フリックによるコントロールにも挑戦してみたいと思います、ヒントをくれた皆様ありがとうございました!
2020/02/29(土) 14:48:49.72ID:J+xpv0tu
>>722
スクリプトにアタッチ指定すればいいかと。
やったことないけど、ずっとやろうやろうと思って今w

また、findはゲームフローのLOOPで負荷にならない場所でやればいいと思ってます。プロじゃないので。
2020/02/29(土) 15:17:28.57ID:1kV/1GjB
>>723
なるほど、スクリプトにアタッチ指定というのはやり方がわかりませんが方法はあるんですね

今の所どれだけ連打しても負荷は感じませんが実機でテストプレイするしかないですね
まだ初心者なので弊害があるまでは動けば良いというスタンスでやってみます!
725名前は開発中のものです。
垢版 |
2020/02/29(土) 15:24:56.97ID:b8huESie
UbuntuでUnityでゲームを作ることはできますか?
2020/02/29(土) 15:43:48.81ID:NqqYgWAQ
日本語でおk
727弟子
垢版 |
2020/02/29(土) 17:02:02.97ID:wBtxqkZH
検索結果
ウェブ検索結果
UbuntuでゲームエンジンのUnityをインストールする手順
https://www.virment.com/how-to-setup-unity-ubuntu/
728名前は開発中のものです。
垢版 |
2020/02/29(土) 22:05:12.41ID:b8huESie
>>726
すまん、語彙力ないしコミュ障なんや
>>727
サンガツ
729名前は開発中のものです。
垢版 |
2020/03/01(日) 13:02:22.82ID:W5NbcG3C
unity2018.4.17f1です。
3Dキャラを表示するにはdirectional lightしかないのでしょうか?
部屋や特定の範囲ごとに明るさを変えたい場合は
どうやってキャラクターを照らせば良いのですか?
(directional lightがないとキャラが真っ黒になるので・・)
730弟子
垢版 |
2020/03/01(日) 13:13:00.10ID:bg2PdJXV
Unityライトを使った演出の作り方
https://styly.cc/ja/tips/lightshadow_discont_light/
731名前は開発中のものです。
垢版 |
2020/03/01(日) 13:35:39.08ID:W5NbcG3C
>>729 です。
回答ありがとうございます!
2020/03/02(月) 22:12:18.88ID:FZAofo0u
助けてください…!!!!
Unity 2018.4.16f1で個人練習用にフリー版NGUI「ngui270.unitypackage」を
インストールしたのですが、UITextureコンポーネントなど、NGUIのコンポーネントが出てきません。
UnityにはNGUIフォルダもできておりシェーダーもあるのですが、どうしたら正常に使えるようになりますでしょうか
2020/03/02(月) 22:14:59.41ID:FZAofo0u
↑UIStretch.cs
UITextList.cs
UITexture.cs
UITiledSprite.cs
UITooltip.csなどなど、入っていることは確認できております
734名前は開発中のものです。
垢版 |
2020/03/03(火) 11:25:58.98ID:DIrug5M2
なんで今更NGUIなんか入れるの
735弟子
垢版 |
2020/03/03(火) 11:42:48.43ID:Qbw0Io/Y
>>732
ソースの中身が古くて無くなった命令つかってるよってエラー出てるでしょ?
https://i.gyazo.com/ba87315c126c217dfc4529415428e7d5.png

とりあえず
Camera.isOrthoGraphic → uiCamera.orthographic
Renderer ren = go.renderer → Renderer ren = go.GetComponent<Renderer>()
Collider col = gameObject.GetComponent<Collider>(); //collider;

こんな感じで直すしかないですね
結構一杯あるんで大変です
2020/03/03(火) 17:16:42.45ID:hGrdnLAs
Ubuntuの方のUnityは名前紛らわしいから遂に名称変えるらしいな
2020/03/03(火) 17:29:36.35ID:wp3iypza
Ubunty
2020/03/03(火) 18:41:04.20ID:09uaPptx
Utility フォルダと間違えそうになることはあるw
2020/03/03(火) 19:42:39.97ID:VHMxnF1X
>>736
まあ、Unityという微妙に一般な単語を使ったほうが悪いような気もする
740名前は開発中のものです。
垢版 |
2020/03/03(火) 22:23:36.98ID:ApYXiw1K
Unity2019.3.3f1です。
アセットストアではなくユニティちゃん公式サイトのSDユニティちゃんを使って
クリックしたキューブの上に仰向けorうつ伏せで一定の高さから落下させて
ボードゲームのコマとして使いたいのですが
どういうスクリプトを書けばいいですか・・?
落下というより重力に関係なく空中からキューブの上まで
移動させる処理でも良いのですが。
2020/03/04(水) 01:03:41.86ID:M9QGHLDI
ここは通信学習の場ではありません。
まず自分でできるところまで組んでください。
そして、思うように動かないところを、自分がどう組んだか説明し、どうしたいのか、現在はどう動いてしまうのかを説明してください。
話はそれからになります。
742弟子
垢版 |
2020/03/04(水) 06:30:43.99ID:BZLTYd6o
>>740
とりまユニティちゃん公式の「SD_UnityChan-1.unitypackage」を2019.3.0f6にてインポートしたところ
エラーが出たので、そこはまず修正します
using System.Security.Policy; ← これをコメントにします

んでもってユニティちゃんを配置してcubuを配置してみましょうか
落ちるのでRigidBodyを配置します
ぶつかりにはぶつかる方と自分にコライダーを設置
んでこんな感じ(ここまではスクリプトは一切書いてないです)
https://imgur.com/OAtA2yB
あとはCubeを沢山配置 ←これにはPrefabにするといい
んでクリックしたcubeを取得してその位置の上方に配置
それぞれ「Unity オブジェクト クリック」等でgglと詳細でます

他にも色々とキーワードが分かったお思うので、それでggってみましょう
743弟子
垢版 |
2020/03/05(木) 14:14:48.92ID:u6b+D0lk
>>741
>ここは通信学習の場ではありません。

その通り、ここはあなたの主張をする場ではありません
答がわからないなら書かないように
ちゃんと>1を読み理解しましょう
744名前は開発中のものです。
垢版 |
2020/03/05(木) 14:57:39.66ID:2PrydH1X
関東無政府主義国へようこそ!
ttp://x0000.net/topic.aspx?id=3629-0
2020/03/05(木) 18:01:18.62ID:w+mRocnN
>>743
その通り、ここはあなたが自治するところではありません。
スルーできない正確ならちゃんと>1を読み理解しましょう
746弟子
垢版 |
2020/03/05(木) 18:29:38.21ID:u6b+D0lk
>>745
ごめん、スルー出来ない性格なんだよ

ちゃんと正確に書こうねwwww

添削終わり
2020/03/05(木) 21:17:23.69ID:cTpBbpSo
UNITYのクラスの概念がよくわからないのでご教授くださいm(__)m

UNITYでよく使われている他オブジェクトのクラスの取得で、

GameObject 変数;
クラス名 変数 = GetCompornent<クラス名>();

みたいなのがありますが、
これはC#の教本とかによく載っている、「プレイヤークラスを作ってインスタンスを作成する」
みたいにインスタンスを作っているという解釈でいいんでしょうか?
748弟子
垢版 |
2020/03/05(木) 21:38:49.20ID:u6b+D0lk
GetCompornent はあくまで、その指定した<クラス名>にアクセスする為に参照を作成しているだけです
「インスタンスを作成する」場合には、New指定が必要です

例えば
int original
int a = original
int b = new int();
b=original;

では、aはoriginalの参照だけど、bは新規作成になります

現在、何のクラスの何にアクセスしているかによって、そこに値を入れる事で
何が変わるかは、ちゃんと確認した方がいいと思います

ある関数で関数内だけで値を変えたつもりが、全部変わっていたって事もありますので

私が言えるのはこれくらいだけど
>>745さんはもっときっと上手く説明してくれるんではないかな、わざわざあんなレスしてるんだから

期待してますよ

それからインスタンスですが、これはあくまで独自の存在だと解釈していいかと思います
2020/03/06(金) 05:14:58.37ID:jDntWvjW
サンプルコードでもセミコロンないとモヤる
2020/03/06(金) 10:35:13.46ID:88urs3PV
ゲーム中に「操作の説明」を表示したいと思っています。
例えばキャラクターがドアの前に来たときに、ドアを開けるボタン、
例えばAボタンなら「A」のアイコンを表示するようなものです。

そこで、今現在キーボード操作なのか、ゲームパッド操作なのか、
「ドアを開けるボタン」にどのボタンorキーが紐付けられているのか、
を取得しなくていはいけないのですが、この方法がわかりません。

方法そのものではなく検索キーワード、実現できるアセットなど何でもいいので
よろしくおねがいします
2020/03/06(金) 11:08:14.95ID:hgj9cGoZ
値型をnewしてる割に偉そう
752名前は開発中のものです。
垢版 |
2020/03/06(金) 12:16:05.50ID:gMHoqhp3
>>747
プレイヤーのインスタンスを作るってのはどっちかいうとプレイヤーのプレファブをインスタンス化するの方がイメージ近いと思う。
その時作られたGameObjectにはいろいろcomponent としてのスクリプトが引っ付いてるけどGetComponentはその引っ付いてるものの参照を持ってくる感じ
753弟子
垢版 |
2020/03/06(金) 12:33:05.86ID:8vF8ZWlw
>>750
「unity キーコンフィグ」「unity ゲームパッド」ここら辺で一応キーボード、マウス、ゲームパッドが分かるかなと

>>751 偉そうじゃなくて偉いのよ、ちゃんとスレの主旨として質問に答えてるからね、雑談したいなら雑談スレへどうぞ
754747です
垢版 |
2020/03/06(金) 15:43:14.30ID:vJ19FqQh
>>748
>>752
UNITYの本とc#の本で同時に勉強してるので混乱してました
C#本に書いてあるインスタンスの使い道がまだよくわからないですが
とりあえずは単純にプレファブからインスタンス生成って考え方でいこうと思います
ありがとうございます
2020/03/06(金) 22:24:12.21ID:1ULsHRya
簡単なライトノベルを作りたいと思い、
画面下にテキストウィンドウが出てクリックすると次の文章が出るといったことをやりたいのですが、
スクリプトでやるのは難しいので、テキストウィンドウのイメージ画像を最初に10枚くらいピッタリ重ねておいて
クリックすると上から一枚づつ消えるようにしようと思いました。
ですが間違ってダブルクリックして一気に2枚消えてしまうのを防ぐために一枚消えたら0.5秒くらい操作不能のしたいです。
何秒後に実行Invokeというのは分かったのですが、何秒間操作不能というのは簡単に出来るでしょうか。
2020/03/06(金) 22:28:32.20ID:VGelP9bX
>>755
クリックしたら透明パネルをオンに、invokeで0.5秒後にパネルをオフでいいんじゃない
757755
垢版 |
2020/03/06(金) 22:34:17.15ID:1ULsHRya
>>756
なるほど、それなら自分でも出来そうです。
どうも有難うございます!
2020/03/07(土) 08:40:43.47ID:5EioThaq
自分ならもう少し頑張ってプログラム勉強しながら作るけどな…
そのまま続けたらいつか破綻しそうだけど
2020/03/07(土) 08:57:31.84ID:Uss2F5S3
ていうかこれいわゆる「テキストが画像」な状態なのでは
もがく方向性はそれでいいのか…?
2020/03/07(土) 09:12:49.28ID:+zNTitoa
自分も初心者だけどパネルのオンオフとかロジックの考え方とか練習として無駄になるわけじゃないのでとりあえず動く物を作るのは良いと思います。
こうした方が良かったなって作り直す時に成長を実感するしいきなり大作作るわけでも無いので。

というよりプログラムの習得ってその繰り返しでは無いでしょうか・・・。
761名前は開発中のものです。
垢版 |
2020/03/07(土) 10:27:27.18ID:6+Dk7f8n
>>755
まあ一度やってみればいいと思うけど、テキストを画像にして切り替えはまあ悪手だと思う
2020/03/07(土) 13:06:11.17ID:5EioThaq
頑張る、回避する方向性が正しいのかを見極めるのもセンスだと思う
2020/03/07(土) 13:22:54.89ID:rwQlodPt
本人の意向に沿ったアド。
2020/03/07(土) 14:41:05.25ID:WpOmTZAt
フォントのライセンス回避には良い施策かも

再配布できるフォントは限られてるし
765名前は開発中のものです。
垢版 |
2020/03/07(土) 20:44:01.16ID:j6C8KDrh
UnityからBlenderファイルを直接読み込むと、アニメーションが読み込まれません。
これを読み込める様にするにはどの様にすればよいでしょうか?
Windowsの場合、こちら(https://gomafrontier.com/unity/3518)に解決策が載っていますが、Macでのやり方が分らず、困っています。
ご存知の方いらっしゃいましたら、教えて頂けると助かります。
宜しくお願い致します。
2020/03/07(土) 22:23:29.89ID:y+xObmvy
Unity2018 Blender2.81を使用しています

Blenderで人型のモデルを作り、アニメーションを付けたFBXファイルをUnityへ取り込みました
アニメーションに追従させるため、武器をもつ方の手のボーンにコライダをつけて攻撃時の当たり判定に利用しようとしたのですが
恐ろしく大きなコライダができてしまいました

手のボーンのオブジェクトをダブルクリックするとモデルが見えなくなるほど画面が一気に引きます
他のボーンでも同じようになります
おそらくUnityに取り込んだボーンのサイズがおかしくなっているのだと思われます
しかし、プレハブ上でボーンを確認してもトランスフォームの値がおかしくなっているようには見えません

関係あるのかどうかは分からないのですが、パーツを分けて人型のモデルを作成しており、
各パーツはBlender上ではボーンの下にあるのですが、Unity上ではルートの直下に配置されています
これらのオブジェクトを確認した所、スケールの値がX,Y,Zすべて100になっていました

・Blender上でオブジェクトに「適用→全トランスフォーム」をする
・Blender上でExport時に「トランスフォーム適用」をチェックする(各パーツのスケールが1にはなったがボーンのサイズは相変わらずの様子)
・Blender上で単位の設定を「メートル法」にする、もしくは「なし」にする

いずれも試しましたがボーンのサイズは相変わらずのようで恐ろしく大きなコライダができてしまいます

どのようにすればよいでしょうか?
2020/03/08(日) 08:17:24.61ID:yu7/7LHp
>>766
Unity側でFBXの読み込みスケールを確認した?
基本は100に設定されてる、FBXごとに設定出来るけども
2020/03/08(日) 08:49:58.24ID:0zTqE3kf
>>767
Unity側でのFBXの読み込みスケールの確認とはどこでできるのでしょうか?
一応インポートしたFBXファイルのModelタブを確認するとスケールファクターは1になっています
769タワー ◆j2ZL4YtpzY
垢版 |
2020/03/08(日) 11:44:49.91ID:FIQBCa1I
先生方質問でふ!
2Dで画像にcollider付けてボタンとして使ってるんですがたまにタップしても効かない時があります
常に効かない訳ではなく、同様の場面で効く時、効かない時があります

Unity上で一時停止してcolliderを一旦オフにしてからオンに切り替える事で作動したのでスクリプト上で切り替えを行う様にしましたが改善出来ませんでした

同じく一時停止してtransformのxyを体感出来ない値で修正したら作動したのでスクリプト上で…同じく改善出来ませんでした

経験のある方…何かピンと来た方居られませんでしょうか?
2020/03/08(日) 13:19:11.62ID:yu7/7LHp
>>768
そこで良いけど
基本的にUnity側はデフォルトのままで出力側でスケール管理する方が楽だと
ちなみにエディターをスクリプトで拡張したらインポートの大きさやらを色々と自動化できる

Blenderの事は詳しく無いけど、テストで骨適当に入れたモデルをFBXで書き出して試したら?
それがまともなら書き出しや読み込み設定は正しくて、キャラの骨側が問題だって明確になるよ

キャラクターみたいに複雑な物をいきなりやる前にテストパターンで最低限を理解してからじゃなきゃ地獄見るよ
最悪リグ再構築とかあるから
771弟子
垢版 |
2020/03/08(日) 15:49:41.90ID:u0wg0OZ9
>>769
canvas使ってるならソートオーダー関連か、複数なら順番かなと

使ってないとなると、何か透明なのが上にのってるとか?
772弟子
垢版 |
2020/03/08(日) 15:54:59.32ID:u0wg0OZ9
ちょいググったら、コライダーによるイベントシステムのタップ(クリック)は重なってるととれないとか?あるっ歩い
レイ飛ばしてるサンプルあったけどそんな感じかなあ
2020/03/08(日) 16:38:14.67ID:+9Yp1l0D
Instantiateでプレハブから複数生成したオブジェクトを
ランダムに一つずつ選んで破壊するのはどうすればいいんでしょうか?
2020/03/08(日) 16:56:51.59ID:xMgGiSpz
ランダムに選択して、デストロイすればいいよ。
775弟子
垢版 |
2020/03/08(日) 17:04:39.10ID:u0wg0OZ9
>>773
instantiate はgame object を返してくれるのですよ
なので返しを配列に入れれば、配列からランダムに取り出して操作が出来るのよ
2020/03/08(日) 17:40:35.63ID:+9Yp1l0D
>>775
いろいろ試してはいるのですがなんかエラー出ますm(__)m
そもそも生成自体ちゃんとできてないみたいです
どのように記述すればいいのでしょうか・・・?

public class sousa : MonoBehaviour
{
public GameObject obj; // インスペクターでプレハブ接続済み
public GameObject [] go=new GameObject[5];

// Start is called before the first frame update
void Start()
{
for (int i = 0; i <= 5; i++)  // オブジェクト複数生成
{
go[i] = Instantiate(obj);
go[i].transform.position = new Vector3(i, 0, 0);
}
}

// Update is called once per frame
void Update()
{
if (Input.GetMouseButtonDown(0)) //マウスクリックでランダム選択
{
Destroy(go[Random.Range(0,5)]);
}
}
}
777弟子
垢版 |
2020/03/08(日) 17:43:31.37ID:u0wg0OZ9
>>776
エラーメッセージは?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況