[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 08/09 10:33 / Filesize : 338 KB / Number-of Response : 1052
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:名無し@キムチ [2017/10/30(月) 05:05:35.00 ID:xnHTCaF3.net]
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。
プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他

次スレは>>950以降にできるだけ早く(できれば回答者が回答した後にでも余裕を持って)建てて下さい。

■Unity 2ch Wiki(まとめ、過去ログ、リンク集)
www24.atwiki.jp/unity2ch/

●リンク
・Unity(日本公式サイト)
unity3d.com/jp
・マニュアル
 docs.unity3d.com/ja/current/Manual/index.html
・チュートリアル
 unity3d.com/jp/learn/tutorials
・スクリプトリファレンス
 docs.unity3d.com/ja/current/ScriptReference/index.html
・FAQ
 unity3d.com/jp/unity/faq
・MSDN
 msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。

前スレ
【3Dゲームエンジン】Unity質問スレッド31
https://mevius.5ch.net/test/read.cgi/gamedev/1504366121/

719 名前:名前は開発中のものです。 mailto:sage [2017/12/07(木) 20:54:28.81 ID:TfLDssMU.net]
>>675
この質問わかる方いませんか?

720 名前:名前は開発中のものです。 mailto:sage [2017/12/07(木) 20:59:33.67 ID:KQoomDkR.net]
申し訳ないなら書くなバカ

721 名前:名前は開発中のものです。 mailto:sage [2017/12/07(木) 20:59:47.59 ID:4zStDQvW.net]
>>690
このスレにはそんな難しい質問に答えられる奴はいない。
TwitterやFacebookで現役のエンジニアに質問してみたまえ

722 名前:名前は開発中のものです。 mailto:sage [2017/12/07(木) 21:22:46.91 ID:xK05b4bo.net]
>>690
アセットをかえばいいんじゃないですか?

723 名前:名前は開発中のものです。 mailto:sage [2017/12/07(木) 21:23:50.82 ID:oxqTCZ+G ]
[ここ壊れてます]

724 名前:.net mailto: >>690
回答されてるじゃん、まずそれやってみなよ。
そんで、やった結果をかきなって。
[]
[ここ壊れてます]

725 名前:名前は開発中のものです。 mailto:sage [2017/12/07(木) 21:50:41.87 ID:NWPNPY2x.net]
>>685
アセットのことはよく知らないけど、プログラムで動かす方法が一番普及してて、検索すれば情報もたくさん出てくるので習得しやすい気がする。

https://codegenius.org/open/courses
csharp.sevendays-study.com/

726 名前:名前は開発中のものです。 mailto:sage [2017/12/07(木) 23:51:35.97 ID:DyP8ts7O.net]
3Dゲームのプログラムは、3D空間上での挙動(移動と回転)がメインだから、
慣れればできると思うけど・・・

向きを変えて、移動して、発射して、当たったら消えて・・・
くらいできれば、少しゲーム性が出てくるので、

あとは、操作系を作りこんだり、挙動のパリエーションを増やしたり、
キャラを増やしたり、当たり判定を調整したり、試行錯誤

727 名前:名前は開発中のものです。 mailto:sage [2017/12/08(金) 00:36:47.86 ID:Urki8ZVQ.net]
ちゃんと動くクソゲーの出来上がりってわけ



728 名前:名前は開発中のものです。 mailto:sage [2017/12/08(金) 01:50:07.09 ID:rY92HIWe.net]
はい皆さんこんばんは。
気分が乗ったら講義のお時間です。

本日の講義は "ループ制御" です。
ループ制御は「プログラムの任意の場所を繰り返し実行させたい」ときに使うもので
"for文" と "while文" の2つを使います。

729 名前:名前は開発中のものです。 mailto:sage [2017/12/08(金) 01:50:30.93 ID:rY92HIWe.net]
まずは for文 から説明します。
for文 は以下のように記述します。
[例]
int i=0;
for(i=0; i<10; i++){
 Debug.Log("i=" + i );
}

これは「{ }」に囲まれた箇所が10回繰り返される例です。
今回「{ }」に囲まれた部分は「Debug.Log("i=" + i );」なのでDebug.Logが10回実行されることになります。
1回実行される度に"i"は1ずつ加算されていきます。
結果「i=0」「i=1」…「i=9」と画面に表示されます。

それでは for文 自体の説明です。
「 for(@i=0; Ai<10; Bi++) 」
@"i=0;"…ここにはループのスタート値(初期値)を定義します。
       例えばここを"i=8"にすると0からのスタートではなく8からのスタートになるので
       ループ回数は10回ではなく「i=8」と「i=9」の2回しかループしなくなります。
       ちなみに今回は変数"i"を使用していますが好きな変数名でかまいません。
       またint型でなくbyte型でも構いませんがfloat型などの小数型は使えません。
A"i<10;"…ループ繰り返し条件式です。
       今回の例では「iの値が10より小さい(10は含まれず9以下)場合はループを繰り返す」という式になっています。
       例えば「i<=10」とすると
       「iの値が10以下場合はループを繰り返す」となり10も含まれます。
B"i++"…ループに使用している変数の増え方を指定します。
       この例の場合はiが1ずつ加算(増える)されていきます。
       「i=i+1」と同じです。

730 名前:名前は開発中のものです。 mailto:sage [2017/12/08(金) 02:06:02.96 ID:rY92HIWe.net]
次に下の例を見てください。

[例]
int i=0;
for(i=10; i>0; i--){
 Debug.Log("i=" + i );
}

これはスタート値10から始まり、0に向かって1ずつiの値を減らしていっています。
実行結果は「i=10」「i=9」…「i=1」となります。
初心者が間違えやすいのが「i>0;」部分を終了条件と思う事です。
ここは終了条件ではなく『継続条件』です。
この部分の式が成立している間 for文 は繰り返しを実行し続けると思ってください。
上の例を言葉で表すと


731 名前:uiの中身が0より大きい場合、繰り返してください」となります。


[例]
int i=0;
for(i=10; ; i--){
 Debug.Log("i=" + i );
}

これは「継続条件」を記述していない例です。
これでもエラーにはなりませんが絶対に実行しないでください。
この場所でプログラムが永遠と繰り返され続けUnityがフリーズしてしまいます。
これを『無限ループ』と呼びます。
無限ループが発生するとUnityを強制終了しないと終わらせられなくなります。
強制終了のやり方が分からない人は絶対に実行しないでください。

このように継続条件式を書く部分はとても重要です。
[]
[ここ壊れてます]

732 名前:名前は開発中のものです。 mailto:sage [2017/12/08(金) 02:18:02.11 ID:rY92HIWe.net]
[例]
for(int i=0; i<10; i++){
 Debug.Log("i=" + i );
}

これはiの宣言を for文 の中で一緒に行っている例です。
この記述が一番使います。
このiはfor文内の"{ }"の中だけ有効でループが終わると自動的に消滅します。
この点がfor文外で宣言した場合と異なるので注意が必要です。
つまり以下の例はエラーになります。

[例]
for(int i=0; i<10; i++){
 Debug.Log("i=" + i );
}
Debug.Log("i=" + i ); //←"i"消滅後なのでここでエラーとなる。 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)


733 名前:名前は開発中のものです。 mailto:sage [2017/12/08(金) 02:33:53.86 ID:rY92HIWe.net]
[例]
for(int i=0; i<10; i=i+2){
 Debug.Log("i=" + i );
}

これは三番目の増減値を1ではなく2にした例です。
「i=0」「i=2」「i=4」…「i=10」のように表示されます。
"i=i+2"部分は"i+=2"のように省略系も使用できます。

[例]
for(int y=0; y<3; y++){
 for(int x=0; x<3; x++){
  Debug.Log( x + ":" + y );
 }
}

多重ループの例です。
ループ制御はループ中にさらにループさせることが可能です。
上の例の場合は
「0:0」「1:0」「2:0」
「0:1」「1:1」「2:1」
「0:2」「1:2」「2:2」
のように表示されます。
2DのJRPGやシミュレーションのフィールドマップや、手動であたり判定を行う時に使用したりします。


Rock54が出たから while文 は次回に持ち越し
今回は以上だクソども

734 名前:名前は開発中のものです。 mailto:sage [2017/12/08(金) 02:35:04.69 ID:Urki8ZVQ.net]
最初から条件式が偽の場合の説明がないやん

735 名前:名前は開発中のものです。 mailto:sage [2017/12/08(金) 09:34:46.35 ID:Qga/mJqt.net]
インポート時、プロジェクトの cs ファイル変更時におきる

Compiling Script というプログレッシブバーや、右下のぐるぐるがとまらない

の処理が10分たっても終わりません。
mono.exe を kill すると復帰するのですが、そのあとメッセージなしのエラーが表示されます。

対策あったら教えてください。お願いします。

736 名前:名前は開発中のものです。 mailto:sage [2017/12/08(金) 10:04:46.10 ID:vndbYB6g.net]
>>704
対策案ですが、アセットを買ってみたらどうですか?

737 名前:名前は開発中のものです。 mailto:sage [2017/12/08(金) 10:07:17.61 ID:Qga/mJqt.net]
>>705
どのアセットですか?



738 名前:名前は開発中のものです。 mailto:sage [2017/12/08(金) 10:20:09.46 ID:0uuW61/P.net]
まーた中身を理解しないままパクッて使おうとしてるキムチか

739 名前:名前は開発中のものです。 mailto:sage [2017/12/08(金) 12:50:56.59 ID:v80JBwFv.net]
プロジェクトウィンドウでC#スクリプトファイルを作成した際に、アイコンが通常のC#ではなく歯車になることがあります。
その条件と理由を教えて下さい。

740 名前:名前は開発中のものです。 mailto:sage [2017/12/08(金) 20:16:19.57 ID:q0nmqcMI.net]
>>702
ありがとうございます!!
ジェネリック関数の講義が待ち遠しい。

741 名前:名無し@キムチ [2017/12/09(土) 08:10:05.76 ID:1JEBIHPe.net]
やったー!!外部オーディオ鳴らすのに成功したーーーーっ!!!!
最初のりたまブログのこのコード見たけどダメだった・・・

IEnumerator StreamPlayAudioFile(string fileName)
{
//ソース指定し音楽流す
//音楽ファイルロード
using(WWW www = new WWW("file:///" + fileName))
{
//読み込み完了まで待機

742 名前:
yield return www;

audioSource.clip = www.GetAudioClip(true, true);

audioSource.Play();
}
}

いろいろ試してみたけどダメで、挫折しそうになったが、
audioSource.clip = www.GetAudioClip(true, true);
の前の行に、
audioSource = GetComponent<AudioSource>();
というのを付け加えて、オブジェクトに空のオーディオソースコンポーネントを追加したところ、
音楽が鳴ったぁぁぁあああああーーーーーーーーっ!!!!!!!
いやあ、当方って天才かも!?(マジで)
みなさぁーーーーん、オーディオはコンポーネントで追加しなくても(空のコンポーネントは必要だけど)、
外から読み込んで使えるので、参考にしてくださいね。
(これはユーザーに自分の好きなゲームBGMを使ってもらうことができるすごい方法です!)
いやあ、当方って天才!!!!!!!!
[]
[ここ壊れてます]

743 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 12:22:44.90 ID:8nWowzmq.net]
スレチだったらごめん。
アクションゲームを作るために「ゲーム制作のための数学」系の本を
一冊買っておきたいんだけど、何かおすすめあります?
もしくはアルゴリズムの参考になるアセットがあったら教えてほしい。

744 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 13:07:47.43 ID:X9y8lbqo.net]
>>711
アクションゲームの完成プロジェクトアセットを購入しましょう

745 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 15:04:45.02 ID:Ia5bSAGk.net]
>>709
残念ながらジェネリック関数を扱う予定はなし

>>711
市販品で例えるとどんなアクションゲーム?
Unityは大抵のゲームアルゴリズムが既にシステム関数(メソッド)にまとめられて
1行書き込む(呼び出す)だけで使用できちゃったりするから覚える必要ない場合が多い

746 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 16:49:05.54 ID:G7HaLFZX.net]
>>711

2Dか3Dかで変わってきます

747 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 16:59:09.75 ID:8nWowzmq.net]
>>712-714
ごめん、2Dです。
マリオとかメトロイドヴァニア系のアクションをを作る予定ですが、ショットをちゃんとした物理的な挙動にしたいのと、
あと飛行タイプの敵とか動く足場とかを∞←こういう軌道で動かしたりしたいんですよね。



748 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 17:05:16.75 ID:x1Unwj8Y.net]
unityの2Dでマリオ3みたいなやつでお手本になるゲームないでしょうか
マリオランみたいに一方にしか移動しないようなのじゃなくて

749 名前:名前は開発中のものです。 [2017/12/09(土) 17:27:29.06 ID:1JEBIHPe.net]
PC内にあるすべてのwav音を鳴らすテストです。
この機能を取り入れれば、当方のソフト「振付王」も大いなる飛翔を遂げそうです ↓

https://youtu.be/NGglm32__Wg

750 名前:ダーク王鍬大使 mailto:sage [2017/12/09(土) 18:04:15.09 ID:bXsi3c78.net]
>>717
キャラクターがすごく不気味でふ(^^
これがキムヨナでふか?(^^

751 名前:名前は開発中のものです。 [2017/12/09(土) 20:05:37.92 ID:AnRI3nPF.net]
staticの変数(gameobject)をインスペクターから指定できないと知り、直接インスタンス化したいのですが、
Assets/Prefabsにあるprefabを指定するにはどうすれば良いでしょうか?

Instantiate(GameObject.Find(?????));

752 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 20:14:33.20 ID:X9y8lbqo.net]
>>719
あなたにはプログラムの才能がないのでアセット購入することをオススメします

753 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 20:16:11.59 ID:x1Unwj8Y.net]
unityの2Dでマリオ3みたいなやつでお手本になるゲームないでしょうか
マリオランみたいに一方にしか移動しないようなのじゃなくて

754 名前:ダーク王鍬大使 mailto:sage [2017/12/09(土) 20:21:04.14 ID:bXsi3c78.net]
>>719
GameObject.Findはヒエラルキー上のものを探すためのものでふよ(^^

755 名前:ダーク王鍬大使 mailto:sage [2017/12/09(土) 20:36:13.31 ID:bXsi3c78.net]
>>719
何をしたいのかよく分かりまふぇんがググって調べてきまひた(^^

public GameObject prefab;//これをフィールドに書く(^^

Instantiate(prefab, this.transform.position, Quaternion.identity);//これをvoid Start()内で実行する(^^

あとはインスペクタから使いたいプレファブをアタッチする(^^
これでスクリプトを張り付けてるオブジェクトの位置にprefabにアタッチしたPrefabを生成しまんこ(^^

756 名前:名前は開発中のものです。 [2017/12/09(土) 20:55:03.78 ID:AnRI3nPF.net]
>>723
めちゃくちゃ言葉足らずですいません。
他スクリプトから呼び出すためにそのスクリプトをstaticで構成しました。

&#9332;staticを使っていてもインスタンペクターからプレファブを指定する方法

&#9333;Resouse.Loadを使わずにAssetフォルダにアクセスする方法

(3)別スクリプトから呼び出す場合でもstaticにしなくて良い方法

この中のどれかを募集中です。

757 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 21:06:17.43 ID:X9y8lbqo.net]
>>724
アセット購入を募集していませんか?



758 名前:ダーク王鍬大使 mailto:sage [2017/12/09(土) 21:08:54.73 ID:bXsi3c78.net]
(3)別スクリプトから呼び出しならstatic使わなくてもできまふよ(^^

どっかのオブジェクトにスクリプトがくっ付いてる場合(^^
呼び出される側
public int うんち
呼び出す側
変数名 = GameObject.Find("ヒエラルキーのオブジェクト名").GetComponent<オブジェクトにくっ付いてるスクリプト名>().スクリプトの変数名、この場合はうんち;

多分これで出来ると思いまんこ(^^

759 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 21:52:29.85 ID:+Fgkmrfl.net]
ファイアーエムブレムのようなゲームが作りたくて参考書などを見ながらAI作ってたのですが上手く行きません
数千円以内で買えるアセットでよさげなのないでしょうか

760 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 21:53:01.42 ID:G7HaLFZX.net]
3Dで基礎から勉強したければ、

難:「実例で学ぶゲーム3D数学」
中:「ゲーム開発のための数学・物理学入門」
易:「ゲームアプリの数学 Unityで学ぶ基礎からシェーダーまで」

2Dでアルゴリズムのアイデアを得たければ、

「アクションゲームアルゴリズムマニアックス」
「アクションゲームプログラミング」

761 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 21:59:20.31 ID:G7HaLFZX.net]
>>724

Staticは他のオブジェクト間で共有したいものに使うので、

ただ他のオブジェクトのコンポーネントを使いたいだけだったら、
Staticを付けなくても、呼び出して利用はできます

762 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 22:47:51.06 ID:Ia5bSAGk.net]
どうも。
気分がノッたら講義のお時間です。
"while文" の予定でしたが変更して "for文" の続きです。

"for文" は配列を扱う時に適しています。
例えば次のような文字列型配列があったとします。


string[] mes = {"ようこそ", "ねらーの町へ", "ゆっくりしていってね!"};

この中身を全て表示したい場合、"for文" を使わない場合は次のようになります。


string[] mes = {"ようこそ", "ねらーの町へ", "ゆっくりしていってね!"};
Debug.Log( mes[0] );
Debug.Log( mes[1] );
Debug.Log( mes[2] );

表示したい数だけDebug.Logが必要になっていきます。
今は3つだからいいですがこれが100個あった場合は100個Debug.Logが必要になってしまいます。

763 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 22:48:34.64 ID:Ia5bSAGk.net]
次に for文 を使用した場合の例です。


string[] mes = {"ようこそ", "ねらーの町へ", "ゆっくりしていってね!"};
for( int i=0; i<3; i++ ){
 Debug.Log( mes[i] );
}

for文 を使用すると100個あってもこの4行だけで済みプログラムをすっきりとまとめられます。


string[] mes = {"ようこそ", "ねらーの町へ", "ゆっくりしていってね!"};
for( int i=0; i<mes.Length; i++ ){
 Debug.Log( mes[i] );
}

for文の2番目を "i<3" と定数(この場合、「3」を動かない数字、定数と呼びます)にするのではなく
"i<mes.Length" にすることで自動的に配列数だけループしてくれるようになり便利です。
"mes.Length" には配列の最大値が格納されています。

764 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 22:53:43.28 ID:Ia5bSAGk.net]
また、配列処理に特化した専用のfor文といえる "foreach文" というのもありますが
for文で同じ事が出来る為講義ではあえて扱いません。
興味がある方は下のリンク先で確認してください。
今のあなたならリンク先の文章をなんとなく理解できる事でしょう。

配列での foreach の使用 (C# プログラミング ガイド)
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/arrays/using-foreach-with-arrays


本日は以上だクソども

765 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 23:01:42.72 ID:Ia5bSAGk.net]
>>721
全13回の講座。
焦らずこれをじっくりやるといい。
hiyotama.hatenablog.com/entry/2015/06/12/153523

766 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 23:07:35.86 ID:Ia5bSAGk.net]
>>715
メトロイドヴァニアをYoutubeで拝見したがいきなりこれは難しいよ。
物理的な挙動に関してはUnityは物理エンジンが勝手にやってくれるので自分でプログラムする必要がない。

うまく伝わらない気はするが例えば
「このボールは1kg」「風の抵抗は受けない」「重力の影響は受ける」
みたいに画面を見ながら設定し
斜め上にむかって発射すれば勝手に本物のボールのように弧を描いて飛ぶ。

物理エンジンは、もともと自分でプログラムしないといけなかった事を勝手にやってくれる。
欠点として非リアル的な動きをしたい時に重力とかに逆らったりしなくちゃいけなくて
何度も何度もテストを繰り返さないといけないくなる。

∞のような動きはsin関数、cos関数で実現できる。

俺は本を買って学習してる訳ではないのでオススメを教えられないです。

767 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 23:17:08.96 ID:0z0JcPwI.net]
>>732
ありがとうございます!!!



768 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 23:28:03.66 ID:MExT9ytU.net]
これでまた、staticおじさんが一人この世から消えたのか

769 名前:名前は開発中のものです。 mailto:sage [2017/12/10(日) 09:21:41.45 ID:rk89KMyG.net]
static変数にする
static関数にする
staticゲームオブジェクトにする
詰む

770 名前:名前は開発中のものです。 mailto:sage [2017/12/10(日) 11:44:53.32 ID:ZDcJFyIw.net]
>>724
そういう用途でstaticにするのは辞めたほうが……
シングルトンにしてDontDestroyと思う

それはそれとしてインスペクターのをstatic変数に反映させたいだけなら
責任は持ちません
public static GameObject hoge;
public GameObject hogehoge;
void awake(){
  if(hogehoge != null) hoge = hogehoge;
}

771 名前:名前は開発中のものです。 mailto:sage [2017/12/10(日) 11:48:33.38 ID:jcS8iLKb.net]
staticをpublicでインスペクターから変更できるようにしてしまうと、

複数のオブジェクトで同時に同じstatic変数を変更してしまう恐れがあるから、

シングルトン機能がないと、どの設定値を参照するか不定になりそうで怖い・・・
設定値は複数オブジェクト間のインスペクター上で連動するのかな?

772 名前:名前は開発中のものです。 mailto:sage [2017/12/10(日) 13:12:35.06 ID:s0gCGNcz.net]
ここはプログラムの初心者ばかりなので
素直にアセットを買って作りましょう

773 名前:名前は開発中のものです。 mailto:sage [2017/12/10(日) 13:34:04.81 ID:w46kXA82.net]
・変更できない定数
・グローバルDBで管理(public)
・クラスの内部だけで決められた使い方だけをする構造上の黒子(private)

このうちのどれかに当てはまらないなら static はやめたほうがいい

774 名前:名前は開発中のものです。 [2017/12/10(日) 17:15:40.51 ID:51pDRWFr.net]
>>738
>>739
>>741

ありがとうございます。
staticで構成するのはやめようと思います

話は変わりますが、っていうか変わってないんですが
Ascript:
public void Hoge(){
StartCoroutine(Bscript.Bfunction());
}

Bscript
public IEnumerator Bfunction(){
Debug.Log("hogehoge");
yield return null;
}

このスクリプトで「静的でないフィールド〜〜〜」というエラーが出るのはなぜでしょうか?

これがきっかけでstaticにするようになったのですが

775 名前:名前は開発中のものです。 mailto:sage [2017/12/10(日) 17:20:13.69 ID:SGu7Clqn.net]
>>742
その表記を見ただけでオブジェクト指向を微塵も理解してないと分かる
C#の基本を解説するサイトなんていくらでもあるから少なくともclassの存在くらい学ぼう

776 名前:名前は開発中のものです。 mailto:sage [2017/12/10(日) 17:50:24.06 ID:s0gCGNcz.net]
>>742
だから、あなたはプログラマーには向かないので
アセットを買って幸せになりましょう

777 名前:I []
[ここ壊れてます]



778 名前:名前は開発中のものです。 mailto:sage [2017/12/10(日) 18:02:07.77 ID:s1u45m25.net]
>>742
ゲットコンポーネントの事をもうちょっと理解した方が良いと思います。

779 名前:名前は開発中のものです。 [2017/12/10(日) 20:14:32.33 ID:RELYBK2b.net]
>>743
こういうとこで質問したことないんでどこまで省いていいか全然わからないです;;
クラスは何もいじっていないので
public class XXXX : MonoBehaviourのままです。

>>745
GetComponent?ゲットコンポーネントってどこからでてきました?

780 名前:名前は開発中のものです。 mailto:sage [2017/12/10(日) 20:23:19.38 ID:hR3NFn4T.net]
スクリプト(コンポーネント)は同じとこに書いてないもんは知りませ〜ん

781 名前:名前は開発中のものです。 mailto:sage [2017/12/10(日) 20:46:48.97 ID:s1u45m25.net]
>>746
とりあえず「他のスクリプトのメソッドを使う unity」で検索してみろ。それで理解できなかったら向いてない

782 名前:名前は開発中のものです。 mailto:sage [2017/12/10(日) 21:11:13.87 ID:gqP0KwJW.net]
>>746
言語知識がある程度でもあるならまだしもそうじゃないなら基本的には何も省略しないで

783 名前:名前は開発中のものです。 mailto:sage [2017/12/10(日) 21:35:27.73 ID:s0gCGNcz.net]
だから、アセットを買えばいいんですよ
スクリプト出来なんでしょ?

784 名前:名前は開発中のものです。 mailto:sage [2017/12/10(日) 22:14:38.78 ID:s1u45m25.net]
>>742
静的じゃないから〜ってエラーを見て、staticおじさんになっちゃったのか。
そのエラーの意味は「君が使おうとしているモノは最初から存在しない(静的でない)のでなんとかしてください」って意味だから「staicにしろ」って意味じゃないぞ

785 名前:名前は開発中のものです。 [2017/12/10(日) 22:16:05.06 ID:51pDRWFr.net]
>>748
>>749
>>751
ありがとうございます。
アタッチするオブジェクトに関連してないとアタッチしてはいけないと勝手に思い込んでいました。

>>742で言えば
カメラなりなんなりにBscriptをアタッチして
StartCoroutine(カメラ.GetComponent(Bscript).Bfunction());
って感じにすればよかったんですね

786 名前:名前は開発中のものです。 mailto:sage [2017/12/10(日) 22:41:19.18 ID:s1u45m25.net]
>>752
目標がありそれに向かってコーディングしてることは分かりますし、それは上達への近道です。しかしあなたの書いているコードはあまりにも支離滅裂なので簡単な内容からしっかり学習してください。他のスクリプトのコルーチン使うとかめんどくさすぎて頭おかしいです

787 名前:名前は開発中のものです。 mailto:sage [2017/12/10(日) 23:01:38.15 ID:hR3NFn4T.net]
まあプログラムなんて技量あげるうちに過去コードを色々短縮出来るのが楽しいから…



788 名前:名前は開発中のものです。 mailto:sage [2017/12/10(日) 23:47:55.77 ID:CuU55Myq.net]
もともとは、AsstesフォルダにあるPrefabを、スクリプト上で呼び出したかっただけだよね?
Sceneに配置していないPrefabを、GameObjectとして呼び出したいんだよね??

例えば、SceneにPlayerキャラクタが既にいて、ボタン入力に応じて、
Assets内にあるShotキャラクタを呼び出して、弾丸として発射するみたいな・・・

789 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 00:11:47.56 ID:SkZjimvo.net]
<スクリプトAで、Assets内のプレハブBを、ゲームオブジェクトCとして取得する方法>

Scece上に配置したゲームオブジェクトXに、下記のスクリプトAを登録しておきます。

public class A : MonoBehaviour {
 public GameObject B;

 // Use this for initialization
 void Start () {
  GameObject C = (GameObject)Instantiate(B);
 }
}

Inspector上でゲームオブジェクトBを登録できるので、
Assets内のプレハブBを登録しておきます。
「Assetss」を押すと一覧が出ます。

動的にBのインスタンスを生成して、ゲームオブジェクトCとして格納します。
以下、Inspector上で登録しておいたゲームオブジェクトBは、
ゲーム内ではゲームオブジェクトCとして実体化されているので、
移動させたり、回転させたり、いろいろできます。

790 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 00:30:42.08 ID:SkZjimvo.net]
C = (GameObject)Instantiate(B)
だと、スクリプトを登録したオブジェクト上に生成されてしまいます。

生成される際の
 位置を、Vector3 V = new Vector3(x, y, z)
 向きを、Quaternion Q = Quaternion.Euler(angleX, angleY, angleZ)
 親を、transform T = parent.transform
としたい場合は、

C = (GameObject)Instantiate(B, V, Q, T)
とします。

親Tの子として、向きQで、位置Vに、
Bのインスタンスが、オブジェクトCとして生成されます。

BにRigidbodyを登録しておけば、
Rigidbody D = C.GetComponent < Rigidbody2D >
によって、CのコンポーネントからRigidbodyを取得して、
変数DにRigidbodyを格納しておくこともできます。

以降は、物理演算ができるようになり、
D.velocity = new Vector3(vx, vy, vz)
のようにして速度を変更したりできます。

791 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 00:39:32.37 ID:SkZjimvo.net]

Rigidbody D = C.GetComponent < Rigidbody2D >


Rigidbody D = C.GetComponent < Rigidbody >

普段、2Dばっかりやっているから間違えた・・・

要するに、
@Hierarchyになくても、Assetsからでも呼び出せる
(GameObject.Findは、Scene内から探すためダメです)

AStaticにしなくても、Inspector上からPrefabを登録できる
(Inspector上で設定したかったら「public」です)

Bスクリプトを登録する相手は、何でも良い
(カメラでも、空のオブジェクトでも・・・)

 ただ、あるキャラクタから発射するつもりなら、
 そのキャラクタにスクリプトを登録しておけば、
 発射位置が、そのキャラクタの現在地になります。

792 名前:名前は開発中のものです。 [2017/12/11(月) 07:52:58.63 ID:Lx/f51q7.net]
レベルデザインしてるんですが、フリーでおすすめのアセットパックってないですか?
人工物や自然物がそれなりに入ってるのがほしいですが

793 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 11:46:03.41 ID:QvFVBkNr.net]
>>759
フリーアセットではなく、有料アセットを購入しましょう

794 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 13:13:39.39 ID:xcDA2XWm.net]
車の排気ガスでパーティクルを使おうと思ってます
車の後方から煙が出る形にしたいんですが、

1 車のオブジェクトにパーティクルをaddして良いのか
2 どうやってパーティクル位置を変更するのか(車の後方に)

の最初の2点で躓いてます
どなたか教えて頂きたいです。

795 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 13:18:21.91 ID:HEOTRILb.net]
車に空の子オブジェクトを追加してそこにパーティクルを追加すればいいべ

そういうことじゃなくて?

796 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 13:52:42.53 ID:QvFVBkNr.net]
>>761
車の排気ガスのアセットをかうと良いですよ

797 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 14:25:47.65 ID:xcDA2XWm.net]
>>762
車とは別に新しくオブジェクト作って、
それにパーティクル追加してあとから車と同期(車と一緒に動くように)すればいいって事ですか?



798 名前:ダーク王鍬大使 mailto:sage [2017/12/11(月) 14:30:15.62 ID:V8qj051b.net]
パーティクルを車の子オブジェクトにして位置と向きをインスペクターで変えてくらふぁい(^^

799 名前:ダーク王鍬大使 mailto:sage [2017/12/11(月) 14:31:22.80 ID:V8qj051b.net]
ってよく見たら>>762に答えが書いてありまひた(^^
お節介失礼しまんこ(^^
ボッキング!(^^

800 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 14:58:00.33 ID:HEOTRILb.net]
>>764
車の子オブジェクトにすればわざわざ同期なんて取らなくても相対位置と向きを保ったまま車と一緒に動いてくれるでしょう

801 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 16:02:51.94 ID:02QPz9bc.net]
このスレの人ってまさか車のモデルをそのままヒエラルキーに配置してそこにスクリプト直付けしてるの?
普通Create Emptyで作った空のオブジェクトの下に作るよね?

802 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 16:34:52.69 ID:T/JrBtRm.net]
全体的に、自分で色々工夫してみることをしないで人に答えを求める輩が多い気はするね。
プログラミングに答えはなくて目的の結果になる方法はいくつもあるのに他人のやり方を真似したがる人が多すぎるねここ。

803 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 16:36:31.43 ID:B36sEdco.net]
人それぞれ。結果が満足なら中身なぞどうてもいい。
自分なりの作り易さを模索するだけさ。

804 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 16:38:59.95 ID:VIjb3sER.net]
TanksにLeftDustTrailとRightDustTrailって入ってるじゃろ

805 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 16:39:28.70 ID:T/JrBtRm.net]
他で例えると
攻略本無いとゲームを出来ない人とか
うまいラーメン本に紹介されてるラーメン屋にしかいけない人とか
ジグソーパズルを買って全部人に作らせてる人とか
何かしら他人の助けがないとダメで自分で工夫できない人というか
そんなのに似てる気がする

806 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 16:41:13.85 ID:T/JrBtRm.net]
そんな俺はUnityはプラモとかDIYと同じだと思っている

807 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 16:44:46.62 ID:VIjb3sER.net]
チュートリアルで例(ひな型?)が示されてるのに、やってないだけだよ
やって気付かないってのはありえない



808 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 17:01:29.50 ID:xcDA2XWm.net]
このスレっていっつもマウント取るか嫌味しか言わない上級者様ばっかだよね
なんで質問スレにいるの?
自分なりに試行錯誤して分からない結果聞きに来てる初心者の自分からしたら意味が分からない

809 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 17:08:45.71 ID:B36sEdco.net]
>>775
捻くれたやつなんかスルーしとけ。教えてくれた人にはお礼を言う。
他人の成長が怖くて、少しでも時間を削ろうとしてるのさ。

810 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 17:13:36.54 ID:Gwv7NuWB.net]
パソコン買ったらパソコンの使い方講座が無料でついてきたにも関わらず、
そんなの要らない自分で出来るって無視したのお前やろ

だったら人に聞かずにやるのが筋ってもんじゃあないの?

811 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 17:16:53.36 ID:xcDA2XWm.net]
>>776
そうだね、ありがとう

最初から堅苦しいマニュアル一から読んで自分の手動かそうとしない奴らの作ってるゲームが面白いとは全く思えないんだけどなあ

812 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 17:20:38.93 ID:HEOTRILb.net]
>>775
"同期"なんて用語を知ってるのに子オブジェクトが分からないという、なかなか不思議な学習曲線を辿ってるみたいだから理解されなくてもまぁ仕方ないかも
チュートリアルどれくらいやった?

813 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 17:21:19.77 ID:7znfHEz6.net]
効率を求めた結果、本末転倒になってりゃ世話ない

814 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 17:36:21.95 ID:rG1bqsx7.net]
少しここ覗いてたけど、質問しようなんて気にならない
Unityを使ってる知り合いを作る方が早いしためになるからそうしたわ

815 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 18:05:09.66 ID:rJi7rAoj.net]
Transform c = transform.GetChild(0).GetChild(0);
Transform b = transform.GetChild(0);
Transform a = transform;
a.parent = b;
b.parent = c;

これ動かしても親子変わらないのは仕様ですか?

816 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 18:18:16.44 ID:02QPz9bc.net]
そうだぞ
引きこもりのお前らを社会に戻すために俺はここで嫌味を書き込んでいる
さっさとエンジニアの知り合いを作りたまえ

817 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 18:26:44.90 ID:6snW9ojT.net]
あんたいいやつだな



818 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 18:32:42.55 ID:v+pV5X5w.net]
車の排気ガスについて、

移動した車に付いていくアニメーション的な排気ガスにするパターンと

排気ガス自体は、移動前の車の位置に留まり、その場でフェードアウトしていき、
移動した車が次々に新たな位置に排気ガスを生成していくパターンが有ると思う

前者は、アフターバーナーみたいな、付いていくタイプ
後者は、飛行機雲みたいな、置いてくるタイプ

子オブジェクトとして生成するか、
独立オブジェクトして生成するかは、好みによるのでは・・・

819 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 18:40:23.63 ID:T/JrBtRm.net]
初心と無能を間違えてはいけない
基礎を勉強し身につけた者だけが初心を名乗れる
基礎をやらず教えて君は無能だよ

取説読まない
何もやらない
全部すぐ人に頼る
これは初心者じゃない

教習所に通わずいきなり車を運転しようとしてるやつ
これも初心者じゃない

初心
これの意味をもっとよく考えてから質問しよう

プラモ買って説明書読まない組んでて
途中で出来ないから作り方教えてくれという自称初心者がいたらどう思う?
説明書をまず読めと思わないか?
質問の質

820 名前:があまりにも低すぎるのが問題 []
[ここ壊れてます]

821 名前:名無し@キムチ [2017/12/11(月) 19:11:07.14 ID:bqjs8mgU.net]
>>783
エンジニアよりキムヨナと知り合いたいな・・

822 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 19:11:25.30 ID:6tubAqHL.net]
>>782
root同士じゃないと出来ない組み合わせなかったっけ?
cとbを
c.transform.parent = null;
b.transform.parent = null;
で親子解除すれば出来る

823 名前:名無し@キムチ [2017/12/11(月) 19:16:57.23 ID:bqjs8mgU.net]
>>786
初心者とはそんな難しいもののことではない。
単純にビギナーのことだ。

824 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 19:20:05.88 ID:rG1bqsx7.net]
そういえばUnity初心者スレってないのな

825 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 19:32:44.82 ID:T/JrBtRm.net]
>>789
ビギナーは英語で初心者という意味
>初心者とはそんな難しいもののことではない。
>単純に初心者のことだ。
自分の発言が情けないほど意味不明になると思わない?
基礎を学ばずにいるとこうやって無能を晒し恥をかくだけ
分かりやすい例になってくれてありがとう!

826 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 20:07:01.75 ID:qY5Wc6Xa.net]
チュートリアルすらやってないドキュンとか、
補助輪取れないアホは無視でいい

827 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 20:22:52.74 ID:g06Ln43v.net]
>>786
完全にクレーマーw



828 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 20:52:55.52 ID:u584Mmdp.net]
>>786
では質問、外部サイトの情報をスクレイピングして情報を抽出するゲームを作成しています。
読み出すサイトの文字コードに合わせてSystem.Text.Encodingクラスを用いて変換しているのですが、エディタ上で動かすと正しく動きますが、実機にビルドするとsjisやeucjpなどでエラーとなります。これは何故でしょうか?

829 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 21:01:24.21 ID:u584Mmdp.net]
さて>>794の答え合わせだ。
スタンドアロンプレイヤーはデフォルトでI18n.dllとI18n.CJK.dllを内包しないから、これらをアセット内にぶち込めば解決するが正解な
どうせ質問がちょっと知識や経験が必要な領域になると皆スルーして俺しか答えなくなるんだから仲良くしとけ

>>785
それはヒエラルキー構造もスクリプトも変更する必要はなく、パーティクルのSimulation Spaceを変えるだけで実現可能だよ
エミッタ(=ParticleSystem)自体はどちらであっても車本体の子オブジェクトにして問題ない

830 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 21:03:22.24 ID:wTfFWu/6.net]
2.5dのコマンドRPG作るのにplaymakerって使えますかね?
ターン制の処理をこれにさせたいのですが買おうか迷ってます。

831 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 21:04:49.25 ID:pffoEIhS.net]
使える

832 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 21:08:29.22 ID:7N8aCxOe.net]
785は滑稽だな
リテラシに慣れていないと、公式マニュアルを読んでも、キーワードを聞いても全く頭に入ってこない人もいる
一般的に言って誰にも苦手な分野はある。例えば日本の役所手続きが良い例
適性が無いとの非難があるかもしれないが、本来、道具は、適性とは無関係に操れるものであるべき
ところで自由競争戦力スキルへの適応を2chで強要するのは傲慢無恥・視野偏狭で滑稽である(プ

833 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 21:09:37.13 ID:lT/DnU8s.net]
ID:u584Mmdpに全部丸投げで解決だなw

834 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 21:15:59.64 ID:L0Sd+qXD.net]
趣味なんて出来なくても死ぬわけじゃないし、
乗れもしない一輪車に勝手に跨って勝手に傷だらけになってるだけじゃない
怪我と弁当は自分持ちで頼むよ

835 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 22:02:19. ]
[ここ壊れてます]

836 名前:01 ID:SkZjimvo.net mailto: 詳しい人が降臨しているようなので質問!

角速度
Rigidbody.angularVelocity = new Vector3(a, b, c)
による回転を1秒間行った場合の、

向き(角変位)
Rigidbody.rotation
を、あらかじめ計算でQuaternionを求めておきたいのですが、

Rigidbody.rotation = Quaternion.AngleAxis(angle, axis)
で入力する場合、
float angle = いくつ?
Vector3 axis = いくつ?
に設定すれば良いのでしょうか??

普段は実際に時間をかけて回転させるのですが、
ショートカット入力によって、瞬間的に向き変更したためです。

普段は速度velocityで移動させていたのを、
瞬間的に位置positionで変位させるのと同じ感じです。
[]
[ここ壊れてます]

837 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 23:16:52.47 ID:T/JrBtRm.net]
初心者は基礎勉強を習得した後に応用問題などで躓く者
無能は怠慢で基礎勉強をせずに全てに躓く者
そして自分は初心者だと勘違いしてる者
無能と初心者は全然違う

初心者には教えるが怠け者なだけの無能には教えたくはないって人が多いと思う
質問する気になれないなんて者は来なくていいと思う
そいつが消えた所でそいつが困るだけでこっちは何も困らない
どうぞ勝手にお帰り下さいなんじゃないかな?
ましてや自分は初心者だから教えてもらって当たり前なんて思ってる勘違いには特に

悔しいなら無能をやめて初心者になり
教えたい人が思わず教えてやりたくなるような質問したら?



838 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 23:21:47.98 ID:T/JrBtRm.net]
>>795
質問ではなく相手を試す問題だと見抜かれてスルーされた事にそろそろ気づこうか

>>798
悪いが発言内容が超明後日方向でずれてるから

839 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 23:28:43.27 ID:T/JrBtRm.net]
>>795>>798の2人は俺の考えに反対やら滑稽やらなら
ニセ初心者のしょーもない今までの質問全てに全部答えてあげてないと
俺そういう場面見てないんだけど
今も俺にレスするよりそっちが先とおもうけど未処理の物が沢山あるよ
明日からもずっと頼むよお2人さん
俺の考えに反対で反論してくるのはそういうことだから

840 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 23:32:55.29 ID:7N8aCxOe.net]
ビッグアップル大丈夫か

841 名前:名前は開発中のものです。 mailto:sage [2017/12/12(火) 00:07:46.96 ID:yWI4yO+J.net]
まさかツッパリが足りずに弱音を吐いて「大目に見てくださいよ〜〜〜><」とか懇願してるわけじゃあるまいな

842 名前:名前は開発中のものです。 mailto:sage [2017/12/12(火) 00:18:39.38 ID:awDx9SbB.net]
試行錯誤が大好きなら一生迷走しててええんやで
遠慮すんなよw

843 名前:名前は開発中のものです。 mailto:sage [2017/12/12(火) 00:29:29.52 ID:K5+QKreg.net]
>>801
偉そうに講釈垂れてる人が大勢いるのにこれにレスがつかないの酷すぎないか…

キッチリ1秒後なら

var r = Mathf.Rad2Deg;
Rigidbody.rotation *= Quaternion.Euler(a * r, b * r, c * r);

でどないでしょ

844 名前:名前は開発中のものです。 mailto:sage [2017/12/12(火) 00:36:52.31 ID:K5+QKreg.net]
>>801
rigidbody.rotation *= Quaternion.Euler(rigidbody.angularVelocity * Mathf.Rad2Deg)

のほうが簡単か

845 名前:名前は開発中のものです。 mailto:sage [2017/12/12(火) 02:09:47.10 ID:s3bcy12n.net]
@angle = Vector3(a, b, c).magnitude * Mathf.Rad2Deg

3Dの場合、angularVelocityは、rad/秒で入力するので、
a,b,cはrad/秒で入れているはずだから、
angleは度での入力になるため、
* Mathf.Rad2Degで、rad→度の変換が必要ですね

Aaxis = Vector3(a, b. c).normalized

これをQuaternion.AngleAxisに入れると、1秒後の回転状態になります
試してみて下さい

Quaternion.Eulerは、
Z軸回転→X軸回転→Y軸回転の連結回転になるので、
計算結果が、角速度での回転状態と合わないですよ

angularVelocityは全軸同時回転ですから
回転ベクトル=

846 名前:回転角 * 回転軸ベクトル
で計算しないとダメなはず
[]
[ここ壊れてます]

847 名前:名前は開発中のものです。 mailto:sage [2017/12/12(火) 02:14:08.74 ID:K5+QKreg.net]
なるほど
勉強になった
ありがとう



848 名前:名前は開発中のものです。 mailto:sage [2017/12/12(火) 04:00:52.95 ID:kM1br0bK.net]
>>795
"unity shiftjis error"でぐぐって一番上に出てくる内容コピってどやってんじゃねーよw
仰られてる知識や経験は、その問題に関してはとくに必要なさそうです

849 名前:名前は開発中のものです。 mailto:sage [2017/12/12(火) 06:49:36.70 ID:yWI4yO+J.net]
809
そういう「より優れた仕様奴隷状態」をドヤる話だと思ってたわ

850 名前:名前は開発中のものです。 mailto:sage [2017/12/12(火) 07:26:11.46 ID:OlgvJzEy.net]
>>812
うん、そのドヤ顔を期待してたw
全く待たずに回答投下してるのに顔真っ赤でスルーされた事に気づけとか書いてる奴がいたのには驚いたが

だかな、この質問俺が数年前過去スレに質問して回答が得られなかった質問なんだわ、その後自己解決して方法も書いたはず
2017年4月のそのTIPS見て、同じようなことで困ってる奴多かったんだなと懐かしく思った記憶がある

>>801
すまん、昨日は撒き餌撒いて寝てしまったので見てなかった
回答はついてる様なので省略するが、物理エンジンで動かす場合、摩擦やら他のオブジェクトとの衝突やらで結果がズレる可能性があることには注意な

851 名前:名前は開発中のものです。 mailto:sage [2017/12/12(火) 07:26:33.24 ID:yWI4yO+J.net]
仕様奴隷「俺はこんなにも素晴らしい奴隷なんだ!もっと俺をこき使ってくれぇええ!!」(ドヤァアアア!!!)

852 名前:名前は開発中のものです。 [2017/12/12(火) 07:29:16.97 ID:QJDJOOiE.net]
レベルデザインに使えるツール教えてください
アセットでもいいです

853 名前:名前は開発中のものです。 mailto:sage [2017/12/12(火) 07:34:12.06 ID:yWI4yO+J.net]
回転もデフォで減速するみたいだな
いちいち生意気なんだよUnity

854 名前:名前は開発中のものです。 mailto:sage [2017/12/12(火) 08:13:35.13 ID:tVhYuHY1.net]
>>816
どんなのを求めているかわからないけどアセットでもいいなら
ProBuilderなんてどうだい?

855 名前:名前は開発中のものです。 [2017/12/12(火) 09:37:16.36 ID:QJDJOOiE.net]
>>818
アセットのセットみたいなのがほしいです
フリーで

856 名前:名前は開発中のものです。 mailto:sage [2017/12/12(火) 10:39:07.71 ID:qFAu6kJp.net]
アセットじゃないけどスケッチアップなんてどうだい?
CADツールだけどUnityでそのままスケッチアップ形式のファイルを読み込むことができるんだ

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

ただし無償版でどこまでできるか把握してないから
気になったら調べてごらんよ

857 名前:名前は開発中のものです。 mailto:sage [2017/12/12(火) 11:37:29.41 ID:V4vKOuq6.net]
VS for Macでコーディングしている人いる?
予測コーディングが効かなかったり、最近のアプデで日本語入力がリアルタイムで表示されなくなったり、子音の入力が反応悪かったり
色々ボロボロで進捗やばいんだけどMacでの開発に向いてるテキストエディタ何か無いかしら?



858 名前:名前は開発中のものです。 mailto:sage [2017/12/12(火) 13:51:05.12 ID:awDx9SbB.net]
>>812
どうせキムチだよw

859 名前:名前は開発中のものです。 mailto:sage [2017/12/12(火) 15:35:32.47 ID:ICWFqCcb.net]
>>821
neovim

860 名前:名前は開発中のものです。 mailto:sage [2017/12/12(火) 17:04:49.48 ID:SinzmT6m.net]
VS codeを使うといい
for macは対応が不完全なゴミだがcodeはmacでも完璧に使える
金払ってもいいならRider

861 名前:名前は開発中のものです。 mailto:sage [2017/12/12(火) 17:13:54.71 ID:md8fOJvX.net]
VS codeの怒涛の更新ペースは何事かと思うw

862 名前:名前は開発中のものです。 mailto:sage [2017/12/12(火) 18:36:56.62 ID:w86KIWp6.net]
>>808 >>809
>>810
ありがとうございます!
両方やってみました

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

void Start () {
 rb = GetComponent < Rigidbody > ();
 Vdeg

863 名前: = new Vector3(45, 30, 0);
 Vrad = new Vector3(45, 30, 0) * Mathf.Deg2Rad;
 Q = rb.rotation;
}
[]
[ここ壊れてます]

864 名前:名前は開発中のものです。 mailto:sage [2017/12/12(火) 18:37:14.48 ID:w86KIWp6.net]
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);
 }
}

865 名前:名前は開発中のものです。 mailto:sage [2017/12/12(火) 18:41:32.25 ID:w86KIWp6.net]
結果です!

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に入れる方が正しいみたいですね

866 名前:名前は開発中のものです。 mailto:sage [2017/12/12(火) 18:52:30.96 ID:w86KIWp6.net]
>>817

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

RigidbodyをangularVelocityやAddTorqueで回転させて、
1秒ごとにangularVelocityを表示させても、
回転速度は落ちてないようなのですが・・・

867 名前:名前は開発中のものです。 mailto:sage [2017/12/12(火) 20:43:24.56 ID:s3bcy12n.net]
>>827

RigidbodyもRigidbody2Dも、
LinearDragは0が初期値だけど、
AngularDragは0.05が初期値なのが、
気に入らないということでは?



868 名前:名前は開発中のものです。 mailto:sage [2017/12/12(火) 20:43:27.01 ID:WuPRAOqq.net]
今までモーションは、簡単だからmmdで作ってたけどx軸とy軸の計算違うような……
blenderに乗り換えた方がいいのだろうか。

869 名前:名前は開発中のものです。 mailto:sage [2017/12/12(火) 20:56:14.28 ID:+nER52Ex.net]
はい

870 名前:名前は開発中のものです。 mailto:sage [2017/12/12(火) 21:01:44.29 ID:WuPRAOqq.net]
やっぱか……
blenderの勉強してくるわ。
mmd使うとか俺ってほんとにバカ……

871 名前:名無し@キムチ [2017/12/12(火) 21:17:33.27 ID:pZVPZZmh.net]
>>833
Blenderには気を付けたほうがいい
Blender上では問題なくモーションしてても、unityに取り込んで動かすと、手が体に食い込んだりしているから。
何度か行ったり来たりする必要があるw

872 名前:名前は開発中のものです。 mailto:sage [2017/12/12(火) 22:25:16.08 ID:oOD9NLJB.net]
blender でもやっぱり同じようなこと起きると思うよ
表現力に不満がないならMMDにしとき

873 名前:名前は開発中のものです。 mailto:sage [2017/12/12(火) 22:32:44.76 ID:9L2xhVzt.net]
else ifまで読んだ
そんなか入るの?!

874 名前:名前は開発中のものです。 mailto:sage [2017/12/13(水) 00:01:44.95 ID:/jokcbje.net]
>>828

最初の回転状態が、
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が同じ結果なのと一緒です。

875 名前:名前は開発中のものです。 mailto:sage [2017/12/13(水) 00:07:16.00 ID:/jokcbje.net]
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になります。

876 名前:名前は開発中のものです。 mailto:sage [2017/12/13(水) 00:35:37.82 ID:/jokcbje.net]
>>826-828
Invokeが呼び出しの際に1フレーム遅れるとわかっているのであれば、
1フレーム前の時間で呼び出させば大丈夫ですよ。

void Start () {
 rb

877 名前:.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)」が出ましたよ。
>>810の方法で求めた場合と一致する値です。

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

V = new Vector3(45, 30, 0)
angle = V.magnitudeでも同じ結果になります。
[]
[ここ壊れてます]



878 名前:名前は開発中のものです。 mailto:sage [2017/12/13(水) 06:09:25.65 ID:EBksqhAl.net]
>>835
そうなのか……
大きい移動とかはスクリプトで制御するしかないのか。
ありがとう

879 名前:名前は開発中のものです。 mailto:sage [2017/12/13(水) 18:54:39.99 ID:+IrYaRns.net]
趣味でUnity使ってゲーム制作してる人と友達になる方法教えてください

880 名前:名前は開発中のものです。 mailto:sage [2017/12/13(水) 18:59:16.17 ID:w+IYDO+A.net]
お断りします

881 名前:名前は開発中のものです。 mailto:sage [2017/12/13(水) 19:00:06.72 ID:EBksqhAl.net]
ツイッターでよくね?
現実で探そうとしてもなかなか見つからんもんだぞ。

882 名前:名前は開発中のものです。 mailto:sage [2017/12/13(水) 19:11:19.37 ID:6lJsdJ22.net]
transformのposition, rotation, scaleって、
なんでtransform.position,transform.rotation,transform.lossyscale
になっていて、transform.scaleじゃないの??

883 名前:名前は開発中のものです。 mailto:sage [2017/12/13(水) 19:23:08.89 ID:+IrYaRns.net]
>>843
日本の活発な交流サイトとかはなさそうですね…ありがとうございます

884 名前:名前は開発中のものです。 mailto:sage [2017/12/13(水) 19:54:49.63 ID:IotT1rVx.net]
>>845
ツイッター
FacebookのUnity寄り合い所
あとはリアルのイベント
ゲームジャムやエンジニア向け勉強会に参加して交流、名刺交換、SNS垢の相互フォローなどすれば簡単に知り合いは増える
ちゃんと進捗をSNS上で報告すれば質問とかも答えてもらえる
イベントを探すならdoorkeeper、atnd、peatix

885 名前:名前は開発中のものです。 mailto:sage [2017/12/13(水) 20:48:15.04 ID:/jokcbje.net]
>>844

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で表せるからだと思います。

886 名前:名前は開発中のものです。 mailto:sage [2017/12/13(水) 20:58:06.39 ID:Kxr7McTA.net]
>>847
おお、中の人?w

887 名前:名前は開発中のものです。 mailto:sage [2017/12/13(水) 22:56:29.30 ID:/jokcbje.net]
Unityでは、アフィン変換を行う4×4行列であるMatrix4x4が、
TRS(Vector3 position, Quaternion rotation, Vector3 lossy scale)
によって構成されていて、
スケーリング→回転→移動の順に適用するようにしています。

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

RigidbodyのinertiaTensorも一緒で、
本来は3×3行列が必要な慣性モーメントテンソルを、
慣性主軸系に限定することで、対角成分しか使わず、
Vector3の主慣性モーメントで済むようにしています。



888 名前:名前は開発中のものです。 mailto:sage [2017/12/13(水) 23:01:57.61 ID:/jokcbje.net]
>>848

Unity自体はそれほど詳しくないですが、
物理演算系とか、3D数学が専門なので。

889 名前:名前は開発中のものです。 mailto:sage [2017/12/13(水) 23:04:15.99 ID:bbkFRctl.net]
神になった気分だ。
スキルアップした今、どんなジャンルの仮想世界を作れと言われても
その詳細さえ教えてもらえれば
一瞬でどんなデータ構造/アルゴリズムで作ればいいかや
どんなデザインパターンを使えばいいかが
一瞬で頭にひらめき、スラスラとコードを書きはじめることができ、
予期せぬバグとかがなければ短期間でそのソフトやツールを一人で作る自信がある。

この予期せぬバグとはふだん使ってない昔やったプログラミング言語の細かい文法関

890 名前:連のことだけで
それはすぐ見直してカンを取り戻せばいいから全く問題ない。
[]
[ここ壊れてます]

891 名前:名前は開発中のものです。 mailto:sage [2017/12/13(水) 23:09:45.76 ID:Kxr7McTA.net]
>>851
いいから、お前は早く作れ!w

892 名前:名前は開発中のものです。 mailto:sage [2017/12/13(水) 23:11:16.24 ID:Kxr7McTA.net]
>>850
専門?3d系プログラマ?

893 名前:名前は開発中のものです。 mailto:sage [2017/12/13(水) 23:36:39.33 ID:fbUZmcUU.net]
transform.lossyscale.x = transform.parent.locssyScale.x * transform.localscale.x
じゃないのか?

894 名前:名前は開発中のものです。 mailto:sage [2017/12/14(木) 00:23:40.49 ID:AuQKwcV0.net]
>>854

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

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

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

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

>>853

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

うっかりしてましたが、UnityはCamelCaseだから、localScale,lossyScaleが正しいのでしたね。

895 名前:名前は開発中のものです。 mailto:sage [2017/12/14(木) 00:33:15.69 ID:AuQKwcV0.net]
Scaleの積は、Vector3の各成分とVector3の各成分の積なので、
Vector3 * Vevtor3 は定義されていないから、
Vector3.Scale(Vector3, Vevtor3) という演算ですね。
いわゆる、アダマール積(シューア積,要素積)です。

Unityでは、アダマール積の逆関数が定義されていないので、
自分でVector3.Scaleの逆関数を定義するか、
アダマール積の逆数を自分で定義する必要がありますね。

896 名前:名前は開発中のものです。 [2017/12/14(木) 02:05:43.30 ID:tWpTkhe5.net]
Vuforiaを使ってAR作りたいのですが実行するとマーカーは認識するもののカメラの映像が映らずに画面が黒くなります
誰か分かる方いらっしゃいますか...?

897 名前:名前は開発中のものです。 mailto:sage [2017/12/14(木) 08:31:00.73 ID:fpuqjDVR.net]
専門ってのは専門学校の事だろw



898 名前:名前は開発中のものです。 mailto:sage [2017/12/14(木) 08:46:47.19 ID:xj1b5N68.net]
>>858
専門学校出身だったら行列の回転だとかをQuaternionとかでも適用して使えるんだろなー

という煽りレス

899 名前:名前は開発中のものです。 mailto:sage [2017/12/14(木) 11:08:53.86 ID:X1xy6sbZ.net]
plus一ヶ月契約でもエッセンシャルパック2つってもらえますか?
あるいは契約し続けないと使えなくなる感じかな

900 名前:名前は開発中のものです。 mailto:sage [2017/12/14(木) 12:22:42.24 ID:JR7j67YV.net]
>>859

Unityって、もともと回転行列じゃなくて、クォータニオンで回転しているんじゃないの??

901 名前:名前は開発中のものです。 mailto:sage [2017/12/14(木) 13:13:10.01 ID:6Eg6sRVA.net]
>>861
Matrix4x4というのがあってね... 

でも正直に言おう アレは何だ?!

902 名前:名前は開発中のものです。 mailto:sage [2017/12/14(木) 15:25:57.18 ID:UIHENBZT.net]
数学難しいですね
でも大丈夫!UNITYにはアセットが有りますよ!
アセットを購入しましょう!

903 名前:名前は開発中のものです。 mailto:sage [2017/12/14(木) 17:52:04.05 ID:V0Mq7RkO.net]
>>863
お前ニセモノだな!

904 名前:名前は開発中のものです。 mailto:sage [2017/12/14(木) 19:01:47.53 ID:EAIFpwQr.net]
>>860
契約切れても有効だけどそもそもplus/pro自体12ヶ月継続必須だから前提が無理

905 名前:名前は開発中のものです。 mailto:sage [2017/12/14(木) 19:21:23.88 ID:JR7j67YV.net]
>>862

3次元のベクトルを回転させるのに、なんで4x4行列なの?
回転行列って、3x3行列じゃないの??

906 名前:名前は開発中のものです。 mailto:sage [2017/12/14(木) 20:39:20.26 ID:AuQKwcV0.net]
>>866

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

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

出力する時は、
Vector3 = Matrix4x4.MultiplyVector(Vector3)
によって、Vector3で入力して、
Vector3で出力できるようになっています。

907 名前:名前は開発中のものです。 mailto:sage [2017/12/14(木) 20:55:53.20 ID:N8/aZDnG.net]
>>867
はえ〜すっごい‥



908 名前:名前は開発中のものです。 mailto:sage [2017/12/14(木) 21:30:51.37 ID:AuQKwcV0.net]
>>859



909 名前:回転行列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;
[]
[ここ壊れてます]

910 名前:名前は開発中のものです。 mailto:sage [2017/12/14(木) 21:32:41.20 ID:AuQKwcV0.net]
Matrix4x4 M = Matrix4x4.TRS (Vector2.zero, Q, Vector2.one);
は間違いで、

Matrix4x4 M = Matrix4x4.TRS (Vector3.zero, Q, Vector3.one);
が正しいです。

911 名前:名前は開発中のものです。 mailto:sage [2017/12/14(木) 21:45:36.22 ID:AuQKwcV0.net]
>>859

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」だけでできるようになっています。

912 名前:名前は開発中のものです。 mailto:sage [2017/12/14(木) 21:55:15.62 ID:AuQKwcV0.net]
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) で代入されると、
アフィン変換の「移動」が乗算されなくなります。

913 名前:名前は開発中のものです。 mailto:sage [2017/12/14(木) 23:49:37.69 ID:zts/k6NY.net]
行列なんか意識しないでも3dゲーム作れるようになったんだからすごい時代だよね
結構まえからだけど

914 名前:名前は開発中のものです。 mailto:sage [2017/12/14(木) 23:54:59.29 ID:N8/aZDnG.net]
>>871
へー、なるほどなぁ‥

915 名前:名前は開発中のものです。 mailto:sage [2017/12/15(金) 01:39:47.96 ID:TM1zyrgU.net]
>>865
年契約の1ヶ月払いってだけなんですね
ありがとうございます

916 名前:名前は開発中のものです。 mailto:sage [2017/12/15(金) 04:19:45.41 ID:L6b+QAfA.net]
なるほど よくわからん

917 名前:名前は開発中のものです。 mailto:sage [2017/12/15(金) 11:35:10.31 ID:a5awPS/6.net]
>>875
半額だったんでplusを年契約の年払いしたよ
売り上げ1千万以上なのに。
たかだか1万円ぐらいを月払いする奴いるの?



918 名前:名前は開発中のものです。 mailto:sage [2017/12/15(金) 12:38:14.64 ID:c63jfGrC.net]
物理演算系の解説を希望!

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

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

重力設定や衝突判定をUnityにまかせてしまうには、物理演算を使用するのが手っ取り早いんだけど、
物理演算だと、これまでのグラフィックス操作的な、プログラミングメソッドがあまり使えない
(基本的に、positionやrotationを直接いじらないほうが良いみたい)

919 名前:名前は開発中のものです。 mailto:sage [2017/12/15(金) 12:46:53.83 ID:bN2Y1bPS.net]
アイテムを所持していればお化けを倒せるというシステムにしようと思っています。
それでそのアイテムを十字架の画像にしようと思っているのですが、日本人だったらアイコン見ただけで何となく意味が分かるだろうと思うのですが、海外の人でも抵抗なくスッと理解されるんでしょうか?

920 名前:名前は開発中のものです。 mailto:sage [2017/12/15(金) 13:05:51.44 ID:DzxyY709.net]
>>879
アセットを購入すればいいですよ

921 名前:名前は開発中のものです。 mailto:sage [2017/12/15(金) 15:58:23.54 ID:59uPCR9L.net]
>>879
海外のゲームを参考にすればわかりますよ

922 名前:名前は開発中のものです。 mailto:sage [2017/12/15(金) 16:32:05.45 ID:kzY3QNw/.net]
>>879
ゲームデザインにもよるけど

そのアイテムの効果とお化けとの相互関係が分かるような物なら多分大丈夫かなぁ アイテム説明とかも結構重要だけども。

923 名前:名前は開発中のものです。 mailto:sage [2017/12/15(金) 16:54:14.50 ID:bO73tzHJ.net]
アイテム説明が一番確実

924 名前:だわな
むしろ必須じゃないか?
[]
[ここ壊れてます]

925 名前:名前は開発中のものです。 mailto:sage [2017/12/15(金) 20:05:01.07 ID:c63jfGrC.net]
transform.LookAtだと、どうしてもオブジェクトのforward軸が対象を向いちゃう
そうじゃなくて、オブジェクトのup軸を対象に向けたいんだけど、一体どうすれば・・・?

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

オブジェクトとtransform軸の対応を変更できれば、
オブジェクトのup軸方向を、forward軸に設定したいんだけど・・・

926 名前:名前は開発中のものです。 mailto:sage [2017/12/15(金) 20:51:06.18 ID:PCtIHB7r.net]
おぶじえくを最初から傾けておくか、小オブジェクトで対応するか、いくらでも方法あるだろうね。
ルックアット使わずにやるのも有りだし。

927 名前:名前は開発中のものです。 mailto:sage [2017/12/15(金) 23:29:48.61 ID:nw+wySXa.net]
>>884
目標の座標をVector3 targetとすると、

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

transform.LookAt(target) は、
transform.forward = target と同じになるはずです。



928 名前:名前は開発中のものです。 mailto:sage [2017/12/15(金) 23:37:17.53 ID:nw+wySXa.net]
もっとも汎用性のある方法は、
向き(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軸への代入ではできず、
上記の汎用法を使うのが良いと思います。

929 名前:名前は開発中のものです。 mailto:sage [2017/12/15(金) 23:38:56.71 ID:nw+wySXa.net]
>>884

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

@transform.up = target

Atransform.rotation = Quaternion.FromToRotation(Vector3.up, target)

930 名前:名前は開発中のものです。 mailto:sage [2017/12/16(土) 01:09:49.63 ID:yxJiRP9K.net]
先生、お元気ですか?

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

惹かれます。

ゲームを、もっと知りたいです。

931 名前:名前は開発中のものです。 mailto:sage [2017/12/16(土) 02:04:26.56 ID:hBjssZ70.net]
>>889
どこかで見た文章だけど、元ネタが思い出せない・・・

932 名前:名前は開発中のものです。 mailto:sage [2017/12/16(土) 05:13:21.04 ID:nt3lwpZi.net]
>>883
文字で説明しないと伝わらないUIはデザインとしてゴミ以下

933 名前:名前は開発中のものです。 mailto:sage [2017/12/16(土) 10:52:27.48 ID:rc5ijf27.net]
質問です
友人がウインドウズで9人対9人のオンラインゲームを作りたいと言ってます
それはつまり18人がオンライン接続してゲームするわけですが
そんなことUnityでやれますか?

934 名前:ダーク王鍬大使 mailto:sage [2017/12/16(土) 12:23:08.13 ID:finBREYt.net]
出来まふよ(^^

935 名前:名前は開発中のものです。 mailto:sage [2017/12/16(土) 14:06:22.45 ID:OPi28kIP.net]
何でできないって思うんだろうな

936 名前:名前は開発中のものです。 mailto:sage [2017/12/16(土) 14:10:10.05 ID:2jMajkmZ.net]
Unityは出来るけど彼らには出来ない
悲しいけどこれ、ゲーム制作なのよね

937 名前:名前は開発中のものです。 mailto:sage [2017/12/16(土) 15:56:35.74 ID:fmqmdkMD.net]
無料で利用できる範囲は同時接続20人まで
21人〜50人まで月額4200円
51人〜200人まで月額15000円



938 名前:名前は開発中のものです。 mailto:sage [2017/12/16(土) 16:08:28.62 ID:ovrxOZck.net]
パーソナル版の使用条件として収益が〜ドル以下みたいな規約がありますが、
あれは自己申告なのでしょうかそれとも向こうでも逐一判断できる状態なんでしょうか。

939 名前:名前は開発中のものです。 mailto:sage [2017/12/16(土) 16:56:22.84 ID:OPi28kIP.net]
>>897
判断できる状態ってどんな状態?
自己申告だけどものすごく稼いでた

940 名前:ら嫌でも目に留まる []
[ここ壊れてます]

941 名前:名前は開発中のものです。 mailto:sage [2017/12/16(土) 17:44:22.66 ID:YMI0KZPt.net]
「人生はゲームのようにプレーしろ。真理は恐ろしいものではない。」

942 名前:名無し@キムチ [2017/12/16(土) 19:19:52.45 ID:ODGviKVk.net]
>>888
>up軸を向ける

up軸を相手に向けるというのが、当方にはどんな状態なのか、ピンとこないです。
具体的には頭のてっぺんを相手に向けるということなのですか?
それはどんなシチュエーションのゲームなんだろう?
これから相手に頭突きをかますとか?それなら、頭だけを下げればいいわけだし・・・
申し訳ないが、まるで映像が浮かんできません・・・www

943 名前:名前は開発中のものです。 mailto:sage [2017/12/16(土) 22:30:34.88 ID:zgsa9dPV.net]
落ちものパズルを作成していて画面上部にオブジェクトを出現させて横軸のマウスの動きについてきてクリックでオブジェクトが落下。
というような仕様にしたいのですが、ランダムにオブジェクトを作成して画面上部に固定というのが出来ません。これの解決法が見つかりません。。。

どうかご教授お願いします。

944 名前:名前は開発中のものです。 mailto:sage [2017/12/16(土) 22:50:27.94 ID:hBjssZ70.net]
例えば、太陽を中心に地球が公転をする時のようなイメージで、

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

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

(実際の地球はそんな回転はしないけど、そういう状況を作りたいときに必要かも)

945 名前:名前は開発中のものです。 mailto:sage [2017/12/16(土) 22:58:57.30 ID:hBjssZ70.net]
あるいは、飛行機の宙返り飛行かも?!

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

taransform.RotateionAroundで、上空に設定したループ中心回りを公転して宙返り
その際、飛行機の背中(上下のup軸)はループ中心を向けていないといけない

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

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

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

947 名前:名前は開発中のものです。 mailto:sage [2017/12/16(土) 23:05:25.75 ID:hBjssZ70.net]
いいや、違うな・・・

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

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

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

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

これが理由のような気がするなあ



948 名前:名前は開発中のものです。 mailto:sage [2017/12/16(土) 23:07:26.05 ID:hBjssZ70.net]
>>901

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

Gravityオフにしてオブジェクトを生成すれば、落ちないよ
クリックしされたら、オブジェクトのGravityをオンにしたら良いんじゃ

949 名前:名前は開発中のものです。 mailto:sage [2017/12/16(土) 23:57:45.09 ID:zgsa9dPV.net]
>>906
返信ありがとうございます。
物理は使っています。2Dで制作しています。

プログラムが書けなくてオブジェクトをランダムに生成してクリックでGravityをオンにするっていうようにするのが
どうやればいいのかわからなくて・・・。

950 名前:名前は開発中のものです。 mailto:sage [2017/12/17(日) 00:00:59.32 ID:CBpPFu99.net]
星型のアセットモデルをインポート

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

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

星型の弾丸を作ろうと思ってるんですが、プレハブから弾丸にするとデフォルトの変な角度のまま発射されてしまうんですよね…

951 名前:名前は開発中のものです。 mailto:sage [2017/12/17(日) 01:08:13.95 ID:Vn9M2BoC.net]
>>907
プログラムを書けるようになって動かせるようになりたいってこと?

952 名前:名前は開発中のものです。 mailto:sage [2017/12/17(日) 01:26:30.94 ID:K2bL8mhm.net]
>>908

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

スクリプトで動的にプレハブ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に載せる

953 名前:名前は開発中のものです。 mailto:sage [2017/12/17(日) 01:32:40.49 ID: ]
[ここ壊れてます]

954 名前:K2bL8mhm.net mailto: 半角スペースが文字化けして?になっちゃった・・・

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

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

あらかじめ、prefabのRigidbody2Dで、
インスペクター上でGravityScaleは0にしておいてね;
[]
[ここ壊れてます]

955 名前:名前は開発中のものです。 mailto:sage [2017/12/17(日) 02:01:14.46 ID:vcuEPHEk.net]
流石にコード無しでDTB作るのは難しいと思うからプログラムを学ぶかかける人を探さないと無理だと思うよ

956 名前:名前は開発中のものです。 mailto:sage [2017/12/17(日) 02:16:48.31 ID:K2bL8mhm.net]
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;
 }
}

957 名前:名前は開発中のものです。 mailto:sage [2017/12/17(日) 02:23:43.91 ID:K2bL8mhm.net]
PrefabCodeは、ヒエラルキーで作成した空の2Dオブジェクトにでも入れておいて

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

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

prefabは空のオブジェクトの位置に生成されるから



958 名前:名前は開発中のものです。 mailto:sage [2017/12/17(日) 02:48:52.06 ID:2l6FPzGg.net]
これで作られたRPGってありますか
ガチャゲーじゃない昔ながらのRPGです

959 名前:名前は開発中のものです。 mailto:sage [2017/12/17(日) 03:03:25.27 ID:KEqZbS2o.net]
>>915
いけにえと雪のセツナ

960 名前:名前は開発中のものです。 mailto:sage [2017/12/17(日) 03:06:58.30 ID:2l6FPzGg.net]
>>916
d
セールになったら買ってみます

961 名前:名前は開発中のものです。 mailto:sage [2017/12/17(日) 03:30:34.88 ID:anx13erV.net]
2Dアクションゲームを作成しようとしている初心者です。

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

tilemapを使用した際のこういった引っかかり挙動を抑えることは可能でしょうか。

962 名前:名前は開発中のものです。 mailto:sage [2017/12/17(日) 10:25:06.96 ID:kJlZ2G7V.net]
足元はcapsuleかcircleにして、
もう1つboxで足元から数ピクセル上を覆えば良いのでは?
collider2Dは1つという制約はないので、複合したら良いんじゃ

963 名前:名前は開発中のものです。 mailto:sage [2017/12/17(日) 10:31:21.09 ID:kJlZ2G7V.net]
>>900

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

人工衛星やスペースシャトルみたいな感じです
前方は進行方向を向けておいて、なおかつ上下は鉛直軸に揃えたいんです
前方が中心を向いちゃうと、上下に立った状態で周回してしまうので

964 名前:名前は開発中のものです。 mailto:sage [2017/12/17(日) 10:36:09.95 ID:kJlZ2G7V.net]
レスのアンカに引っ張られて間違えましたが、自分は883でした

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

>>88

965 名前:6
ビックリです!
transform軸に目標座標を入れると、軸がそっちを向くんですね!
しかも、正規化して単位ベクトルにするひつようもないみたい
そしたら、transform.LookAtいらなくない?!
[]
[ここ壊れてます]

966 名前:名前は開発中のものです。 mailto:sage [2017/12/17(日) 16:14:44.68 ID:anx13erV.net]
>>919
レスありがとうございます。
当たり判定に違和感がない数ピクセルの差でbox collider2dをアタッチすると引っかかりは生じます。
引っかからない程度に足元を円形にすると角で滑り落ちるようになってしまいます。

DirectionをHorizontalにした角の丸い棒状のcapsulecollider2dでプレイヤーの上下左右を被った場合(角のない箱のような形)は、
引っかかることはなくなりますが、やはりタイルに当たりはするので、極僅かに減速してPlayerが数pixcel浮くことがあります。
またその際、OnCollision〜2Dイベントを監視すると、タイルに当たって浮いた瞬間にタイルとの接触判定が一瞬途切れている為、
ジャンプ判定等にも影響が出てしまう(空中にいる判定が誤作動する)のでタイルとの判定自体を正しく動作させたいと考えています。

967 名前:名前は開発中のものです。 mailto:sage [2017/12/17(日) 17:18:37.08 ID:CBpPFu99.net]
回転するステージを作ってます
ステージにspawn位置を子オブジェクトとして設定して、そこから敵を出現させようと思ってるんですが
spawn位置がステージに追従して回転せず、固定されたままになってしまいます

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

なにか解決方法はありませんか?



968 名前:名前は開発中のものです。 mailto:sage [2017/12/17(日) 17:19:26.92 ID:CBpPFu99.net]
>>910
遅レスすいません、詳しくありがとうございます。試してみます。

969 名前:名前は開発中のものです。 mailto:sage [2017/12/17(日) 17:21:12.36 ID:anx13erV.net]
>>922
すみません自己解決しました。

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

ありがとうございました。

970 名前:名前は開発中のものです。 mailto:sage [2017/12/17(日) 17:28:31.76 ID:0i7oG1oj.net]
>>886
どういう原理なんだこれ????

971 名前:名前は開発中のものです。 mailto:sage [2017/12/17(日) 20:19:28.23 ID:Vn9M2BoC.net]
position とかと同じように代入できるんだね。リードオンリーだとばかり思ってた

972 名前:名前は開発中のものです。 mailto:sage [2017/12/17(日) 20:36:30.69 ID:MPKxHq38.net]
Unityの人達がどれほど「技術の民主化(デモクラタイズ)」とい
うものに心を払っているかは、多分外部の人達には想像できな
いと思います。この一点においいて、Unityは、世界中に沢山の
ファンを生み出し、そしてエバンジェリズムを行うチームのメンバ
ーも国境や政治制度を越えてひとつになれるのです。

973 名前:名前は開発中のものです。 mailto:sage [2017/12/17(日) 20:43:06.69 ID:ttDBRzWh.net]
その思想は非常に危険
それは即ち低賃金労働者の搾取がゲーム業界においても世界的に起こるようになるということと同義だからだ

974 名前:名前は開発中のものです。 mailto:sage [2017/12/17(日) 21:44:56.77 ID:FNxE37S9.net]
キケンかどうかは立ち位置によるし、資本主義では当たり前の話。

975 名前:名前は開発中のものです。 mailto:sage [2017/12/17(日) 22:07:45.00 ID:K2bL8mhm.net]
>>926
transform軸の座標は、自分のpositionをVector3.zeroとした時の相対座標で設定されている

自分のpositionが原点の場合は、transform軸の座標に目標のpositionを

976 名前:入れれば、
それが勝手に単位ベクトル化されて、方向ベクトルになるみたい

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

だから、「target」だけを入れれば良いLookAtの方が簡単にできる(forward軸限定だけど)
あと、LookAtは第2引数で、up軸の方向も指定できる
(forward軸をtagetに向けた状態で、可能な限りup軸を指定方向に合わせてくれる)
[]
[ここ壊れてます]

977 名前:名前は開発中のものです。 mailto:sage [2017/12/17(日) 22:12:13.99 ID:K2bL8mhm.net]
>>923

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

Instantiate(Object, Position, Parent)



978 名前:名前は開発中のものです。 mailto:sage [2017/12/17(日) 22:14:47.35 ID:K2bL8mhm.net]
>>922
>>925

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

いつも、足の前後に円形判定をおいたり、
カプセルを横にして置いて、地形判定専用にしてたわ

979 名前:名前は開発中のものです。 mailto:sage [2017/12/17(日) 22:57:38.86 ID:SNj3ir+c.net]
ダメージを受ける毎に敵オブジェクトとかモデルが足元から徐々に(段階的に)赤くなって行くっていうのって、どういう原理で出来るんですか?
色々考えたんですけど思い付かなくて

980 名前:名前は開発中のものです。 mailto:sage [2017/12/17(日) 23:29:09.88 ID:tMMchmwv.net]
けーすばいけーす

981 名前:名前は開発中のものです。 [2017/12/18(月) 04:52:21.33 ID:B3OUJM41.net]
歩くアニメーションがあってそれは実行すると前進するのですが
これをその場で足踏みだけさせるように簡単に変更はできますか?

982 名前:名前は開発中のものです。 mailto:sage [2017/12/18(月) 08:05:53.43 ID:vc4Z0s4x.net]
アニメーション再生するだけで前に動くことは無い
別のスクリプトでオブジェクトを進行方向に動かしているはず

983 名前:名前は開発中のものです。 mailto:sage [2017/12/18(月) 08:48:59.47 ID:WoyHjqZj.net]
>>878
position等を直接いじったらそれはワープしてるのと同じだからね

移動や回転は事象に応じて物理エンジンがするものと考えれば、いろいろ扱いやすくなると思うよ

984 名前:名前は開発中のものです。 mailto:sage [2017/12/18(月) 09:27:02.70 ID:mba+3hiD.net]
>>936
apply root motion

985 名前:名前は開発中のものです。 mailto:sage [2017/12/18(月) 10:23:29.76 ID:B3OUJM41.net]
>>939
apply root motionを指定しても動いてるんですよね。
>>937
歩く以外にもジャンプのアニメーションも上に飛び上がらないようにしたいとかです。

986 名前:名前は開発中のものです。 mailto:sage [2017/12/18(月) 10:32:53.07 ID:vc4Z0s4x.net]
>>940
モーション自体の中で位置が動いてるなら簡単に動かないようにするのは無理
アニメーション編集してルートのトランスフォーム移動のキーを全部削除するしかない

987 名前:名前は開発中のものです。 mailto:sage [2017/12/18(月) 10:40:39.28 ID:B3OUJM41.net]
>>941
やっぱりそれしかないんですね。
自分で削除することにします。ありがとうございました。



988 名前:名前は開発中のものです。 mailto:sage [2017/12/18(月) 12:00:11.97 ID:jBsoCflG.net]
LateUpdateでモーション適用後のトランスフォームを変更できる
ルートのボーンにLateUpdateで位置をlocalPosition=0,0,0にするコンポを付ければいい。

989 名前:名前は開発中のものです。 mailto:sage [2017/12/18(月) 12:43:15.93 ID:B3OUJM41.net]
>>943
ありがとうございます。やってみます!

990 名前:名前は開発中のものです。 mailto:sage [2017/12/18(月) 13:36:58.58 ID:B3OUJM41.net]
>>943
完璧に動作しました!ありがとうございました!!

991 名前:名前は開発中のものです。 mailto:sage [2017/12/18(月) 14:32:15.73 ID:B4iwR6Ld.net]
https://twitter.com/SpaceBackyard/status/898870157979811840
リンクすみません。
こういうカーソル位置?というか左右にしたら画面が切り替わるのってどうやれば出来るんでしょう?
マスクみたいな感じですか?

992 名前:名無し@キムチ [2017/12/18(月) 19:51:23.56 ID:iM2CjGiv.net]
>>886>>943は優良回答者ですね。
しったかのヘタレ回答者が多い中で、すごいです!!!

993 名前:名前は開発中のものです。 mailto:sage [2017/12/18(月) 20:19:13.70 ID:AjgZuUm6.net]
>>947
貴方も回答者に成るんだよこれから。

994 名前:名無し@キムチ [2017/12/18(月) 22:22:26.73 ID:iM2CjGiv.net]
>>948
ホントですね。頑張ります!

995 名前:名前は開発中のものです。 mailto:sage [2017/12/18(月) 22:2 ]
[ここ壊れてます]

996 名前:4:40.54 ID:zA/nszQ4.net mailto: 好きなオッパイは何カップですか? []
[ここ壊れてます]

997 名前:名前は開発中のものです。 mailto:sage [2017/12/18(月) 22:39:17.53 ID:9Bga0q6S.net]
越後製菓!



998 名前:名前は開発中のものです。 mailto:sage [2017/12/18(月) 23:04:07.96 ID:x75jC3YN.net]
最近、質問-回答がちゃんとなされて、質問スレとして機能していて、ビックリ!

ちょっと前なら、アセットで解決!で終了だったのに・・・

スレで出た有用なQ&Aは、誰かどこかにまとめてくれないかね〜

999 名前:名前は開発中のものです。 mailto:sage [2017/12/18(月) 23:11:37.88 ID:x75jC3YN.net]
2DはLookAtが使えなくて今まで諦めてたけど、
まさかtransform.rightやtransform.upに直接代入して、
LookAtもどきができるとは、凄く役になったな〜

タイルチップで2D背景を作ってたけど、
左右移動時にタイルのつなぎ目で引っかかるから、
高さが同じタイルは、colliderを統合して、
高さが変わるところだけ、別colliderにしてたけど、
これからは、タイルチップ敷布でいけそうだな〜

1000 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 00:07:08.24 ID:4Od9SmbT.net]
ネトウヨ老害死ねばいいのに
ゲ製コミュの印象悪くして皆の足引っ張りやがって
死ねよ不細工メタボ引き篭もりネトウヨ

1001 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 00:27:04.18 ID:MvhMRTwq.net]
まーた、ネトウヨキムチがコミュとか言っちゃって

1002 名前:名前は開発中のものです。 mailto:944 [2017/12/19(火) 03:06:23.03 ID:Ih0Nk694.net]
一応言っておきますが>>947は自分じゃないですよ…
回答頂いた方には皆感謝してます。

1003 名前:955=944 mailto:sage [2017/12/19(火) 03:07:20.95 ID:Ih0Nk694.net]
名前欄ということです。すみません。

1004 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 07:37:16.79 ID:4Od9SmbT.net]
>>955
は?なんで俺が「キムチキムヨナ」連呼のネトウヨの最底辺メタボのゴミおっさんなんだよ?糖質が絡んでくるなや
「キムチキムヨナ」連呼のネトウヨの最底辺のゴミおっさんがどこで「コミュニティ」とか言ってやがるんだ?
ゲ製コミュをネトウヨコミュニティと一緒にするなやカス共が

>>956
「!」の使い方といい、文体といい、同じに見えるんだが?
ネトウヨの最底辺のゴミおっさんが、わざわざ文体を真似てるってことか?

1005 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 09:35:09.05 ID:VZwsAqll.net]
なんか面倒な人に絡まれてるなぁ955

新スレ作るか。

1006 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 09:36:44.16 ID:VZwsAqll.net]
新スレビルド完了です...
【3Dゲームエンジン】Unity質問スレッド33
mevius.5ch.net/test/read.cgi/gamedev/1513643755/

1007 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 10:04:53.30 ID:4Od9SmbT.net]
なぜ <準コテ「キムチ」で「キムヨナ」連呼> みたいなゴミを、素朴に「ゴミ」と言うことや
ぱっと見で文体が同じに見えることを、素朴に「同じに見える」「一方が真似てる」と言うことが
面倒がられなければならないのか?
素朴な書き込みを面倒がり、ゴミ廃棄を面倒がる奴の方が、よっぽど面倒だぜ?



1008 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 10:13:49.21 ID:hldyKkrz.net]
unityにマップを作るtile機能ってあるけど一つのチップセットに対してBoxColliderとかの情報を付けるのってどうすればええんやろ

1009 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 12:04:43.40 ID:m7Eb2COO.net]
>>962
アセットをかうしか無いですよ!

1010 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 14:27:52.29 ID:SpU5jUlI.net]
>>951
正解

1011 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 15:16:13.61 ID:ZiJMGaxN.net]
キチガイがいると迷惑だから分類しないとね

1012 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 15:56:19.98 ID:O0snqTpx.net]
>>952
お前が幼稚園や保育園をお望みならそれでいいんじゃない?
まともな小学生以上は自分でググって調べて解決してる
そんな内容ばかりだ

1013 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 16:33:46.69 ID:4R8uUpaI.net]
アセットガイジはなんか売ってるんかなぁ…

1014 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 18:11:13.26 ID:OC9tHkfS.net]
>>953
むしろ2DでLookAtさせたいだけならオブジェクトAとBの角度を取って画像をRotateさせるだけでいいんじゃないん?w

1015 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 19:22:46.77 ID:Jz5wVrA6.net]
>>968
そんな難しいことしたくないじゃん

1016 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 19:29:46.21 ID:oc7hao2D.net]
>>968

自分をオブジェクトA
 Aのposition = transform.position
目標をオブジェクトB
 Bのposition = target
とした場合に、

transform.right = target.position - transform.position
と同じ作用になるようにするには、

>>958の方法ではどうなる??

1017 名前:名前は開発中のものです。 [2017/12/19(火) 19:59:39.02 ID:IygWzju3.net]
>>970
オブジェクト間の角度とる関数あるからしらべて



1018 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 20:25:38.60 ID:v4JsSdmj.net]
ベクトル間の角度を出す関数じゃなくて?
ベクトル間の角度だと、原点を中心にした角度になるけど

しかも、それで角度を出すと回転の向きがわからないから、
ベクトルの外積を求める必要もあるよね

1019 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 22:09:39.44 ID:v4JsSdmj.net]
>>968

自分でコードを出してみなよ〜

命題:オブジェクトAの向きを、オブジェクトBの方向へ向ける

 オブジェクトAの座標は任意(原点とは限らない)

 オブジェクトAの向きは任意(0度とは限らない)

 オブジェクトBの座標は任意(原点とは限らない)

 オブジェクトBの位置はVector3で「target」とする

2Dだから、forward軸をtargetへ向かせるLookAtは使用できない

さて、969のコードを超える簡略化ができるのか?!どうか

1020 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 22:16:40.59 ID:m7Eb2COO.net]
アセットを購入すれば簡単簡単

1021 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 22:17:29.27 ID:v4JsSdmj.net]
そもそも角度って言っても、
それぞれのベクトルの偏角なのか、2つのベクトルのなす角なのか・・・

Rotate(0, 0, θ)で入れるには、
オブジェクトAからオブジェクトBへ向かうベクトルの偏角じゃないとダメだから、

オブジェクトAのベクトルとオブジェクトBのベクトルのなす角を求める
Vector3.Angleを使っても、それじゃA→Bへの原点中心の公転角になっちゃうよ!

rotationに入れるにはQuaternionである必要があるし、
オブジェクトAの最初の向きが0度じゃない場合も考慮しないといけないし・・・

どう考えても面倒じゃない??

1022 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 22:59:56.79 ID:v4JsSdmj.net]
アセットおじさんは、
なんていうアセットで、いくらで、どの機能を使うとできるのかも明記して欲しいね〜
「探せばあるかもよ」じゃね・・・

1023 名前:名前は開発中のものです。 mailto:sage [2017/12/20(水) 00:34:43.35 ID:TUVA4DF6.net]
>>970

考えてみました。
Aに下記のスクリプトをセットします。

public class A : MonoBehaviour {
 GameObject obj;
 Vector3 target, position, direction;

 void Start () {
  obj = GameObject.Find ("B");
  target = obj.transform.position;
  position = transform.position;
  direction = target - position;
  Invoke ("Rotate", 1.0f);
 }

 void Rotate(){
  transform.right = direction; ←ここを置き換えるコードです。
 }
}

1024 名前:名前は開発中のものです。 mailto:sage [2017/12/20(水) 00:39:41.23 ID:TUVA4DF6.net]
@Quaternion.FromToRotationを使用する方法1
 transform.rotation = Quaternion.FromToRotation (Vector3.right, direction);

AQuaternion.FromToRotationを使用する方法2
 transform.rotation = transform.rotation * Quaternion.FromToRotation (transform.right, direction);

BVector3.Angleを使用する方法1
 transform.rotation = Quaternion.Euler(0, 0, Mathf.Sign(Vector3.Dot(Vector3.forward, Vector3.Cross(Vector3.right, direction))) *Vector3.Angle(Vector3.right, direction));

CVector3.Angleを使用する方法2
 transform.rotation = transform.rotation * Quaternion.Euler(0, 0, Mathf.Sign(Vector3.Dot(transform.forward, Vector3.Cross(transform.right, direction))) *Vector3.Angle(transform.right, direction));

1025 名前:名前は開発中のものです。 mailto:sage [2017/12/20(水) 00:44:36.57 ID:TUVA4DF6.net]
DVector3.Angleを使用する方法3(Rotateを使用)
 transform.Rotate (0, 0, Mathf.Sign(Vector3.Dot(Vector3.forward, Vector3.Cross(transform.right, direction))) *Vector3.Angle(transform.right, direction));

EMathf.Atan2を使用する方法1(Rotateを使用)
 transform.Rotate (0, 0, Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg - transform.rotation.eulerAngles.z);

FMathf.Atan2を使用する方法2
 transform.rotation = Quaternion.AngleAxis(Mathf.Atan2((direction.y, direction.x) * Mathf.Rad2Deg, Vector3.forward);

うーん、どうやっても元よりも長いコードになってしまいます。

オブジェクトAの位置が原点だとか、オブジェクトAの向きが無回転だとか、
条件を付ければ、もう少し簡略化できますが・・・

1026 名前:名前は開発中のものです。 mailto:sage [2017/12/20(水) 01:00:49.24 ID:TUVA4DF6.net]
Quaternion.FromToRotation(A, B)では、
回転方向を含めた回転状態を得られますが、

Vector3.Angle(A, B)では、


1027 名前:ベクトル間の角度しかわからず、向きがわかりません。
また、取得される角度は180度以下に限定されるため、
左向きに270度は、右向きに90度かもしれないということです。

回転方向は、Vector3.Cross(A, B)のZ成分が正か負かで判定します。
2Dでは、Mathf.Sign((Vector3.Cross(A, B)).z)でも良いのですが、
3Dでは、回転面がXY平面上とは限らないため、外積ベクトルと
正の向きにしたい軸との内積をとってから符号判定した方が確実です。

Atan2関数は、戻り値がradのため、度に直す必要があります。
また、相対回転であるRotateを使用する場合は、
求めた偏角から、現在の向きの回転角を引いておく必要があります。

rotationはQuaternionのため、eulerAnglesでオイラー角に戻しておき、
Z軸回転成分だけを取り出して減算します。
[]
[ここ壊れてます]



1028 名前:名前は開発中のものです。 mailto:sage [2017/12/20(水) 08:42:36.26 ID:XTZUI7pU.net]
969です

>>977-980
詳しく解説ありがとうございました!

やっぱり、角度から行こうとすると結構面倒ですね〜

1029 名前:名前は開発中のものです。 mailto:sage [2017/12/20(水) 18:29:13.04 ID:XTZUI7pU.net]
汎用性を考えると、Quaternion.FromToRotationは良さそうですね

これは、あるベクトルを別のベクトルにする回転を返すわけだから、
自分の向きを、自分のベクトルから目標とするベクトルへ向ける回転にするわけですか・・・

1030 名前:名前は開発中のものです。 mailto:sage [2017/12/20(水) 22:49:28.74 ID:TUVA4DF6.net]
>>981

テラシュールブログ
tsubakit1.hateblo.jp/entry/2014/08/02/030919

ここに、Quaternion.FromToRotationの使い方がうまくまとまってました。
>>var diff = (target.position - transform.position ).normalized;
>>transform.rotation = Quaternion.FromToRotation( Vector3.up, diff);

このサイトでは、diffは正規化されているようですが、
基本的に内部で強制的に単位ベクトルになるようなので、
target.position - transform.positioだけで大丈夫そうです。

なお、外積ベクトルを利用する場合は、大きさも影響してきますので、
方向ベクトルは単位ベクトルにしておいたほうが無難です。

1031 名前:名前は開発中のものです。 mailto:sage [2017/12/20(水) 22:56:36.28 ID:TUVA4DF6.net]
なお、私の方法では、外積ベクトルとZ軸の内積をとっていますが、
最終的に符号のみを取り出しているので、大きさが影響しません。

Vector3.Reflect,Vector3.Project,Vector3.ProjectOnPlaneなど、
単位ベクトルに内積を乗算するタイプの関数では、
必ず正規化して単位ベクトルにしてから代入しないと、
計算結果が変わってきますので、注意が必要です。

1032 名前:名前は開発中のものです。 mailto:sage [2017/12/21(木) 12:35:15.03 ID:rQmWRShb.net]
  /⌒ヽ
 く/・ ⌒ヽ   すうがくのことわからない
  | 3 (∪ ̄]
 く、・ (∩ ̄]
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

1033 名前:名前は開発中のものです。 mailto:sage [2017/12/21(木) 13:03:49.54 ID:nBeZymLn.net]
算数だぞ。

1034 名前:名前は開発中のものです。 mailto:sage [2017/12/21(木) 14:22:23.93 ID:8qhc65N4.net]
確実に高校数学
中学算数でベクトルは習わない(特定進学校は除く)

1035 名前:名前は開発中のものです。 mailto:sage [2017/12/21(木) 14:52:32.83 ID:nBeZymLn.net]
>>987
つhttps://www.google.co.jp/amp/s/laurier.press/a/E1405072653842

1036 名前:名前は開発中のものです。 mailto:sage [2017/12/21(木) 17:37:17.76 ID:mWsXZ6ft.net]
年がいくつでも何処からでも学べるんちゃうんか

1037 名前:名前は開発中のものです。 mailto:sage [2017/12/21(木) 17:41:22.45 ID:ogJEBcpf.net]
年寄りは観念が固まってるから、4*4=4+4+4+4とか切り口を変えた柔軟な発想が出来ない



1038 名前:名前は開発中のものです。 mailto:sage [2017/12/21(木) 17:49:58.06 ID:uW9gzElK.net]
柔…軟…???

1039 名前:名前は開発中のものです。 mailto:sage [2017/12/21(木) 18:12:39.26 ID:p4DyS94v.net]
なんだかんだと言ってもITはそれなりの頭がないと出来ない
中学、高校で数学が苦手だった奴にプログラミングはむかない
そんな理由で糞IT専門学校卒の底辺IT奴隷だって素質があって他の業種からみれば高給与
まあ糞IT専門学校に逝っても半分以上は素質がなくて資格も

1040 名前:取れずIT関連企業にも就職できないんだけど []
[ここ壊れてます]

1041 名前:名前は開発中のものです。 mailto:sage [2017/12/21(木) 18:43:55.99 ID:d8WQwc80.net]
Unityのプログラムを、コピペじゃなくて、
自分で考えて、組み立ててコードを書けるってことは、
それなりに数学的な素養があると思うんだよね〜

何も行列とかクォータニオンとかを数学的にきちんと理解していなくても、
「そのメソッドで何ができるか」を理解していれば、
たとえメソッドの内部はブラックボックスでも、それを組み合わせて、
ちゃんと機能するコードが書けるから・・・

ある意味、クラスによるカプセル化と一緒で、
オブジェクト指向の根幹になるんじゃないかな?

1042 名前:名前は開発中のものです。 mailto:sage [2017/12/21(木) 18:52:38.72 ID:d8WQwc80.net]
もちろん、そのクラスや構造体の中で、
「数学的に何が行われているのか?」を理解していれば、
それを応用して、別のクラスを作ったり、
他の処理に応用することができるようになるとは思うけど・・・

3D処理(描画じゃなくて動作)で必要なのは、
ベクトル、行列、複素数の拡張であるクォータニオン、
極座標、関数(特に、三角関数)、初等幾何学、
古典物理学(力学)くらいじゃないかな・・・

Unityでは、行列は基本内部処理だけで表に出ないから、
高校の数学UBくらいまでのレベルじゃなかろうか?

1043 名前:名前は開発中のものです。 [2017/12/21(木) 19:26:27.42 ID:J5wOBApL.net]
>>989
>年がいくつでも何処からでも学べるんちゃうんか

それを聞く時点でキミはすでに学べない。

1044 名前:名前は開発中のものです。 mailto:sage [2017/12/21(木) 20:31:14.43 ID:MUjb87iC.net]
そんなんいらね。
三角関数を何となく使えるぐらいで十分。
あとはunityがやってくれる。

1045 名前:名前は開発中のものです。 mailto:sage [2017/12/21(木) 20:41:57.83 ID:m2pWnfBj.net]
>>989

高校卒業してから20年くらい、今年初めからUnityを始めましたが、
独学でベクトルの外積やクォータニオン演算まで辿り着けたので、
興味さえあれば、何とかなるもんですよ。

1046 名前:名前は開発中のものです。 mailto:sage [2017/12/21(木) 20:52:09.10 ID:m2pWnfBj.net]
例えば、物理演算を使用する場合、Unityで設定できるのは、
速度velocityと力AddForce、角速度angularVelocityとトルクTorqueだけです。
(位置positionや角変位rotationは原則いじらないほうが良いです)

すると、直線移動や自転だけなら設定が簡単ですが、
公転のような円運動を行うには、物理法則に準じた命令を与える必要があります。

物理演算では、transform.RotateAroundを使えないので、
そういう場合に自分で工夫して実装できるかどうかに関わってくると思います。

1047 名前:名前は開発中のものです。 mailto:sage [2017/12/22(金) 00:21:49.04 ID:ko83+b2p.net]
一番とっつきにくいのは回転運動だと思います。

Rigidbodyでは、ForceMode.Accelerationがあるので、

加速度Vector3 a(m/s/s)を得たい場合は、
AddForce(a, ForceMode.Acceleration)とするだけ、
角加速度Vector3 aa(rad/s/s)を得たい場合は、
AddTorque(aa, ForceMode.Acceleration)とするだけですが、

Rigidbody2Dでは、ForceMode.Accelerationがないので、

加速度Vector2 a(m/s/s)を得たい場合は、
AddForce(a * mass)としたり、
角加速度float aa(度/s/s)を得たい場合は、
AddTorque(aa * inertia * Mathf.Deg2Rad)とする必要があります。

要するに、ニュートンの運動方程式や、
オイラーの回転運動方程式を使う必要が出てきます。

速度は、2DはVector2 v(m/s)、3DはVector3 v(m/s)で分かりやすいですが、
角速度は、2Dはfloat w(度/s)、3DはVector3 w(rad/s)と単位が変わります。
Torqueではrad単位で入れないと、inertiaと乗算できないので面倒です。



1048 名前:名前は開発中のものです。 mailto:sage [2017/12/22(金) 02:24:21.72 ID:BHuKTyia.net]
オイラーは、ドラマー♪

1049 名前:名前は開発中のものです。 mailto:sage [2017/12/22(金) 10:39:11.64 ID:GTvlornd.net]
10年は 夢のよう
100年は 夢また夢
1000年は 一瞬の光の矢
過ぎてく時間は怖くない
輝きを失う事が嫌なのです

1050 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 53日 5時間 33分 36秒

1051 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<338KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef