[表示 : 全て 最新50 1-99 101- 201- 301- 2chのread.cgiへ]
Update time : 05/09 18:44 / Filesize : 126 KB / Number-of Response : 339
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

タスクシステム総合スレ part4



1 名前:名前は開発中のものです。 mailto:sage [2009/02/01(日) 12:38:10 ID:rVEgp4cM]
タスクシステムについての議論、相談、質問、雑談などのスレです

part3 pc11.2ch.net/test/read.cgi/gamedev/1226199100/
part2 pc11.2ch.net/test/read.cgi/gamedev/1196711513/
part1 pc11.2ch.net/test/read.cgi/gamedev/1173708588/

283 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 17:55:52 ID:iVlGRjYy]
IGDAあたりがタスクシステムはこういうもの
って定義してくれりゃ…

IGDAってセミナー案内以外何かやってるんか?

284 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 18:54:27 ID:2s89IpB8]
やねうらお大先生は、年収数千万の天才プログラマなんだから
ゲー専みたいな馬鹿の集まり、相手にしなくてもいいんじゃね?

285 名前:名前は開発中のものです。 [2009/02/08(日) 19:28:37 ID:/7HQNkAm]
ゲー専みたいな馬鹿の集まりを金づるにしてるから年収数千万なんだよ
俺が気に食わないのはやねうらお本人よりも
それを無自覚に賞賛している信者連中の方
考えることを放棄している
三年毎に取り巻き信者が一掃されてるのが笑える
難しくて凄そうで権威のあるやねうらお大先生の言うことを
理解したような風に賞賛すれば俺も近いレベルの有能プログラマになれるんだ
といったところか、おこぼれクレクレ君
本当に理解してないからメリットとデメリットも知らないし
適用すべき箇所がどこなのかも知らない
だからとりあえず使ってみて、満足して
布教して、さらに満足する
これをこうやったらこうなってここが良くなるってのが全くない
手に入れたぞ、使うぞで完結している
それを自覚できないから、多少難しい観念を理解することはできない
つまり3Dは複雑すぎて手が出ない、又はすぐに挫折する
でも俺優秀俺天才って言いたい、そう他人に思ってもらいたい
その願望をかなえるための夢のシステム
それこそがタスクシステム
男のロマン
巨乳大好き
おっぱい最高
そういうことだ

286 名前:名前は開発中のものです。 [2009/02/08(日) 19:33:57 ID:/7HQNkAm]
ゲー専の扱いがひどいなと思ったので追記しておくけど
ゲー専にも学校ごとに二、三人ぐらいは優秀なのがいるよ
逆に優秀な大学出てても、ろくにプログラムかけないで口だけのもたくさんいる
IPAの岡田くんは最高だがな

287 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 20:16:29 ID:9yKZ63FM]
>>282
>ただ長く理解しづらいまわりくどいわけのわからないことを書いて惑わすだけ
>定義も何もない、ただそれっぽいことを誰にも理解できないように書いて
>適当に権威のありそうなものを付け加えて
>ごまかしているだけ
あるねー
そういうのやねうらおだけじゃなかったけどね
昔は多少わかりにくくても考えながら聞いてやったけど
いまって時代が変わったってのもあるよね
もう別に奴等の言うことをわざわざ理解してやる義理も必要もないし
情報が氾濫しすぎてて何かしゃべっても説明責任はてめぇの方にあんだよバーカ
で終わる話にもなってるからそういうのに騙される奴も減ってきたよね

相手を煙にまける環境っていうのは相手側が説明を理解しなきゃいけない立場であるときしか役に立たない
いまは2chですらそういうの華麗にスルーされて終わりだしねw
前スレでもどっかのエライ人系(英文w)のリンク貼ったレスは全部無視だしねw

288 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 20:33:36 ID:VfZ7TaKb]
ID:/7HQNkAm
独演会はもう終わったのか

まぁしかし、
奴のマイナスの社会的影響は大だな。
奴の原稿にダメ出し出来ない出版社も無能だが。

289 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 21:14:56 ID:PqcaRaMD]
なぜタスクシステムごときでここまで荒れるんだ?
ゲームを一本でも自作したことあるやつなら何らかのタスク管理システムは作ったことあるだろ。
で、このシステムはここが便利だったとかダメだったとか、いろいろなジャンル作ってく中で
洗練されたシステムが作れるようになってくもんだ。その程度のもの。

290 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 21:16:46 ID:+gs/6E3g]
part3から追ってる限り壮絶なアンチがいるみたい

291 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 21:34:21 ID:L1xVTjvz]
引数クンx2とobserverクンがひとりいるっぽい。



292 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 21:49:45 ID:150rW63B]
・タスクという名前が気に入らない
・ゲームオブジェクトを抽象化できない
・タスクシステムを使っている現場でひどい目にあった
アンチの理由は大体こんなとこかな。

3番目は稀に、タスクシステムを使わない、自分なりの方法を確立してる人もいるっぽいけど、
それを啓蒙するわけでもなく、罵詈雑言に終始しているので、まあ、同じ穴のムジナかと。

293 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 21:52:43 ID:eFHTuswi]
>>289
そうそう、そうなんだよね。
いいとこはのこして、今のゲーム制作で問題あるなら変えていけばいいだけのことで、それを何と呼ぼうがどうでもいい。
そんなことすら理解できないバカが一人か二人騒いでるだけなんじゃないの?

294 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 22:04:40 ID:gynQYFxx]
そうそう、そうなんだよねって、よっぽど気があうのね?
おまいは井上香美か?

295 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 22:13:16 ID:mZ7S8TgR]
ポエマーは愛されてるな

296 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 22:22:01 ID:VfZ7TaKb]
・問題
・解決策としてのフレームワークの仕様
・フレームワークの設計と運用ルールと実装
分けて考える必要がある。

アンチは、もっぱら実装の局部的な問題をもってして、
全部を否定しようとしているだけ。
基地害オナニー独り芝居。

タスクシステム使って酷い目にあったっていうのは、
単に運用ルールを確立・周知していなかったからじゃないのか、という気がする。

297 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 22:29:49 ID:9yKZ63FM]
じゃあ、大局的なこととして

タスクシステムを使うことによって何のどんな問題が解決するの?

これをはっきりさせてよ
っていうと全くまともなレスが帰ってこないからなw
んで>>282の内容に戻るとw

298 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 22:31:54 ID:iemYL3IE]
引数で渡すのもきめえ。
キャストするのもきめえ。
Setter/Getter作るのもきめえ。
グローバルで通信するのもきめえ。
ピザな神に任せるのもきめえ。

てな感じで同じく悩み続けてる俺にはここ最近の話はとても参考になってる。
だからもっとやれ。ただし脳内じゃなくてちゃんとわかるようなコードつけてな。

299 名前:名前は開発中のものです。 [2009/02/08(日) 22:37:30 ID:/7HQNkAm]
いやいや
俺はごく基本的で大局的な見解しか示してない
局部的な話は一切していない
さぁ、タスクシステムを大局的に語るがよい
又は3Dでタスクシステムを使うがよいww
偉そうな名前を持った偽科学は消毒だー

300 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 22:40:34 ID:9yKZ63FM]
>>298
オブジェクト指向の常識に従う限り
ゲームのシーンクラスの肥大化を防ぐ手はねーよ
トリッキーな解釈をして関連をクラスにするとか
ってのは一つの逃げ道かもしれねーな
ただ、それをしたところで俺の上のほうのレス(ID:lLkuERdr)を読んでもらえば分かると思うが
書かなければならない処理の絶対数はどんな組み方をしても変わらない

俺はこれでも10年以上やってきたので設計思想で
できることとできないことが判別できるようになった
だから迷いがなくタスクシステムを糞だと言い切れる

もし、他の可能性を探すならオブジェクト指向を覆すような新しい設計思想が必要

301 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 22:46:01 ID:L1xVTjvz]
>297
オマエは煽るふりをして自分の理解できないところを質問しているだけだろwww



302 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 22:48:37 ID:L1xVTjvz]
>300
関連の総数が爆発するのは、不味い設計しているからだ。
そういうのはそもそもゲームの仕様からして不味い。
それをそのまま唯々諾々と実装するようなID:9yKZ63FM=ID:lLkuERdrは馬鹿の見本。

303 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 22:48:38 ID:9yKZ63FM]
>>301
いままでこれが説明できた人間はいないぜ
無理すんなよw

304 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 22:49:57 ID:VfZ7TaKb]
>>297
「大局的」の意味がよく分からんが。
あくまで、たとえばの話として・・・

○問題設定
プレイヤーキャラを常に画面上に存在させておき、プレイヤーの操作に反応させる。
一定時間ごとに、ライバル・キャラを画面上に発生・消滅させる。
キャラ接触の結果として、随時、火花を画面中に発生させる。
火花は発生後、画面上でアニメーションさせて1秒後に消滅させる。
ライバル・キャラ、火花は複数同時に存在し得るものとする。
画面上での全キャラのFPS当たり移動スピードや、火花アニメのFPS当たり状態遷移スピードは、固定とする。
火花は画面上最前面に表示されるようにする。
(その他細かいルールは割愛)

この問題を解決する方法の一つとして、タスクシステムの存在意義がある。

ところで問題は、それこそ色々あるから、そんなこと聞くだけ野暮だと思うが。

305 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 22:50:00 ID:L1xVTjvz]
>303
自分が知らないものは存在しないも同然かww

306 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 22:50:23 ID:9yKZ63FM]
>>302
は?もうお前のくだらない戯言に騙される奴はいないんだよ
オブジェクトが20個あってそれぞれが影響しあうなら
当然それだけの処理がいるの
設計をどうこねくりまわしたってその数が減ることは物理的にないんだよw

307 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 22:54:09 ID:PqcaRaMD]
>>296
>タスクシステムを使うことによって何のどんな問題が解決するの?
タスクを管理できる。ただそれだけ。
タスクシステムを使わずにタスクをどーやって管理するの?
switch/caseかな?

まぁ、どんな方法だろうとタスク管理をするシステムをタスクシステムというんだから
ゲームにタスクがある以上タスクシステムが無いというのはありえないと思うが。

308 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 22:58:14 ID:9yKZ63FM]
>>305
は?ちょっと聞くけど
使わないで組んだこと1度でもあるの?

>>307
頭悪すぎ
まず、タスクシステム使わなきゃタスクって単語すらでない
のに何が聞きたいの?
タスクシステム使う前提で話してどーすんだよ
理屈でモノを考える力をどっかに捨ててきたのか?お前

309 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 23:00:15 ID:L1xVTjvz]
>306
> 設計をどうこねくりまわしたってその数が減ることは物理的にないんだよw

キサマの設計のクソさ加減は、>121見れば判るからwwwww

310 名前:名前は開発中のものです。 [2009/02/08(日) 23:00:40 ID:/7HQNkAm]
>>304
いや、タコスシステムとやらを使わなくても書けるだろ
タスコシステム使ったらどういう恩恵が得られるのかってーのに興味があるんだよ
普通の人々は
早くなるーだの、コードが短くなるーだの、読みやすくなるーだの、拡張しやすいーだの
そういうことを聞いてるわけだ
書けるんだよ書けるんだよって、書ければいいのならHSP使った方が手っ取り早い

311 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 23:01:44 ID:PqcaRaMD]
>>308
>まず、タスクシステム使わなきゃタスクって単語すらでない
OSのマルチタスクってタスクシステムの話かな?
タスクってのは「処理の単位」以上の意味は無いから
ゲームに処理がある限り「タスク」は存在するんだけどね。



312 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 23:01:46 ID:DctRL+eT]
ID:9yKZ63FMの主張は、「mediator」と一言言えば済む話に見えるけど
なんか違うことを言ってるんだろうか

313 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 23:02:42 ID:3SPyMiZ9]
>>307
タスクとかいう言葉を何の定義もなく使うところがキモいです。
たとえば>>304を実現するのに普通の人はタスクなんて使わないので
管理の必要もないわけでさ。

と書こうとしたら>>308に書かれてた。

314 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 23:08:29 ID:150rW63B]
>>306は、
マリオがクリボーに触れたときの処理と、ノコノコに触れたときの処理は別々に書くのか。

315 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 23:08:51 ID:PqcaRaMD]
>>313
ギャラがやゼビウス時代の古典的ナムコタスクシステム(関数ポインタ+ワーク)や
マルチコアのジョブ時間管理やりソース共有管理まで行うMTフレームワークレベルのものも
広義のタスクシステムなんだけど。

これらを一切使わずに>>304を実現できる普通の人っているのか?

それとも何か特定の1つのタスクシステム実装についてのみ語っているのか?

316 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 23:15:44 ID:buJH1feo]
>>315
オレはアンチじゃないけど
「広義のタスク」が何を指すのか不明では?

>>49の「タスクとはすなわちフレームをまたいだ継続的処理の抽象化」を言ってる?

317 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 23:16:26 ID:rDw772wv]
広義の話するなら広義と書こうぜ。
収拾つかなくなるだろ。

古典的ナムコタスクシステム(関数ポインタ+ワーク)

これをウンコを管理するウンコシステムと呼んで区別しよう。
話はそれからだ。
アンチが叩いてるのはこのウンコの部分なんだから。

318 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 23:17:51 ID:L1xVTjvz]
>317
> 古典的ナムコタスクシステム(関数ポインタ+ワーク)

『コンテキスト保存によるフレーム間の継続性』が抜けてるぞ。

319 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 23:19:54 ID:VfZ7TaKb]
>>310
トムヤムクンプロセッサってのは聞いたことしかないから、よく知らん。
結局、並列動作処理フレームワークの実装がブラックボックス依存なんじゃねえの、それって。
ブラックボックス依存で構わないんだったら、ネガキャンするなと言いたい。

320 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 23:23:26 ID:+Lu8guC0]
とりあえず、描画タイミング、ゲームオブジェクトの移動、当たり判定なんかの処理は一定間隔で行いたい。
だから、単純なゲームのとあるシーンは以下のようになる。
while(1) {
  描画
  ゲームオブジェクトの移動
  当たり判定
  時間調整
}

次にタイトル画面を表示するシーンが欲しいなと思ったら、もう一つループを追加する
while(1) {
  描画(タイトル画面表示)
  キー入力
  時間調整
}

シーンの数だけループができた。
じゃあ、このループを一般化して、ハードコーディングではなく、外部からのスクリプト読み込みなどで
動的に生成できないかと悩んでみると、タスクシステム(っぽい何か)に行き着いた。


321 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 23:23:57 ID:DctRL+eT]
>>318
ただのFSMではなくコルーチン&スケジューラが実装されていたのなら
そう書いてもらったほうが分かりやすい



322 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 23:28:08 ID:xD+TYCTG]
>>298
指標をいくつか決めて実装手法ごとに○×付け。一番○が多いのを使う。
これでいいんじゃね?

どういった表現方法使ったってどうせ全部「データの受け渡し」であることには変わりない。
概念的には一つのことを実現しようとしてるだけ。

もし引数の概念が無い言語ならグローバル変数使わざるを得ないし、
グローバル変数の概念が無い言語なら引数使わざるを得ないかもしれない。
この辺の手法の差異なんて言語に左右されるような瑣末なこと。

C++ではたまたまいろいろな手法が利用可能だけども
概念的には「データの受け渡し」だけが目的なんだから、
CPU使用時間とかメモリ使用量とかソース可読性とかそういった瑣末な指標によって選択すればいい。
「C++におけるデータ受け渡しの実装手法はどれが一番概念的に優れてるか」とか悩むのは
そもそも問いかけの選択からして間違ってる。どれも概念的には「データの受け渡し」で同一のもの。比較不可。
優劣が付けられるのは前述の瑣末な指標で比較した場合のみ。

C++がやれること多すぎて悩むの疲れたのならいっそもっと選択肢少ない言語に変えてみたら?
Cとかに。わりと本気で。
#レスなげえ、俺きめえ。ごめんね

323 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 23:36:38 ID:buJH1feo]
C縛りは問題の本質を考える上でいいと思うが
納得しない人たちもいると思う


オレはC++大好きデザパタ大好きだが、自戒をこめてこの言葉を君たちに

C++ はひどい言語だ。これは、多くの平均以下のプログラマーが使ってるために
さらに輪をかけてゲロゲロになっていて、どうしようもないゴミが簡単に生産されるようになってる。
正直いって、C を選ぶ理由が C++ プログラマーを追っぱらうため *だけ* だったとしても、
それ自体、C を使う強力な理由になりうる。
-- Linus Torvalds

324 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 23:36:54 ID:VfZ7TaKb]
「ホットスーププロセッサ」・・・チッ、気取った名前付けやがって。
「タスクシステム」を批判できる立場にねーだろ。

325 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 23:42:17 ID:L1xVTjvz]
>324
いやいや、作ったソフトにどんな名前をつけるかは作者の権利だ。
それについてどうこう言うのと、『タスクシステム』という名前についてアレコレ言うのは
違う気がするぞ。

326 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 23:44:14 ID:VfZ7TaKb]
>>325
悪い、ちょい嫉妬しただけだ。
大人げなかったな。

327 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 23:46:18 ID:L1xVTjvz]
いや、落ち着いて逝こうぜ。

328 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 23:48:32 ID:iemYL3IE]
>>322
確かになー。
本当に悩むべきはそんなところじゃねーだろーっていつも頭では思うんだけど、
「もし理想のやり方が見つかれば、二度と悩まなくて済む」って甘い罠に取りつかれちゃうんだな。

つーかなんかタスクシステムに限った話じゃなくなってるな。
↓こっちの話題だなすまん。

ゲームにおけるデータ構造・クラス設計・パターン2
pc11.2ch.net/test/read.cgi/gamedev/1211544659/

329 名前:名前は開発中のものです。 [2009/02/08(日) 23:49:52 ID:/7HQNkAm]
タスクシステムとやらにこだわる人は
HSP使った方がいいよ、資源の無駄
かっこつけてC++なんて使う意味ないって
俺かっこいい超天才C++使いこなす俺超天才って言って
一ヶ月かけて作ったゲームも
HSPなら三日で作れるから
所詮タスクシステムなんてその程度
DSL的アプローチとしてはHSPの方が有益
タスクシステムはうんこ
うんこに指差してうんこって言って何が悪い
これはうんこじゃないやいって言ったところで
それはうんこだ
うんこうんこ

330 名前:名前は開発中のものです。 mailto:sage [2009/02/08(日) 23:54:43 ID:L1xVTjvz]
あぁ、ウンコが何か吠えているw

331 名前:名前は開発中のものです。 mailto:sage [2009/02/09(月) 00:03:05 ID:jAkDZVno]
>>328
いっぺん表作っちゃえば二度と悩まなくて済むよ
処理時間短縮重視ならこれ、メモリ使用量極小を狙うならこれ、
とかって簡単に決定できる

まぁ、大体PCならメモリとかCPUなんて潤沢に使えるから気にせず
コードの可読性だけでさくっと決めていい気がするけど



332 名前:名前は開発中のものです。 mailto:sage [2009/02/09(月) 00:28:43 ID:xIvd3PJC]
>>315
普通にできるだろ
馬鹿かお前大丈夫か?
ていうか一度でも組んでみてから言ってくれよ

つーか、お前、タスクシステム云々がどうとかそういうところこだわる前に
プログラマとしてヤバイだろw

333 名前:名前は開発中のものです。 mailto:sage [2009/02/09(月) 00:54:39 ID:rrMBb3Sk]
実際HSPでもシューティングゲームぐらい作れるしな。

334 名前:名前は開発中のものです。 mailto:sage [2009/02/09(月) 01:34:23 ID:K+aHd4rk]
HSPで済むならそれを使っておけばいいんだよ。
適材適所。

335 名前:名前は開発中のものです。 mailto:sage [2009/02/09(月) 01:44:30 ID:Tt5KtR55]
>>315
なーにが広義のタスクシステムだ。バッカじゃねーの?このカッペ野郎
毎度毎度テメェの都合でローカル用語の解釈を変えてんじゃねー
あと"ジョブ時間管理"とか訳のわかんねー用語を発明すんな

お前いつもそんなふうに新しい用語をクリエイトしながら他人とお話しするの?



336 名前:名前は開発中のものです。 mailto:sage [2009/02/09(月) 07:48:20 ID:tQgf226p]
>>320
タイトル画面や戦闘シーンは、相互依存がほとんどなく、インスタンス数もたかが知れてる。また処理パターンが仕様変更で変わる可能性がある。

そういう用途には、std::list<> に virtual void exec() だけ実装したクラスのインスタンスを入れておいて、定期的に呼び出してやれば良い。システムと呼ぶ程のモノじゃないがな。

一方、プレイヤーや敵キャラなどは、上の前提条件が成り立たない。相互依存が多く、処理も一度「移動、ヒット判定、死亡判定」と決めたら、まず変更しない。
困難なポイントが違うので、解決策も必然的に変わってくる。

337 名前:名前は開発中のものです。 mailto:sage [2009/02/09(月) 12:40:04 ID:Q7FeorJ2]
>>336

これでFA。

338 名前:名前は開発中のものです。 mailto:sage [2009/02/09(月) 13:30:04 ID:DGIHyZBW]
>>335
>あと"ジョブ時間管理"とか訳のわかんねー用語を発明すんな
まだ君の頭では理解できないことかもしれないけど
”MTフレームワーク”でググって勉強してみれば意味が分かるかもね…







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

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

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