X



【3Dゲームエンジン】Unity質問スレッド32

レス数が900を超えています。1000を超えると表示できなくなるよ。
1名無し@キムチ
垢版 |
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/
2017/12/12(火) 07:34:12.06ID:yWI4yO+J
回転もデフォで減速するみたいだな
いちいち生意気なんだよUnity
2017/12/12(火) 08:13:35.13ID:tVhYuHY1
>>815
どんなのを求めているかわからないけどアセットでもいいなら
ProBuilderなんてどうだい?
818名前は開発中のものです。
垢版 |
2017/12/12(火) 09:37:16.36ID:QJDJOOiE
>>817
アセットのセットみたいなのがほしいです
フリーで
2017/12/12(火) 10:39:07.71ID:qFAu6kJp
アセットじゃないけどスケッチアップなんてどうだい?
CADツールだけどUnityでそのままスケッチアップ形式のファイルを読み込むことができるんだ

そしてウェアハウスっていうUnityでいうアセットストアのようなところで他人の作ったオブジェクトをダウンロードできるんだ

ただし無償版でどこまでできるか把握してないから
気になったら調べてごらんよ
2017/12/12(火) 11:37:29.41ID:V4vKOuq6
VS for Macでコーディングしている人いる?
予測コーディングが効かなかったり、最近のアプデで日本語入力がリアルタイムで表示されなくなったり、子音の入力が反応悪かったり
色々ボロボロで進捗やばいんだけどMacでの開発に向いてるテキストエディタ何か無いかしら?
2017/12/12(火) 13:51:05.12ID:awDx9SbB
>>811
どうせキムチだよw
2017/12/12(火) 15:35:32.47ID:ICWFqCcb
>>820
neovim
2017/12/12(火) 17:04:49.48ID:SinzmT6m
VS codeを使うといい
for macは対応が不完全なゴミだがcodeはmacでも完璧に使える
金払ってもいいならRider
2017/12/12(火) 17:13:54.71ID:md8fOJvX
VS codeの怒涛の更新ペースは何事かと思うw
2017/12/12(火) 18:36:56.62ID:w86KIWp6
>>807 >>808
>>809
ありがとうございます!
両方やってみました

Quaternion Q;
Vector3 axis, Vdeg, Vrad;
float angle, t;
Rigidbody rb;

void Start () {
 rb = GetComponent < Rigidbody > ();
 Vdeg = new Vector3(45, 30, 0);
 Vrad = new Vector3(45, 30, 0) * Mathf.Deg2Rad;
 Q = rb.rotation;
}
2017/12/12(火) 18:37:14.48ID:w86KIWp6
void FixedUpdate () {
 t = Time.time;
 if (t == 0) {
  rb.angularVelocity = Vrad;
 } else if (t == 1.0f) {
  Debug.Log ("t=" + t);
  Debug.Log ("angularVelocity:" + rb.rotation.eulerAngles);
  rb.angularVelocity = Vector3.zero;

  //angle = Vrad.magnitude * Mathf.Rad2Deg;
  //axis = Vrad.normalized

  angle = Vdeg.magnitude;
  axis = Vdeg.normalized;

  rb.rotation = Quaternion.AngleAxis (angle, axis);
  Debug.Log ("AngleAxis:" + rb.rotation.eulerAngles);

  rb.rotation = Quaternion.Euler(Vdeg);
  Debug.Log ("Euler1:" + rb.rotation.eulerAngles);

  rb.rotation = Q * Quaternion.Euler(Vdeg);
  Debug.Log ("Euler2:" + rb.rotation.eulerAngles);

  rb.rotation = Quaternion.Euler(Vdeg) * Q;
  Debug.Log ("Euler3:" + rb.rotation.eulerAngles);
 }
}
2017/12/12(火) 18:41:32.25ID:w86KIWp6
結果です!

angularVelocity = new Vector3(45, 30, 0) * Mathf.Deg2Rad
を入力すると、

@angularVelocity:Vector3(42.4, 37.4, 15.0)
 1秒ピッタリで止めるには、FixedUpdate内でないとダメのようですね

 Invoke("Stop", 1.0f)で呼び出すと、
 angularVelocity:Vector3(43.1, 38.6, 15.7)と
 1フレーム分くらいの遅延が生じる模様・・・

AAngleAxis:Vector3(42.4, 37.4, 15.0)

BEuler1:Vector3(45, 30, 0)

CEuler2:Vector3(45, 30, 0)

DEuler3:Vector3(45, 30, 0)

angularVelocityをEulerでQuaternionに入れちゃうと、
角速度による回転結果のQuaternionと少し違うようです・・・
AngleAxisでQuaternionに入れる方が正しいみたいですね
2017/12/12(火) 18:52:30.96ID:w86KIWp6
>>816

回転が勝手に減速する話は本当ですか?
AngularDrag = 0にしてない・・・とかではなくて??

RigidbodyをangularVelocityやAddTorqueで回転させて、
1秒ごとにangularVelocityを表示させても、
回転速度は落ちてないようなのですが・・・
2017/12/12(火) 20:43:24.56ID:s3bcy12n
>>826

RigidbodyもRigidbody2Dも、
LinearDragは0が初期値だけど、
AngularDragは0.05が初期値なのが、
気に入らないということでは?
2017/12/12(火) 20:43:27.01ID:WuPRAOqq
今までモーションは、簡単だからmmdで作ってたけどx軸とy軸の計算違うような……
blenderに乗り換えた方がいいのだろうか。
2017/12/12(火) 20:56:14.28ID:+nER52Ex
はい
2017/12/12(火) 21:01:44.29ID:WuPRAOqq
やっぱか……
blenderの勉強してくるわ。
mmd使うとか俺ってほんとにバカ……
833名無し@キムチ
垢版 |
2017/12/12(火) 21:17:33.27ID:pZVPZZmh
>>832
Blenderには気を付けたほうがいい
Blender上では問題なくモーションしてても、unityに取り込んで動かすと、手が体に食い込んだりしているから。
何度か行ったり来たりする必要があるw
2017/12/12(火) 22:25:16.08ID:oOD9NLJB
blender でもやっぱり同じようなこと起きると思うよ
表現力に不満がないならMMDにしとき
2017/12/12(火) 22:32:44.76ID:9L2xhVzt
else ifまで読んだ
そんなか入るの?!
2017/12/13(水) 00:01:44.95ID:/jokcbje
>>827

最初の回転状態が、
rotatiin =Quaternion.identityであれば、

1: rotation = Quaternion

2: rotation = rotation * Quaternion

3: rotation = Quaternion * rotation

1-3は全て同じ結果になります。

position = Vector3.zeroの場合、

1: position = Vector3

2: position = position + Vector3

1-2が同じ結果なのと一緒です。
2017/12/13(水) 00:07:16.00ID:/jokcbje
rotationの場合も、positionの場合も、

1は、角変位や位置の絶対指定、
2-3は、角変位や位置の相対指定です。

rotatiin =Quaternion.identityでない場合、
position = Vector3.zeroでない場合、

1と、2-3で、結果が変わってきます。

しかも、rotationの場合、

2: rotation * Quaternionと
3: Quaternion * rotationでも、結果が変わってきます。

追加するQuaternionによる角変位の回転軸を、
transform軸を基準にした回転にする場合は2になり、
キャンバスのVector3軸を基準にした回転にする場合は3になります。
2017/12/13(水) 00:35:37.82ID:/jokcbje
>>825-827
Invokeが呼び出しの際に1フレーム遅れるとわかっているのであれば、
1フレーム前の時間で呼び出させば大丈夫ですよ。

void Start () {
 rb.angularVelocity = new Vector3(45, 30, 0) * Mathf.Deg2Rad;
 Invoke ("Stop", 1 - Time.fixedDeltaTime); ←1フレーム前に呼び出し
}

void Stop () {
 Debug.Log ("1秒後のrotation:" + rb.rotation.eulerAngles);
 rb.angularVelocity = Vector3.zero;
}

「1秒後のrotation:Vector3(42.4, 37.4, 15.0)」が出ましたよ。
>>809の方法で求めた場合と一致する値です。

rb.angularVelocity = new Vector3(45, 30, 0) * Mathf.Deg2Rad
angle = (rb.angularVelocity).magnitude * Mathf.Rad2Deg

V = new Vector3(45, 30, 0)
angle = V.magnitudeでも同じ結果になります。
2017/12/13(水) 06:09:25.65ID:EBksqhAl
>>834
そうなのか……
大きい移動とかはスクリプトで制御するしかないのか。
ありがとう
2017/12/13(水) 18:54:39.99ID:+IrYaRns
趣味でUnity使ってゲーム制作してる人と友達になる方法教えてください
2017/12/13(水) 18:59:16.17ID:w+IYDO+A
お断りします
2017/12/13(水) 19:00:06.72ID:EBksqhAl
ツイッターでよくね?
現実で探そうとしてもなかなか見つからんもんだぞ。
2017/12/13(水) 19:11:19.37ID:6lJsdJ22
transformのposition, rotation, scaleって、
なんでtransform.position,transform.rotation,transform.lossyscale
になっていて、transform.scaleじゃないの??
2017/12/13(水) 19:23:08.89ID:+IrYaRns
>>842
日本の活発な交流サイトとかはなさそうですね…ありがとうございます
2017/12/13(水) 19:54:49.63ID:IotT1rVx
>>844
ツイッター
FacebookのUnity寄り合い所
あとはリアルのイベント
ゲームジャムやエンジニア向け勉強会に参加して交流、名刺交換、SNS垢の相互フォローなどすれば簡単に知り合いは増える
ちゃんと進捗をSNS上で報告すれば質問とかも答えてもらえる
イベントを探すならdoorkeeper、atnd、peatix
2017/12/13(水) 20:48:15.04ID:/jokcbje
>>843

transform.lossyscale = Vector3.Scale(transform.parent.localscale, transform.localscale)
つまり
 transform.lossyscale.x = transform.parent.localscale.x * transform.localscale.x
 transform.lossyscale.y = transform.parent.localscale.y * transform.localscale.y
 transform.lossyscale.z = transform.parent.localscale.z * transform.localscale.z

localscaleは、インスペクター上で設定するスケールで、
lossyScaleは、自分のlocalscaleと親のlocalscaleの各成分の積になってます。

本当のscaleは、回転が入ると、Vector3ではなくて、3×3行列になってしまいます。

lossyScaleの場合は、回転前のスケールで、Vector3で表せるからだと思います。
2017/12/13(水) 20:58:06.39ID:Kxr7McTA
>>846
おお、中の人?w
2017/12/13(水) 22:56:29.30ID:/jokcbje
Unityでは、アフィン変換を行う4×4行列であるMatrix4x4が、
TRS(Vector3 position, Quaternion rotation, Vector3 lossy scale)
によって構成されていて、
スケーリング→回転→移動の順に適用するようにしています。

最初にスケーリングを行うことで、
3×3行列の対角成分しか使わず、Vector3で済みます。

RigidbodyのinertiaTensorも一緒で、
本来は3×3行列が必要な慣性モーメントテンソルを、
慣性主軸系に限定することで、対角成分しか使わず、
Vector3の主慣性モーメントで済むようにしています。
2017/12/13(水) 23:01:57.61ID:/jokcbje
>>847

Unity自体はそれほど詳しくないですが、
物理演算系とか、3D数学が専門なので。
2017/12/13(水) 23:04:15.99ID:bbkFRctl
神になった気分だ。
スキルアップした今、どんなジャンルの仮想世界を作れと言われても
その詳細さえ教えてもらえれば
一瞬でどんなデータ構造/アルゴリズムで作ればいいかや
どんなデザインパターンを使えばいいかが
一瞬で頭にひらめき、スラスラとコードを書きはじめることができ、
予期せぬバグとかがなければ短期間でそのソフトやツールを一人で作る自信がある。

この予期せぬバグとはふだん使ってない昔やったプログラミング言語の細かい文法関連のことだけで
それはすぐ見直してカンを取り戻せばいいから全く問題ない。
2017/12/13(水) 23:09:45.76ID:Kxr7McTA
>>850
いいから、お前は早く作れ!w
2017/12/13(水) 23:11:16.24ID:Kxr7McTA
>>849
専門?3d系プログラマ?
2017/12/13(水) 23:36:39.33ID:fbUZmcUU
transform.lossyscale.x = transform.parent.locssyScale.x * transform.localscale.x
じゃないのか?
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が正しいのでしたね。
2017/12/14(木) 00:33:15.69ID:AuQKwcV0
Scaleの積は、Vector3の各成分とVector3の各成分の積なので、
Vector3 * Vevtor3 は定義されていないから、
Vector3.Scale(Vector3, Vevtor3) という演算ですね。
いわゆる、アダマール積(シューア積,要素積)です。

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

という煽りレス
2017/12/14(木) 11:08:53.86ID:X1xy6sbZ
plus一ヶ月契約でもエッセンシャルパック2つってもらえますか?
あるいは契約し続けないと使えなくなる感じかな
2017/12/14(木) 12:22:42.24ID:JR7j67YV
>>858

Unityって、もともと回転行列じゃなくて、クォータニオンで回転しているんじゃないの??
2017/12/14(木) 13:13:10.01ID:6Eg6sRVA
>>860
Matrix4x4というのがあってね... 

でも正直に言おう アレは何だ?!
2017/12/14(木) 15:25:57.18ID:UIHENBZT
数学難しいですね
でも大丈夫!UNITYにはアセットが有りますよ!
アセットを購入しましょう!
2017/12/14(木) 17:52:04.05ID:V0Mq7RkO
>>862
お前ニセモノだな!
2017/12/14(木) 19:01:47.53ID:EAIFpwQr
>>859
契約切れても有効だけどそもそもplus/pro自体12ヶ月継続必須だから前提が無理
2017/12/14(木) 19:21:23.88ID:JR7j67YV
>>861

3次元のベクトルを回転させるのに、なんで4x4行列なの?
回転行列って、3x3行列じゃないの??
2017/12/14(木) 20:39:20.26ID:AuQKwcV0
>>865

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

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

出力する時は、
Vector3 = Matrix4x4.MultiplyVector(Vector3)
によって、Vector3で入力して、
Vector3で出力できるようになっています。
2017/12/14(木) 20:55:53.20ID:N8/aZDnG
>>866
はえ〜すっごい‥
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;
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);
が正しいです。
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」だけでできるようになっています。
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) で代入されると、
アフィン変換の「移動」が乗算されなくなります。
2017/12/14(木) 23:49:37.69ID:zts/k6NY
行列なんか意識しないでも3dゲーム作れるようになったんだからすごい時代だよね
結構まえからだけど
2017/12/14(木) 23:54:59.29ID:N8/aZDnG
>>870
へー、なるほどなぁ‥
2017/12/15(金) 01:39:47.96ID:TM1zyrgU
>>864
年契約の1ヶ月払いってだけなんですね
ありがとうございます
2017/12/15(金) 04:19:45.41ID:L6b+QAfA
なるほど よくわからん
2017/12/15(金) 11:35:10.31ID:a5awPS/6
>>874
半額だったんでplusを年契約の年払いしたよ
売り上げ1千万以上なのに。
たかだか1万円ぐらいを月払いする奴いるの?
2017/12/15(金) 12:38:14.64ID:c63jfGrC
物理演算系の解説を希望!

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

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

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

そのアイテムの効果とお化けとの相互関係が分かるような物なら多分大丈夫かなぁ アイテム説明とかも結構重要だけども。
2017/12/15(金) 16:54:14.50ID:bO73tzHJ
アイテム説明が一番確実だわな
むしろ必須じゃないか?
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軸に設定したいんだけど・・・
2017/12/15(金) 20:51:06.18ID:PCtIHB7r
おぶじえくを最初から傾けておくか、小オブジェクトで対応するか、いくらでも方法あるだろうね。
ルックアット使わずにやるのも有りだし。
2017/12/15(金) 23:29:48.61ID:nw+wySXa
>>883
目標の座標をVector3 targetとすると、

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

transform.LookAt(target) は、
transform.forward = target と同じになるはずです。
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軸への代入ではできず、
上記の汎用法を使うのが良いと思います。
2017/12/15(金) 23:38:56.71ID:nw+wySXa
>>883

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

@transform.up = target

Atransform.rotation = Quaternion.FromToRotation(Vector3.up, target)
2017/12/16(土) 01:09:49.63ID:yxJiRP9K
先生、お元気ですか?

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

惹かれます。

ゲームを、もっと知りたいです。
2017/12/16(土) 02:04:26.56ID:hBjssZ70
>>888
どこかで見た文章だけど、元ネタが思い出せない・・・
2017/12/16(土) 05:13:21.04ID:nt3lwpZi
>>882
文字で説明しないと伝わらないUIはデザインとしてゴミ以下
2017/12/16(土) 10:52:27.48ID:rc5ijf27
質問です
友人がウインドウズで9人対9人のオンラインゲームを作りたいと言ってます
それはつまり18人がオンライン接続してゲームするわけですが
そんなことUnityでやれますか?
2017/12/16(土) 12:23:08.13ID:finBREYt
出来まふよ(^^
2017/12/16(土) 14:06:22.45ID:OPi28kIP
何でできないって思うんだろうな
2017/12/16(土) 14:10:10.05ID:2jMajkmZ
Unityは出来るけど彼らには出来ない
悲しいけどこれ、ゲーム制作なのよね
2017/12/16(土) 15:56:35.74ID:fmqmdkMD
無料で利用できる範囲は同時接続20人まで
21人〜50人まで月額4200円
51人〜200人まで月額15000円
2017/12/16(土) 16:08:28.62ID:ovrxOZck
パーソナル版の使用条件として収益が〜ドル以下みたいな規約がありますが、
あれは自己申告なのでしょうかそれとも向こうでも逐一判断できる状態なんでしょうか。
2017/12/16(土) 16:56:22.84ID:OPi28kIP
>>896
判断できる状態ってどんな状態?
自己申告だけどものすごく稼いでたら嫌でも目に留まる
2017/12/16(土) 17:44:22.66ID:YMI0KZPt
「人生はゲームのようにプレーしろ。真理は恐ろしいものではない。」
899名無し@キムチ
垢版 |
2017/12/16(土) 19:19:52.45ID:ODGviKVk
>>887
>up軸を向ける

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

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

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

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

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

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

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

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

登場キャラと本当に心を 通わせることが出来る。信じがたいほど深い感動を味わえるイベントが結構ある。もちろん本気でやらないとフラグを無駄にするだけだが。
こんなとてつもない神ゲーを糞ゲーとか言ってる奴は、本気でこのゲームをやったことがない奴だけ。
まあ、一切がんばらずにクリアできるようなヌルゲーばかりやってる奴には、このゲームはちょいとハードかもしれんがな。でも一端ハマった奴はみんな、このゲームを辞めたくないって言ってるぜ
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でなくなってしまうから)

これが理由のような気がするなあ
2017/12/16(土) 23:07:26.05ID:hBjssZ70
>>900

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

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

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

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

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

星型の弾丸を作ろうと思ってるんですが、プレハブから弾丸にするとデフォルトの変な角度のまま発射されてしまうんですよね…
2017/12/17(日) 01:08:13.95ID:Vn9M2BoC
>>906
プログラムを書けるようになって動かせるようになりたいってこと?
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に載せる
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にしておいてね;
2017/12/17(日) 02:01:14.46ID:vcuEPHEk
流石にコード無しでDTB作るのは難しいと思うからプログラムを学ぶかかける人を探さないと無理だと思うよ
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;
 }
}
2017/12/17(日) 02:23:43.91ID:K2bL8mhm
PrefabCodeは、ヒエラルキーで作成した空の2Dオブジェクトにでも入れておいて

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

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

prefabは空のオブジェクトの位置に生成されるから
2017/12/17(日) 02:48:52.06ID:2l6FPzGg
これで作られたRPGってありますか
ガチャゲーじゃない昔ながらのRPGです
2017/12/17(日) 03:03:25.27ID:KEqZbS2o
>>914
いけにえと雪のセツナ
レス数が900を超えています。1000を超えると表示できなくなるよ。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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