ゲームエンジンUnityを楽しむ初心者による初心者の為のスレ
その為「アセットを購入しましょう」「チュートリアルやれ」「ググレカス」等禁止
初心者が親身になって初心者に教える。
又ググレの場合、何のキーワードでググるのか書いてね
●リンク
・Unity(日本公式サイト)
http://unity3d.com/jp
・マニュアル
http://docs.unity3d.com/ja/current/Manual/index.html
・チュートリアル
http://unity3d.com/jp/learn/tutorials
・スクリプトリファレンス
http://docs.unity3d.com/ja/current/ScriptReference/index.html
・FAQ
http://unity3d.com/jp/unity/faq
・MSDN
http://msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
【ゲームエンジン】Unity初心者質問スレBuild2
レス数が1000を超えています。これ以上書き込みはできません。
2019/05/08(水) 14:35:37.58ID:VDHuk8YT
952名前は開発中のものです。
2020/01/09(木) 12:00:30.94ID:AbIkBBD9 1つでもfalseならリターンすればいい
そうすりゃ無駄な変数いらんよ
あとfor で回す場合、<変数.lengthが使えるから増えても問題なし
そうすりゃ無駄な変数いらんよ
あとfor で回す場合、<変数.lengthが使えるから増えても問題なし
953名前は開発中のものです。
2020/01/09(木) 12:12:40.81ID:65C13n6s954名前は開発中のものです。
2020/01/09(木) 12:23:32.35ID:sMXCo4Ih とりあえず動けばいいって感じ?
955名前は開発中のものです。
2020/01/09(木) 12:47:54.85ID:8Z9bXpy1956名前は開発中のものです。
2020/01/09(木) 13:17:02.96ID:AbIkBBD9 あとList型に入れると簡単にあるかないか取れるけど、どうなんだろね
https://i.gyazo.com/b64c1ec457ab732b3122b3b40da4ccd2.png
https://i.gyazo.com/b64c1ec457ab732b3122b3b40da4ccd2.png
957名前は開発中のものです。
2020/01/09(木) 13:17:06.70ID:h4Av5g/u false、trueを入れるときに、変数にして+1、-1しとけばいいやん。0以下なら全部true。
不安なら、たまに時間の許す処理の時にチェックサム。
不安なら、たまに時間の許す処理の時にチェックサム。
958名前は開発中のものです。
2020/01/09(木) 13:17:26.76ID:65C13n6s >>955
ありがとうございます!
この短いコードの中に何故forとifの間に{が必要ないのか、(!b[i])が既にboolを表している等、普通に勉強してたら気付かない事ばかりで尊敬します。。
いつかこういうスマートで格好いいコードが書ける様に頑張ります!
ありがとうございます!
この短いコードの中に何故forとifの間に{が必要ないのか、(!b[i])が既にboolを表している等、普通に勉強してたら気付かない事ばかりで尊敬します。。
いつかこういうスマートで格好いいコードが書ける様に頑張ります!
959名前は開発中のものです。
2020/01/09(木) 15:42:48.73ID:ZRX+0Tcv そこ省略すれば偉いってもんでもないから気をつけてな
コード長くなってくるとこういうとこはすっきり書いたほうが読みやすくはなるけど
コード長くなってくるとこういうとこはすっきり書いたほうが読みやすくはなるけど
960名前は開発中のものです。
2020/01/09(木) 18:15:25.24ID:IB4d3PvK containsで行けるような
bool[] src = {true, true, false, true};
var list = new List<bool>();
list.AddRange(src);
bool item = false;
if (list.Contains(item)) { /////////////////////////////////////←これ
System.Console.WriteLine("{0}が見つかりました", item);
} else {
System.Console.WriteLine("{0}は見つかりませんでした", item);
}
bool[] src = {true, true, false, true};
var list = new List<bool>();
list.AddRange(src);
bool item = false;
if (list.Contains(item)) { /////////////////////////////////////←これ
System.Console.WriteLine("{0}が見つかりました", item);
} else {
System.Console.WriteLine("{0}は見つかりませんでした", item);
}
961名前は開発中のものです。
2020/01/09(木) 21:40:32.44ID:L8tG5HPm >>950
ゲームでLinqは悪手
ゲームでLinqは悪手
962名前は開発中のものです。
2020/01/09(木) 23:26:31.33ID:2OZqFXaj >>945, 946
サンキュー、そういうの教えてもらえるのは、本当に有意義だわ。
自分にはまだ早いので、しばらくベタで悪戦苦闘して経験値つんでからトライするわ。
現在、物理ゲームパッドで遊んでもらう想定で作ってるけど、一応スマホ画面操作に対応しようと思い、
新しい InputSystem で、Canvas の UI ボタンを使ってスマホ画面操作用のコントローラ作ったけど、
一つもコード書かずに物理ゲームパッド想定のゲームにマッピング出来た。InputSystem 凄い。
でもスマホ画面操作でBダッシュジャンプって超絶むずいね、物理コントローラーなら楽勝でBダッシュジャンプ出来るのに…
サンキュー、そういうの教えてもらえるのは、本当に有意義だわ。
自分にはまだ早いので、しばらくベタで悪戦苦闘して経験値つんでからトライするわ。
現在、物理ゲームパッドで遊んでもらう想定で作ってるけど、一応スマホ画面操作に対応しようと思い、
新しい InputSystem で、Canvas の UI ボタンを使ってスマホ画面操作用のコントローラ作ったけど、
一つもコード書かずに物理ゲームパッド想定のゲームにマッピング出来た。InputSystem 凄い。
でもスマホ画面操作でBダッシュジャンプって超絶むずいね、物理コントローラーなら楽勝でBダッシュジャンプ出来るのに…
963名前は開発中のものです。
2020/01/10(金) 11:30:27.01ID:08GLxpkh >>961
よければこれの根拠教えてください
次のhp ではfor reach と大差ないとあるけど、何か他の要因?
https://qiita.com/nskydiving/items/c9c47c1e48ea365f8995
よければこれの根拠教えてください
次のhp ではfor reach と大差ないとあるけど、何か他の要因?
https://qiita.com/nskydiving/items/c9c47c1e48ea365f8995
964名前は開発中のものです。
2020/01/10(金) 12:14:16.98ID:6FaPVqIC965名前は開発中のものです。
2020/01/10(金) 12:38:04.63ID:08GLxpkh そう言うことですか
ガベージ関連だと初心者が考えなくても
まぁ、このスレ的には問題なさそうですね
ガベージ関連だと初心者が考えなくても
まぁ、このスレ的には問題なさそうですね
966名前は開発中のものです。
2020/01/10(金) 12:42:10.82ID:08GLxpkh だとすると「RINQ がゲームで悪手」というよりデリケート関連が全てのプログラムで悪手であって、メモリー関連の改善待ちとなるのかな?
c#のバージョンによる改善待ちになるのか
まぁ将来的な課題でしょうかね
c#のバージョンによる改善待ちになるのか
まぁ将来的な課題でしょうかね
967名前は開発中のものです。
2020/01/10(金) 12:57:56.83ID:5Sf2RA1L デリゲートがってよりも、Linqで色々繋げると色々コピーがされるしIEnum経由して列挙してくのがアレって話じゃないか?
968名前は開発中のものです。
2020/01/10(金) 14:23:25.79ID:6FaPVqIC >>967
IEnumerableは一つずつ取り出して処理する為の機能だから、
複製はされないしチェーンの数だけループ発生したりもしないよ
もちろんToArray()で新規配列は生成されるしOrderBy()でも内部で別のループが生まれてしまうがそれはそういう関数だからな
IEnumerableは一つずつ取り出して処理する為の機能だから、
複製はされないしチェーンの数だけループ発生したりもしないよ
もちろんToArray()で新規配列は生成されるしOrderBy()でも内部で別のループが生まれてしまうがそれはそういう関数だからな
969名前は開発中のものです。
2020/01/10(金) 15:40:25.16ID:5Sf2RA1L >>968
いやもし5段階に組まれてたら下から見るとMoveNext5回呼ばれる事でやっと元のコレクションなりにたどり着くやん
あれインタフェースになってて1番下でのMoveNextでもとのに辿り着くっけ?
いやもし5段階に組まれてたら下から見るとMoveNext5回呼ばれる事でやっと元のコレクションなりにたどり着くやん
あれインタフェースになってて1番下でのMoveNextでもとのに辿り着くっけ?
970名前は開発中のものです。
2020/01/10(金) 18:42:11.72ID:6FaPVqIC >>969
例えばこんなLINQがあるとするだろ
var seq = list.Where(A).Where(B).Where(C);
foreach(var n in seq) Console.WriteLine(n);
内部的にはこの処理と同じ
var tmp = list.GetEnumerator();
while(tmp.MoveNext()){
var n = tmp.Current;
if(!A(n)) continue;
if(!B(n)) continue;
if(!C(n)) continue;
Console.WriteLine(n);
}
取り出した要素をチェーンに繋いである関数に順番に渡してるだけ
要素一つにMoveNextを何回も呼んでるわけじゃない
例えばこんなLINQがあるとするだろ
var seq = list.Where(A).Where(B).Where(C);
foreach(var n in seq) Console.WriteLine(n);
内部的にはこの処理と同じ
var tmp = list.GetEnumerator();
while(tmp.MoveNext()){
var n = tmp.Current;
if(!A(n)) continue;
if(!B(n)) continue;
if(!C(n)) continue;
Console.WriteLine(n);
}
取り出した要素をチェーンに繋いである関数に順番に渡してるだけ
要素一つにMoveNextを何回も呼んでるわけじゃない
971名前は開発中のものです。
2020/01/10(金) 19:15:11.60ID:7KV1Qvxy Linqを許可しておくとRDBMSみたいに組むやついるからな
ゲームでそんな使い方されたら激重だから、使わないで統一するのが正解かと
ゲームでそんな使い方されたら激重だから、使わないで統一するのが正解かと
972名前は開発中のものです。
2020/01/10(金) 19:55:49.34ID:Pn9TT9VK linqの冒険…
973名前は開発中のものです。
2020/01/10(金) 21:28:36.70ID:08GLxpkh974名前は開発中のものです。
2020/01/10(金) 22:12:46.10ID:lJeo0zER 3dでPlatform does not support compute shadersこんなエラーが出たんだがよくわかんないんだけどどういうこと?
ユニティちゃんが原因みたいだけどそれ以上はわからなかった
ユニティちゃんが原因みたいだけどそれ以上はわからなかった
975名前は開発中のものです。
2020/01/10(金) 22:17:28.65ID:Fenu7wQ/ そのシェーダーを積んでないから描画できないぞゴルァ、かと。
976名前は開発中のものです。
2020/01/10(金) 22:52:24.52ID:L/Emtw4P >>970
そだっけ?その例だとWhereの第一引数に対してMoveNextすることでさらにその上のWhereが返すIEnumにアクセスってなるんじゃ?
Linqのコンパイラでそんな最適化しないでしょ
そだっけ?その例だとWhereの第一引数に対してMoveNextすることでさらにその上のWhereが返すIEnumにアクセスってなるんじゃ?
Linqのコンパイラでそんな最適化しないでしょ
977名前は開発中のものです。
2020/01/10(金) 23:26:02.35ID:XdY5fR78 >>976
遅延評価というものがあるし、そもそもWhereが返すのはIEnumでなく値そのものだからそこのところを誤解してる
遅延評価というものがあるし、そもそもWhereが返すのはIEnumでなく値そのものだからそこのところを誤解してる
978名前は開発中のものです。
2020/01/10(金) 23:40:30.02ID:lJeo0zER979名前は開発中のものです。
2020/01/11(土) 00:03:09.69ID:L2PVl/EJ Platformがなんちゃらっつってんだからそのへんじゃないの
980名前は開発中のものです。
2020/01/11(土) 00:19:49.48ID:MByoB+15 ビルドターゲットをWebGL辺りに変えたんだろ
あれはCompute Shaderが使えないからそんな感じのエラーが出る
あれはCompute Shaderが使えないからそんな感じのエラーが出る
981名前は開発中のものです。
2020/01/11(土) 01:41:24.01ID:1/8GPuaw982名前は開発中のものです。
2020/01/11(土) 01:45:41.87ID:1/8GPuaw WhereがIEnum返さなかったら次の人どうやって列挙するの
983名前は開発中のものです。
2020/01/11(土) 01:49:41.69ID:1/8GPuaw >>977
ついでに言うと遅延評価ってのはまさに後からMoveNextした時に評価されることを指すと思うぞこの場合
ついでに言うと遅延評価ってのはまさに後からMoveNextした時に評価されることを指すと思うぞこの場合
984名前は開発中のものです。
2020/01/11(土) 02:03:49.82ID:eNMw2FnY >>981-983
実行時の話な
var seq = list.Where(...)が返すのはIEnumだが、
実際にforeach(var n in seq)で遅延評価されるときには一つずつの値を返してるし、それが次のWhereに送られてる
ループの位置を見てみろ、配列は一回しか回ってないだろ?
実行時の話な
var seq = list.Where(...)が返すのはIEnumだが、
実際にforeach(var n in seq)で遅延評価されるときには一つずつの値を返してるし、それが次のWhereに送られてる
ループの位置を見てみろ、配列は一回しか回ってないだろ?
985名前は開発中のものです。
2020/01/11(土) 02:17:15.69ID:1/8GPuaw >>984
いやだからその展開式みたいに実行時コードがなるって話あったっけ?
こんぱいられべるでLINQ特化で最適化しないとそうはできないと思うけど、いや俺が知らないだけかもなのでこう最適化されるよーってソースあるなら教えてくれ
いやだからその展開式みたいに実行時コードがなるって話あったっけ?
こんぱいられべるでLINQ特化で最適化しないとそうはできないと思うけど、いや俺が知らないだけかもなのでこう最適化されるよーってソースあるなら教えてくれ
986名前は開発中のものです。
2020/01/11(土) 02:34:07.57ID:eNMw2FnY >>985
yieldのごく普通の振る舞いなんだからイテレーター使ったことあるなら分かるだろ?
ちなみに具体的なソースはこれな
https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/Where.cs
yieldのごく普通の振る舞いなんだからイテレーター使ったことあるなら分かるだろ?
ちなみに具体的なソースはこれな
https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/Where.cs
987名前は開発中のものです。
2020/01/11(土) 03:28:33.54ID:MfNXfEnO コルーチンについて質問させてください。
void Start() {
StartCoroutine(A());
}
void Update()
{
Debug.Log("update");
}
IEnumerator A()
{
Debug.Log("A start");
for (int i = 0; i < 10; i++)
{
Debug.Log("A:"+i);
yield return null;
}
}
とやって動かすと、ログが
A Start
A:0
start end
update
update
A:1
になるんですが、最初のUpdateのあとにコルーチンが実行されないのはどうしてですか?
void Start() {
StartCoroutine(A());
}
void Update()
{
Debug.Log("update");
}
IEnumerator A()
{
Debug.Log("A start");
for (int i = 0; i < 10; i++)
{
Debug.Log("A:"+i);
yield return null;
}
}
とやって動かすと、ログが
A Start
A:0
start end
update
update
A:1
になるんですが、最初のUpdateのあとにコルーチンが実行されないのはどうしてですか?
988名前は開発中のものです。
2020/01/11(土) 03:42:34.65ID:eNMw2FnY989名前は開発中のものです。
2020/01/11(土) 11:12:22.12ID:1/8GPuaw >>988
いやごめん、むしろお前がなんでそんな理解してるのか分からん。
それはイテレーターを書くためのシンタックスシュガーであって、結局はEnumeから列挙するためにMoveMextやら何やら呼ぶことになると思うが。
そもそもお前が言ってるようなループなんてコード上は展開されないだろ
あくまでもEnumeのMoveNextやらなんやらで列挙されてくだけで。つか自分があげたWhereのどこ見りゃ途中のものも全部前のが返すEnumeを第一引数として受け取りEnumeを返すってのが明らかだと思うが。
その上でWhereを続けた時などにC#上もしくはコンパイラ生成時に最適化がなされる事はあり得るかも?とは思うけどそう言うこと言いたいんじゃないよね
いやごめん、むしろお前がなんでそんな理解してるのか分からん。
それはイテレーターを書くためのシンタックスシュガーであって、結局はEnumeから列挙するためにMoveMextやら何やら呼ぶことになると思うが。
そもそもお前が言ってるようなループなんてコード上は展開されないだろ
あくまでもEnumeのMoveNextやらなんやらで列挙されてくだけで。つか自分があげたWhereのどこ見りゃ途中のものも全部前のが返すEnumeを第一引数として受け取りEnumeを返すってのが明らかだと思うが。
その上でWhereを続けた時などにC#上もしくはコンパイラ生成時に最適化がなされる事はあり得るかも?とは思うけどそう言うこと言いたいんじゃないよね
990名前は開発中のものです。
2020/01/11(土) 11:45:27.42ID:GoAReVTm >>987
>最初のUpdateのあとにコルーチンが実行されないのは
最初のUpdateはスタート直後に動くんだけど、Updateの間隔は不定なので、最初のスタートのオーバーヘッドがUpdateを遅延させてしまい2回ログが出力されたのかと思う
これを修正するには
Update を FixedUpdate にし
yield return null を yield return new WaitForFixedUpdate() にする事で解決は出来る
UpdateとFixedUpdate の動作の違いによる処理の仕様なのかな、一言で言うと
>最初のUpdateのあとにコルーチンが実行されないのは
最初のUpdateはスタート直後に動くんだけど、Updateの間隔は不定なので、最初のスタートのオーバーヘッドがUpdateを遅延させてしまい2回ログが出力されたのかと思う
これを修正するには
Update を FixedUpdate にし
yield return null を yield return new WaitForFixedUpdate() にする事で解決は出来る
UpdateとFixedUpdate の動作の違いによる処理の仕様なのかな、一言で言うと
991名前は開発中のものです。
2020/01/11(土) 12:19:43.31ID:eNMw2FnY992名前は開発中のものです。
2020/01/11(土) 12:28:16.42ID:SODcWRcR オーケー、乳首相撲で決めよう
二人とも乳首出して
二人とも乳首出して
993名前は開発中のものです。
2020/01/11(土) 12:34:46.58ID:1/8GPuaw >>991
最初はなんか最適化かなんか俺の知らないのあるの?って感じだったけど、今はなんか勘違いしてる人に諭してあげようかなと思ったけど無駄っぽいからもうどうでもいいかな
最後に言っとくけど、おまいのあげたイテレーターのソース、foreachが一つしか展開されないとか言ってるけど思いっっっっっきり勘違いしてると思うよ
Whereのイテレータ内で展開してるforeachはソースのイナミュレーターを回してるけどそれは前のWhereが返すイナミュラブルを回してて、それはまた別にforeach x展開してるイテレーターによるものだよ。
と言ってそれはシンタックスシュガーによるものだからforeachが何重になってると言うのともまた違う
最初はなんか最適化かなんか俺の知らないのあるの?って感じだったけど、今はなんか勘違いしてる人に諭してあげようかなと思ったけど無駄っぽいからもうどうでもいいかな
最後に言っとくけど、おまいのあげたイテレーターのソース、foreachが一つしか展開されないとか言ってるけど思いっっっっっきり勘違いしてると思うよ
Whereのイテレータ内で展開してるforeachはソースのイナミュレーターを回してるけどそれは前のWhereが返すイナミュラブルを回してて、それはまた別にforeach x展開してるイテレーターによるものだよ。
と言ってそれはシンタックスシュガーによるものだからforeachが何重になってると言うのともまた違う
994名前は開発中のものです。
2020/01/11(土) 12:40:12.52ID:Y9mLoGJE 初心者スレでイキんなやハゲ
995名前は開発中のものです。
2020/01/11(土) 12:46:12.11ID:wPvGtAaQ 敵に攻撃するとダメージが数字でポップアップされるという処理を
var pos = 対象の敵オブジェクト.GetComponent<Transform>()して、
ダメージのテキストをプレハブ化した物をInstantiate(プレハブ, pos)で生成したのですが
ダメージのプレハブが敵オブジェクトの子になっているので、敵オブジェクトのHPが0になってDestroyされた瞬間に一緒に消えてしまいます
生成するプレハブの位置を任意のゲームオブジェクトのtransformに重ねるが、子にはしないみたいな事はどうすれば出来るのでしょうか?
transformから位置(座標?)だけを取得する方法がわかれば応用が色々出来そうなのですが
var pos = 対象の敵オブジェクト.GetComponent<Transform>()して、
ダメージのテキストをプレハブ化した物をInstantiate(プレハブ, pos)で生成したのですが
ダメージのプレハブが敵オブジェクトの子になっているので、敵オブジェクトのHPが0になってDestroyされた瞬間に一緒に消えてしまいます
生成するプレハブの位置を任意のゲームオブジェクトのtransformに重ねるが、子にはしないみたいな事はどうすれば出来るのでしょうか?
transformから位置(座標?)だけを取得する方法がわかれば応用が色々出来そうなのですが
996名前は開発中のものです。
2020/01/11(土) 13:01:07.21ID:eNMw2FnY >>993
だろ、やっぱり入れ子になってると勘違いしてるよな?
サンプルソース書いてあげたから見てみな
IL_009aのループ一度しか無いし中身の取り出しも一回だけ
その後でLINQメソッドに渡されたデリゲートを適用してそのままループ内の処理に進んでる
https://imgur.com/a/E99qR2O
だろ、やっぱり入れ子になってると勘違いしてるよな?
サンプルソース書いてあげたから見てみな
IL_009aのループ一度しか無いし中身の取り出しも一回だけ
その後でLINQメソッドに渡されたデリゲートを適用してそのままループ内の処理に進んでる
https://imgur.com/a/E99qR2O
997名前は開発中のものです。
2020/01/11(土) 13:08:04.10ID:ftB0znZP998名前は開発中のものです。
2020/01/11(土) 13:13:14.92ID:GoAReVTm >>995
Instantiateする際に
GameObject obj =Instantiate(プレハブ, pos)
これでGameObject取得できるので、その後すぐに親を外す
obj.transform.paerent =null
これで敵の子として生成した後に独立する
Instantiateする際に
GameObject obj =Instantiate(プレハブ, pos)
これでGameObject取得できるので、その後すぐに親を外す
obj.transform.paerent =null
これで敵の子として生成した後に独立する
999名前は開発中のものです。
2020/01/11(土) 13:13:52.35ID:1/8GPuaw1000名前は開発中のものです。
2020/01/11(土) 13:17:05.48ID:eNMw2FnY 頭悪い子だな
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 247日 22時間 41分 28秒
新しいスレッドを立ててください。
life time: 247日 22時間 41分 28秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 【スクープ】中居正広が女性との間に重大トラブル、巨額の解決金を支払う 重病から復帰後の会食で深刻な問題が発生 ★31 [Ailuropoda melanoleuca★]
- 【札幌】ライブのため…小学生の息子を約3日間自宅に放置 脱水症・低血糖にさせた疑い 母親(34)逮捕 ★3 [煮卵★]
- ホンダ日産 経営統合へ 新会社トップはホンダ指名の取締役から ★2 [蚤の市★]
- 【芸能】女優・川島海荷、結婚を発表! お相手は競泳・中村克 「これからも変わらず頑張っていきたい」 [冬月記者★]
- 警察庁長官、悪質ホスト「違法ビジネスの解体」指示 全国保安関係課長会議 [少考さん★]
- 日本の家どんどん狭く ステルス値上げで30年前の水準に ★2 [蚤の市★]