X



【3Dゲームエンジン】Unity質問スレッド32
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名無し@キムチ
垢版 |
2017/10/30(月) 05:05:35.00ID:xnHTCaF3
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。
プラットフォームサポートは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質問スレッド31
https://mevius.5ch.net/test/read.cgi/gamedev/1504366121/
0854名前は開発中のものです。
垢版 |
2017/12/14(木) 00:23:40.49ID:AuQKwcV0
>>853

そうですね。
parentがrootとは限らないので、parentのlossyscaleじゃないとダメですね。
末枝側へ変換が累積していきますから。

親オブジェクト-子オブジェクトの2者関係だと、
親オブジェクトのlossyscale = localscaleなので、両方localscaleで大丈夫ですけど。

親オブジェクト-子オブジェクト-孫オブジェクトの3者関係だと、
孫オブジェクトの親オブジェクトである子オブジェクトのlossyscaleは、
親オブジェクトのlocalscale * 子オブジェクトのlocalscaleになってますから、

孫オブジェクトのlossyscale
= 子オブジェクトのlossyscale * 孫オブジェクトのlocalscale
= (親オブジェクトのlossyscale * 子オブジェクトのlocalscale) * 孫オブジェクトのlocalscale
= 親オブジェクトのlocalscale * 子オブジェクトのlocalscale * 孫オブジェクトのlocalscale

>>852

仕事じゃなくて学問の方で。

うっかりしてましたが、UnityはCamelCaseだから、localScale,lossyScaleが正しいのでしたね。
0855名前は開発中のものです。
垢版 |
2017/12/14(木) 00:33:15.69ID:AuQKwcV0
Scaleの積は、Vector3の各成分とVector3の各成分の積なので、
Vector3 * Vevtor3 は定義されていないから、
Vector3.Scale(Vector3, Vevtor3) という演算ですね。
いわゆる、アダマール積(シューア積,要素積)です。

Unityでは、アダマール積の逆関数が定義されていないので、
自分でVector3.Scaleの逆関数を定義するか、
アダマール積の逆数を自分で定義する必要がありますね。
0856名前は開発中のものです。
垢版 |
2017/12/14(木) 02:05:43.30ID:tWpTkhe5
Vuforiaを使ってAR作りたいのですが実行するとマーカーは認識するもののカメラの映像が映らずに画面が黒くなります
誰か分かる方いらっしゃいますか...?
0858名前は開発中のものです。
垢版 |
2017/12/14(木) 08:46:47.19ID:xj1b5N68
>>857
専門学校出身だったら行列の回転だとかをQuaternionとかでも適用して使えるんだろなー

という煽りレス
0859名前は開発中のものです。
垢版 |
2017/12/14(木) 11:08:53.86ID:X1xy6sbZ
plus一ヶ月契約でもエッセンシャルパック2つってもらえますか?
あるいは契約し続けないと使えなくなる感じかな
0862名前は開発中のものです。
垢版 |
2017/12/14(木) 15:25:57.18ID:UIHENBZT
数学難しいですね
でも大丈夫!UNITYにはアセットが有りますよ!
アセットを購入しましょう!
0866名前は開発中のものです。
垢版 |
2017/12/14(木) 20:39:20.26ID:AuQKwcV0
>>865

移動と回転とスケーリングができるように、
アフィン変換行列になっているからです。

Matrix4x4.TRS(position, rotation, scale)
で4×4行列に入力できますが、

出力する時は、
Vector3 = Matrix4x4.MultiplyVector(Vector3)
によって、Vector3で入力して、
Vector3で出力できるようになっています。
0868名前は開発中のものです。
垢版 |
2017/12/14(木) 21:30:51.37ID:AuQKwcV0
>>858

回転行列MでベクトルV0を回転させて、ベクトルVにするには、
Z軸で30度回転する場合は、

Quaternion Q = Quaternion.Euler (0, 0, 30);
Matrix4x4 M = Matrix4x4.TRS (Vector2.zero, Q, Vector2.one);
Vector3 V0 = new Vector3(1, 2, 3);
Vector3 V = M.MultiplyVector (V0);

これを、QuaternionとVector3の演算で行うと、

Quaternion Q = Quaternion.Euler (0, 0, 30);
Vector3 V0 = new Vector3(1, 2, 3);
Vector3 V = Q * V0;
0869名前は開発中のものです。
垢版 |
2017/12/14(木) 21:32:41.20ID:AuQKwcV0
Matrix4x4 M = Matrix4x4.TRS (Vector2.zero, Q, Vector2.one);
は間違いで、

Matrix4x4 M = Matrix4x4.TRS (Vector3.zero, Q, Vector3.one);
が正しいです。
0870名前は開発中のものです。
垢版 |
2017/12/14(木) 21:45:36.22ID:AuQKwcV0
>>858

Quaternion QでベクトルV0を回転させて、ベクトルVにするには、
Z軸で30度回転する場合は、

Quaternion Q = Quaternion.Euler (0, 0, 30);

Vector3 V0 = new Vector3(1, 2, 3);

Quaternion Qv0 = Quaternion.identity;
Qv0.Set(V0.x, V0.y, V0.z, 0);

Quaternion Qv = Q * Qv0 * Quaternion.Inverse (Q);

Vector3 V = new Vector3(Qv.x, Qv.y, Qv.z);

こちらが、本来のQuaternion積でベクトルを回転させる方法です。

Unityでは、この面倒くさいQuaternion積の演算が、
「Quaternion * Vector3」だけでできるようになっています。
0871名前は開発中のものです。
垢版 |
2017/12/14(木) 21:55:15.62ID:AuQKwcV0
Vector3 = Quaternion * Vector3
は、行列積を意識していると思われます。

Vector3 = Matrix3x3 * Vector3
としたいところですが、
UnityにはMatrix3x3は用意されていません。
(3×3行列の乗算では、回転とスケーリングしかできないからです)

Vector4 = new Vector4(Vector3, 1) で4次元ベクトルにしてから、
Vector4 = Matrix4x4 * Vector4 で計算して、
Vector3 = (Vector3)Vector4 で3次元ベクトルへ戻す必要があります。

最初に、Vector4 = (Vector4)Vector3 と手抜きをしてはいけません。
Vector4 = new Vector4(Vector3, 0) で代入されると、
アフィン変換の「移動」が乗算されなくなります。
0872名前は開発中のものです。
垢版 |
2017/12/14(木) 23:49:37.69ID:zts/k6NY
行列なんか意識しないでも3dゲーム作れるようになったんだからすごい時代だよね
結構まえからだけど
0876名前は開発中のものです。
垢版 |
2017/12/15(金) 11:35:10.31ID:a5awPS/6
>>874
半額だったんでplusを年契約の年払いしたよ
売り上げ1千万以上なのに。
たかだか1万円ぐらいを月払いする奴いるの?
0877名前は開発中のものです。
垢版 |
2017/12/15(金) 12:38:14.64ID:c63jfGrC
物理演算系の解説を希望!

C#の経験あっても、そもそも物理演算は別物な気がする・・・

物理演算は、2Dと3Dで若干仕様が違うし、なかなか体系的に物理演算を解説しているサイトも少ない
せいぜい、velocityとAddForce止まりが多い

重力設定や衝突判定をUnityにまかせてしまうには、物理演算を使用するのが手っ取り早いんだけど、
物理演算だと、これまでのグラフィックス操作的な、プログラミングメソッドがあまり使えない
(基本的に、positionやrotationを直接いじらないほうが良いみたい)
0878名前は開発中のものです。
垢版 |
2017/12/15(金) 12:46:53.83ID:bN2Y1bPS
アイテムを所持していればお化けを倒せるというシステムにしようと思っています。
それでそのアイテムを十字架の画像にしようと思っているのですが、日本人だったらアイコン見ただけで何となく意味が分かるだろうと思うのですが、海外の人でも抵抗なくスッと理解されるんでしょうか?
0881名前は開発中のものです。
垢版 |
2017/12/15(金) 16:32:05.45ID:kzY3QNw/
>>878
ゲームデザインにもよるけど

そのアイテムの効果とお化けとの相互関係が分かるような物なら多分大丈夫かなぁ アイテム説明とかも結構重要だけども。
0883名前は開発中のものです。
垢版 |
2017/12/15(金) 20:05:01.07ID:c63jfGrC
transform.LookAtだと、どうしてもオブジェクトのforward軸が対象を向いちゃう
そうじゃなくて、オブジェクトのup軸を対象に向けたいんだけど、一体どうすれば・・・?

transform.LookAtでオブジェクトのforward軸を対象に向けて、
その後にtransform.Rotateでx軸で90度して、up軸をforwardへ向けているんだけど、
2段階になっちゃって、無駄が多いし、その瞬間動作が表示されちゃう

オブジェクトとtransform軸の対応を変更できれば、
オブジェクトのup軸方向を、forward軸に設定したいんだけど・・・
0884名前は開発中のものです。
垢版 |
2017/12/15(金) 20:51:06.18ID:PCtIHB7r
おぶじえくを最初から傾けておくか、小オブジェクトで対応するか、いくらでも方法あるだろうね。
ルックアット使わずにやるのも有りだし。
0885名前は開発中のものです。
垢版 |
2017/12/15(金) 23:29:48.61ID:nw+wySXa
>>883
目標の座標をVector3 targetとすると、

transform.right = targetでいけませんか?

transform.LookAt(target) は、
transform.forward = target と同じになるはずです。
0886名前は開発中のものです。
垢版 |
2017/12/15(金) 23:37:17.53ID:nw+wySXa
もっとも汎用性のある方法は、
向き(transform.rotation)を、
向けたい軸(Vector3.right)を向かせたい相手(target)へ向ける回転
Quaternion.FromToRotation にしてしまう方法かと思います。

transform.rotation = Quaternion.FromToRotation(Vector3.right, target)
になります。

例えば、左側をtargetに向けたい場合、
Vector3.right を、- Vector3.right に変更します。
(Vector3.right = - target でも勿論できます)

ただ、Vector3.oneをtargetに向ける回転は、
transform軸への代入ではできず、
上記の汎用法を使うのが良いと思います。
0887名前は開発中のものです。
垢版 |
2017/12/15(金) 23:38:56.71ID:nw+wySXa
>>883

読み間違えました。
up軸を向けるのでしたね。

@transform.up = target

Atransform.rotation = Quaternion.FromToRotation(Vector3.up, target)
0888名前は開発中のものです。
垢版 |
2017/12/16(土) 01:09:49.63ID:yxJiRP9K
先生、お元気ですか?

ゲームの世界は感覚的すぎて戸惑います。
学び舎では多くを教わりましたが、教わった通りに自分が成長できているか分かりません。
ぼくは、自分の理想の世界観を語れるほどゲームを知らないということを知りました。

惹かれます。

ゲームを、もっと知りたいです。
0891名前は開発中のものです。
垢版 |
2017/12/16(土) 10:52:27.48ID:rc5ijf27
質問です
友人がウインドウズで9人対9人のオンラインゲームを作りたいと言ってます
それはつまり18人がオンライン接続してゲームするわけですが
そんなことUnityでやれますか?
0895名前は開発中のものです。
垢版 |
2017/12/16(土) 15:56:35.74ID:fmqmdkMD
無料で利用できる範囲は同時接続20人まで
21人〜50人まで月額4200円
51人〜200人まで月額15000円
0896名前は開発中のものです。
垢版 |
2017/12/16(土) 16:08:28.62ID:ovrxOZck
パーソナル版の使用条件として収益が〜ドル以下みたいな規約がありますが、
あれは自己申告なのでしょうかそれとも向こうでも逐一判断できる状態なんでしょうか。
0899名無し@キムチ
垢版 |
2017/12/16(土) 19:19:52.45ID:ODGviKVk
>>887
>up軸を向ける

up軸を相手に向けるというのが、当方にはどんな状態なのか、ピンとこないです。
具体的には頭のてっぺんを相手に向けるということなのですか?
それはどんなシチュエーションのゲームなんだろう?
これから相手に頭突きをかますとか?それなら、頭だけを下げればいいわけだし・・・
申し訳ないが、まるで映像が浮かんできません・・・www
0900名前は開発中のものです。
垢版 |
2017/12/16(土) 22:30:34.88ID:zgsa9dPV
落ちものパズルを作成していて画面上部にオブジェクトを出現させて横軸のマウスの動きについてきてクリックでオブジェクトが落下。
というような仕様にしたいのですが、ランダムにオブジェクトを作成して画面上部に固定というのが出来ません。これの解決法が見つかりません。。。

どうかご教授お願いします。
0901名前は開発中のものです。
垢版 |
2017/12/16(土) 22:50:27.94ID:hBjssZ70
例えば、太陽を中心に地球が公転をする時のようなイメージで、

常に同じ面(赤道面)を太陽に向けて公転する場合は、forwardを太陽に向かせればよいけど、

太陽の真上に北極星をおいて、北極側の地軸を常に北極星に向かせたまま公転する場合は、
up軸を北極星に向ける必要がある

(実際の地球はそんな回転はしないけど、そういう状況を作りたいときに必要かも)
0902名前は開発中のものです。
垢版 |
2017/12/16(土) 22:58:57.30ID:hBjssZ70
あるいは、飛行機の宙返り飛行かも?!

普通、飛行機の前後にforward軸をとるはず
transform.position += Vector3.forwardで前へ進み、

taransform.RotateionAroundで、上空に設定したループ中心回りを公転して宙返り
その際、飛行機の背中(上下のup軸)はループ中心を向けていないといけない
0903名前は開発中のものです。
垢版 |
2017/12/16(土) 23:03:43.75ID:yxJiRP9K
人生は神ゲーだ。
本気でがんばるとぎりぎり倒せるように絶妙のバランス調節がされた敵。
単純作業じゃ効率が悪いけど、工夫次第でどんどん効率を上げられる経験値システム。
リセット不可の緊張感。でもシレンとかよりずっと死ににくいからあんま気にする必要なし。つーか普通のゲームでもリセットなんて邪道じゃん。
全てのキャラが深い人間性と歴史を持って登場する、圧倒的リアリティ。
グラフィックが綺麗すぎ。多分、無限×無限ピクセルで、毎秒無限フレームで動いてる。色も多分無限色使える。夕焼けとかマジありえねー美しさ。
BGMの種類がほぼ無限。選曲も自由。自分で作った曲を流すこともできる。人間が作ったとは思えない、とんでもなく複雑で洗練されたシナリオ。
リアル出産システム採用。自分と、自分よりも大切に思える相手の遺伝子を半分ずつ受け継いだ、奇跡のようなキャラを生み出して、そいつに自由に色々教えて育てることができる。
すごく嬉しいし、ちょー楽しい。ネコっつー生き物が登場するんだけど、これがちょーかわいい。
食いきれねーほどの種類の料理があって、超うまいものが時々食える。
説明書が無く、仕様が明かされてないから、自分でデータとって仕様を推測するしかない。これがまたとんでもなく高度に洗練された仕様になってるっぽくて、なかなか正確には分からん。
だから、とりあえず大雑把に推定し、それに基づいて行動して、データを取りつつ徐々に予測値を修正していく必要がある。
これがまた楽しい。徐々に明らかになっていく世界観。
未だに明らかになってない謎が山盛り。友達と一緒に協力して遊べる。無料。
本気で自分を愛してくれるキャラがいたりする。ゲーム内で別なゲームやったりアニメ見たり出来る。

エロゲと違って、主人公の勝手な行動でフラグが立つことがない。

登場キャラと本当に心を 通わせることが出来る。信じがたいほど深い感動を味わえるイベントが結構ある。もちろん本気でやらないとフラグを無駄にするだけだが。
こんなとてつもない神ゲーを糞ゲーとか言ってる奴は、本気でこのゲームをやったことがない奴だけ。
まあ、一切がんばらずにクリアできるようなヌルゲーばかりやってる奴には、このゲームはちょいとハードかもしれんがな。でも一端ハマった奴はみんな、このゲームを辞めたくないって言ってるぜ
0904名前は開発中のものです。
垢版 |
2017/12/16(土) 23:05:25.75ID:hBjssZ70
いいや、違うな・・・

おそらく、2DでLookAtが使えないからかもしれない!
2Dだと、forwardはZ方向、つまり、奥方向が前になる

2DでLookAtすると、forwardを対象物に向けるため、
スプライトが画面に対して垂直に立っちゃうからかも?

例えば、振り子運動させる時、上方に振り子の中心点を設定して、
左下45度から右下45度へ向かってRotateAroundで公転した場合、
オブジェクト上方=up軸を振り子の中心点へ向けないといけない

そもそも、2Dではup軸かright軸しか向きを変える際に利用できない・・・
(forward軸を変えたら、2Dでなくなってしまうから)

これが理由のような気がするなあ
0905名前は開発中のものです。
垢版 |
2017/12/16(土) 23:07:26.05ID:hBjssZ70
>>900

物理は使う?
2Dなの3Dなの??

Gravityオフにしてオブジェクトを生成すれば、落ちないよ
クリックしされたら、オブジェクトのGravityをオンにしたら良いんじゃ
0906名前は開発中のものです。
垢版 |
2017/12/16(土) 23:57:45.09ID:zgsa9dPV
>>905
返信ありがとうございます。
物理は使っています。2Dで制作しています。

プログラムが書けなくてオブジェクトをランダムに生成してクリックでGravityをオンにするっていうようにするのが
どうやればいいのかわからなくて・・・。
0907名前は開発中のものです。
垢版 |
2017/12/17(日) 00:00:59.32ID:CBpPFu99
星型のアセットモデルをインポート

Hierarchyに追加して任意の角度(星型が正面に来る)にする

それをプレハブ化
してもInspector内でデフォルトの角度に戻ってしまいます(オブジェクトとして使用する分には任意の角度になるんですが)

星型の弾丸を作ろうと思ってるんですが、プレハブから弾丸にするとデフォルトの変な角度のまま発射されてしまうんですよね…
0909名前は開発中のものです。
垢版 |
2017/12/17(日) 01:26:30.94ID:K2bL8mhm
>>907

アセット内のプレハブの方のインスペクターで角度を指定すれば、
それをヒエラルキーに持っていっても角度は保たれているはず

スクリプトで動的にプレハブprefabを生成する場合、
生成時に角度Quaternionを指定できる

if?(Input.GetMouseButton?(0))?{ //クリック時
 Vector3 position = new Vector3(Random.Range(-10.0f, 10.0f), 10, 0); //x座標をランダムに生成
 Instantiate(prefab, transform.position, Quaternion.Euler(x, y, z)); //角度を指定してprefab生成
}

このスクリプトをprefabに載せる
0910名前は開発中のものです。
垢版 |
2017/12/17(日) 01:32:40.49ID:K2bL8mhm
半角スペースが文字化けして?になっちゃった・・・

左クリックされたら、
x座標を-10〜+10でランダム値
y座標を10
角度を(x度,y度,z度)
prefabを生成

2Dだと、
Rigidbody2D Rb2D;
Rb2D?=?GetComponent?<?Rigidbody?>?();
Rb2D.gravityScale = 1.0f;
もいるね

あらかじめ、prefabのRigidbody2Dで、
インスペクター上でGravityScaleは0にしておいてね;
0911名前は開発中のものです。
垢版 |
2017/12/17(日) 02:01:14.46ID:vcuEPHEk
流石にコード無しでDTB作るのは難しいと思うからプログラムを学ぶかかける人を探さないと無理だと思うよ
0912名前は開発中のものです。
垢版 |
2017/12/17(日) 02:16:48.31ID:K2bL8mhm
public GameObject Obj; //prefabを指定しておく
Rigidbody2D Rb2D;

public class PrefabCode : MonoBehaviour {

void Update() {
 if (Input.GetMouseButton(0)) {
  Vector3 position = new Vector3(Random.Range(-10.0f, 10.0f), 10, 0);
  GameObject Prefab = Instantiate(Obj, transform.position, Quaternion.Euler(x, y, z));
  Rb2D = Prefab.GetComponent<Rigidbody2D>();
  Rb2D.gravityScale = 1.0f;
 }
}
0913名前は開発中のものです。
垢版 |
2017/12/17(日) 02:23:43.91ID:K2bL8mhm
PrefabCodeは、ヒエラルキーで作成した空の2Dオブジェクトにでも入れておいて

もしかして、ランダムはオブジェクト自体か?
オブジェクトの形が数種類あるとか?
その場合は、ランダムでパターン番号0〜3とかを指定して、
if文で、違うprefabを生成する文を選択させるのが良いかも

空のオブジェクトのx座標を、マウスのx座標と揃え続けるコードも必要だな
マウスオーバーイベントに書いておく必要ありそう

prefabは空のオブジェクトの位置に生成されるから
0917名前は開発中のものです。
垢版 |
2017/12/17(日) 03:30:34.88ID:anx13erV
2Dアクションゲームを作成しようとしている初心者です。

tilemap collider2dをアタッチしたtilemapの平面フィールド上で、
rigidbody2dとbox collider2dをアタッチして重力と当たり判定を付与したGameObject(Player)を歩かせたところ、
タイルに引っかかる形で止まってしまいます。
これを回避するためにcapsule collider2d等で接地面を点にすると止まることはなくなります(僅かに減速する)が、
当たり判定を□で判定したい為、可能であればbox collider2dで実装したいと考えています。

tilemapを使用した際のこういった引っかかり挙動を抑えることは可能でしょうか。
0918名前は開発中のものです。
垢版 |
2017/12/17(日) 10:25:06.96ID:kJlZ2G7V
足元はcapsuleかcircleにして、
もう1つboxで足元から数ピクセル上を覆えば良いのでは?
collider2Dは1つという制約はないので、複合したら良いんじゃ
0919名前は開発中のものです。
垢版 |
2017/12/17(日) 10:31:21.09ID:kJlZ2G7V
>>899

>>887ですが、基本的にforward軸はオブジェクトの前後方向にとっているのですが、
円状(球状)の軌道で旋回しており、その際にオブジェクトの上下方向を、
軌道の中心(球の中心)へ向けておきたいのです・・・

人工衛星やスペースシャトルみたいな感じです
前方は進行方向を向けておいて、なおかつ上下は鉛直軸に揃えたいんです
前方が中心を向いちゃうと、上下に立った状態で周回してしまうので
0920名前は開発中のものです。
垢版 |
2017/12/17(日) 10:36:09.95ID:kJlZ2G7V
レスのアンカに引っ張られて間違えましたが、自分は883でした

>>904
2Dだとtransform.LookAtが機能しないんですね!
それじゃ、やっぱりforward以外の軸を向ける機能は大事ですね

>>885
ビックリです!
transform軸に目標座標を入れると、軸がそっちを向くんですね!
しかも、正規化して単位ベクトルにするひつようもないみたい
そしたら、transform.LookAtいらなくない?!
0921名前は開発中のものです。
垢版 |
2017/12/17(日) 16:14:44.68ID:anx13erV
>>918
レスありがとうございます。
当たり判定に違和感がない数ピクセルの差でbox collider2dをアタッチすると引っかかりは生じます。
引っかからない程度に足元を円形にすると角で滑り落ちるようになってしまいます。

DirectionをHorizontalにした角の丸い棒状のcapsulecollider2dでプレイヤーの上下左右を被った場合(角のない箱のような形)は、
引っかかることはなくなりますが、やはりタイルに当たりはするので、極僅かに減速してPlayerが数pixcel浮くことがあります。
またその際、OnCollision〜2Dイベントを監視すると、タイルに当たって浮いた瞬間にタイルとの接触判定が一瞬途切れている為、
ジャンプ判定等にも影響が出てしまう(空中にいる判定が誤作動する)のでタイルとの判定自体を正しく動作させたいと考えています。
0922名前は開発中のものです。
垢版 |
2017/12/17(日) 17:18:37.08ID:CBpPFu99
回転するステージを作ってます
ステージにspawn位置を子オブジェクトとして設定して、そこから敵を出現させようと思ってるんですが
spawn位置がステージに追従して回転せず、固定されたままになってしまいます

オブジェクトをそのままステージの子にすると回転に追従できるんですが、
Spawnにスクリプトを設定してそこからオブジェクトを選んでくっつけるとどうもうまく行かず…

なにか解決方法はありませんか?
0924名前は開発中のものです。
垢版 |
2017/12/17(日) 17:21:12.36ID:anx13erV
>>921
すみません自己解決しました。

edge collider2dを使用するか、box collider2dのedge radiusを0.001に設定することで、
タイルとの衝突(及びOnCollider系イベントの誤発生)はなくなりました。
参考:ttps://forum.unity.com/threads/rigidbody-getting-stuck-on-tiled-wall.220861/

ありがとうございました。
0927名前は開発中のものです。
垢版 |
2017/12/17(日) 20:36:30.69ID:MPKxHq38
Unityの人達がどれほど「技術の民主化(デモクラタイズ)」とい
うものに心を払っているかは、多分外部の人達には想像できな
いと思います。この一点においいて、Unityは、世界中に沢山の
ファンを生み出し、そしてエバンジェリズムを行うチームのメンバ
ーも国境や政治制度を越えてひとつになれるのです。
0928名前は開発中のものです。
垢版 |
2017/12/17(日) 20:43:06.69ID:ttDBRzWh
その思想は非常に危険
それは即ち低賃金労働者の搾取がゲーム業界においても世界的に起こるようになるということと同義だからだ
0930名前は開発中のものです。
垢版 |
2017/12/17(日) 22:07:45.00ID:K2bL8mhm
>>925
transform軸の座標は、自分のpositionをVector3.zeroとした時の相対座標で設定されている

自分のpositionが原点の場合は、transform軸の座標に目標のpositionを入れれば、
それが勝手に単位ベクトル化されて、方向ベクトルになるみたい

でも、自分のpositionが原点でない場合は、
transform軸の座標に「target - trans.position」で自分の座標を引いておく必要がある

だから、「target」だけを入れれば良いLookAtの方が簡単にできる(forward軸限定だけど)
あと、LookAtは第2引数で、up軸の方向も指定できる
(forward軸をtagetに向けた状態で、可能な限りup軸を指定方向に合わせてくれる)
0931名前は開発中のものです。
垢版 |
2017/12/17(日) 22:12:13.99ID:K2bL8mhm
>>922

Instantiateで生成する時に、ちゃんと親を指定してる??
動的に生成したオブジェクトは、ステージとの親子関係が切れてない?

Instantiate(Object, Position, Parent)
0932名前は開発中のものです。
垢版 |
2017/12/17(日) 22:14:47.35ID:K2bL8mhm
>>921
>>924

edge radiusなんて便利な機能が付いて、
矩形の判定枠の角を丸められるようになったんだね

いつも、足の前後に円形判定をおいたり、
カプセルを横にして置いて、地形判定専用にしてたわ
0933名前は開発中のものです。
垢版 |
2017/12/17(日) 22:57:38.86ID:SNj3ir+c
ダメージを受ける毎に敵オブジェクトとかモデルが足元から徐々に(段階的に)赤くなって行くっていうのって、どういう原理で出来るんですか?
色々考えたんですけど思い付かなくて
0935名前は開発中のものです。
垢版 |
2017/12/18(月) 04:52:21.33ID:B3OUJM41
歩くアニメーションがあってそれは実行すると前進するのですが
これをその場で足踏みだけさせるように簡単に変更はできますか?
0936名前は開発中のものです。
垢版 |
2017/12/18(月) 08:05:53.43ID:vc4Z0s4x
アニメーション再生するだけで前に動くことは無い
別のスクリプトでオブジェクトを進行方向に動かしているはず
0937名前は開発中のものです。
垢版 |
2017/12/18(月) 08:48:59.47ID:WoyHjqZj
>>877
position等を直接いじったらそれはワープしてるのと同じだからね

移動や回転は事象に応じて物理エンジンがするものと考えれば、いろいろ扱いやすくなると思うよ
0939名前は開発中のものです。
垢版 |
2017/12/18(月) 10:23:29.76ID:B3OUJM41
>>938
apply root motionを指定しても動いてるんですよね。
>>936
歩く以外にもジャンプのアニメーションも上に飛び上がらないようにしたいとかです。
0940名前は開発中のものです。
垢版 |
2017/12/18(月) 10:32:53.07ID:vc4Z0s4x
>>939
モーション自体の中で位置が動いてるなら簡単に動かないようにするのは無理
アニメーション編集してルートのトランスフォーム移動のキーを全部削除するしかない
0942名前は開発中のものです。
垢版 |
2017/12/18(月) 12:00:11.97ID:jBsoCflG
LateUpdateでモーション適用後のトランスフォームを変更できる
ルートのボーンにLateUpdateで位置をlocalPosition=0,0,0にするコンポを付ければいい。
0946名無し@キムチ
垢版 |
2017/12/18(月) 19:51:23.56ID:iM2CjGiv
>>885>>942は優良回答者ですね。
しったかのヘタレ回答者が多い中で、すごいです!!!
0948名無し@キムチ
垢版 |
2017/12/18(月) 22:22:26.73ID:iM2CjGiv
>>947
ホントですね。頑張ります!
レス数が950を超えています。1000を超えると書き込みができなくなります。

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