新バージョンZero

Zeroが公開されたので早速触ってみました。
単にプレイヤーとしての部分は特に私が触れる必要もなく他に情報あふれるでしょうから、ニワン語関連の部分だけ書いていきます。

動画の拡大

最も懸念されいた座標ずれの問題ですが、基本座標を従来通りの640*360とし、864*486はその拡大表示とすることで対応しているようです。(縮小版も同様)
よくよく考えればこれは以前のバージョンから実績があって、昔もフルスクリーン表示およびフルブラウザ表示において同じ事をしていてちゃんと動作もしていたので、心配する必要もなかったなという感じです。
ただし・・・(以下、下の「バグ&問題」の項目に続く)

余白領域

動画の再生画面の余白領域(動画の上下左右に入る黒帯)がなくなったことでその意味の座標ずれは起きています。
というのは実はちょっと不正確で・・・(以下、下の「バグ&問題」の項目に続く)

パフォーマンス

特に軽くも重くもなっていないようです? がっかりですな・・・。
ちなみに描画更新のFPSも20FPS。これは旧プレイヤーと同じ数値です。

NIVAの動作

「おおまかには」ちゃんと動いているようです。
ただし・・・(以下、下の「バグ&問題」の項目に続く)

バグ&問題

※まだほんのさわりしか検証していません。(さわりしか検証してないのに色々問題見つかったとも言う)

■余白の有無
上で余白領域がなくなったと書きましたが、これは864*486(大画面)で表示している場合の話。640*360(中画面)に切り替えると今まで通り余白は存在します
そのため、Y座標の「0」が動画の上端になったりならなかったりと不定になってしまっています。
この問題は一見今までもあったこと(旧プレイヤーも4:3動画と16:9動画で上下の余白があったりなかったりしたのでY座標がずれた)のですが、今回問題なのはこれがユーザーの任意の切替で起きるということ。
旧プレイヤーの問題は、うpした動画のサイズ自体は固定であるためその動画のサイズに合わせて座標を一意に決めてしまえばよかったです。しかし今回はユーザーの任意選択であるため、うp主側では余白があるかないかは判定(指定)不可能です。そのため、ユーザーの表示切替によってY方向の位置ずれが起きるという問題が発生します。

ちなみに復習ですが、旧プレイヤー(および新プレイヤーの中画面表示)におけるニワン語の座標基準はX方向は余白を含まない、Y方向は余白を含む、となっています。



※クリックで原寸
↓検証コード

0::/isWide = true;
0::/drawShape(shape:"rect", width:30, height:30, y:0, pos:"ue", color:0x00FF00);

■864*486におけるX座標のずれ
これは単純にバグかと思いますが、X=0を指定した際の位置が、中画面の場合は正しく動画の左端になるのですが、大画面の場合、中画面ではあった余白分の逆分だけ内側にずれてます。
多分この一文だけで、どこのロジックをどう間違ったのかは分かりますよね? 中の人。

この問題が起きるのは16:9の動画の場合のみです。4:3の動画では起きません



※クリックで原寸
↓検証コード

0::/isWide = true;
0::/a = drawText(text:"●", size:30, x:0, y:0, pos:"hidari ue", color:0x00FF00);
0::/b = drawShape(shape:"rect", width:30, height:30, x:610, y:0, pos:"hidari ue", color:0xFF0000);

【注】●が微妙に左端に合ってないのはフォントの実サイズの問題でありこれは当然の仕様です。

■表示オブジェクトの残像
表示オブジェクト(drawText、drawShape)を表示後、変化を加えた場合、最初に作り描画したものが描画上は残像として残り続けるようです。(オブジェクト自体が残るわけではないです)
そのオブジェクトへの変化(プロパティの書き換え)も残像には適用されないため、visible = falseも適用できず、結果消せずにずっと残り続けます。

※クリックで原寸
↓検証コード

0::/isWide = true;
0::/a = drawText(text:"●", size:30, x:0, y:0, pos:"hidari ue", color:0x00FF00);
0::/d = 1; i = 0; while_kari(i < 300, timer(timer:i * 0.01, then:a.x += d; a.y += d); i++);
3::/a.visible = false;

ただ、試してみたところこの現象は旧プレイヤーでも起こるようです?? なんだこれ?

ちなみにこうやると回避できます。ニコニコさんサイド及びユーザーサードのご参考までに。

0::/isWide = true;
0::/a = drawText(text:"●", size:30, x:0, y:0, pos:"hidari ue", color:0x00FF00, visible:false);
0::/a.visible = true;
0::/d = 1; i = 0; while_kari(i < 300, timer(timer:i * 0.01, then:a.x += d; a.y += d); i++);
3::/a.visible = false;

■マウスオーバーとボタン
動画にマウスオーバーするとメニューとコメント入力欄が表示される仕様になったため、画面上のボタンをクリックさせるタイプの動画が「妨害」を受けてしまいます。

※クリックで原寸
・・・ニコニコさんはNIVAを潰しに来ましたかそうですか。――というのは冗談にしても実際困るんですが、これ。

この問題は本当は回避はできて、マウスオーバー後、画面内をどこかクリックすればメニューおよびコメント入力欄は消え、ボタンがクリックできるようになります。
・・・が、それはニコニコやニワン語動画に詳しい人の場合の話。初見では「ん? 何この動画ボタンが出てきたよ?」→「押してみようかな?」→「コメント入力欄が出てきて押せないじゃんwww」→「何この動画だめじゃんwww」で終了ですし、またほとんどの人は初見でしか動画を見ない(遊ばない)のでこれが最も多くの方に持たれてしまう「結論」だと思います。

■投コメ編集画面
細かいことですが、投コメの編集画面を開く際に別ウィンドウで開くのが非常にめんどくさいのですが・・・。編集完了後は新しいウィンドウ内で元動画に戻るため、編集すればするほどどんどんウィンドウが開いていくことに。どうしてこの仕様になった。

■リピート再生
これはニワン語と関係ないですが、動画のリピート再生を画面下のメニューから選ぼうが、設定から選ぼうがそれが残らず、次回開いた際再び一回のみ再生に戻ってしまいます。

所感

以上でレポートは一旦終了です。
で、所感ですが、「ニコニコさんもっとちゃんと頑張ろうよ!」という感じです。
いや、中の人じゃないです。どっちかっていうと上の人レベル。ニコニコの中の人の技術レベルの高さと残業時間の長さ(笑)は分かっているので同じ技術者として手が回ってない部分があるのは同情しますが、もっと予算(=工数)割いてあげようよ・・・。
そして正直ニワン語はもう終わったなと・・・。成長、発展という意味で終わったなと。
プレイヤーを新規に作るタイミングが最もニワン語も作りこむタイミングかと思いますが、現状見る限り今まで通りを実現するのに四苦八苦しているレベルで、とても前進しているとは思えないです。そしてこのタイミングですら予算を割かないということは今後ニワン語のために予算を割くことはほぼ永遠にないのでしょう・・・。
これは別にバグがあったことに対して言ってるのではなく、API追加はおろかパフォーマンスに関して何も変わってなかったことに対する所感です。
現状のニワン語はとてもじゃないですが、色々揃っているとは言いがたい、非常に中途半端なものです。しかしそんな中、公開されていないAPIを自分で解析してまで見出し、また現状の仕様だけでここまで作ったのかという成果をユーザー側は頑張って出してきたと思います。
正直ここまでユーザー側が支援してくれた言語は他にないかと思います。(ユーザー側の支援が厚い言語自体は他にもたくさんありますが、それらは開発元の活動も積極的なので、比率、相対的な意味でニワン語はユーザーの支援が大きい言語です)
これを受けて次に動くべきなのはニコニコさん側なのかなと。ユーザーさんもっと支援して、もっと盛り上げて下さいではなく。

所感の続き(個人的な話)

※以下は個人的な話なので読む必要なしです。
私はプログラム歴は20年近くになります。というか、元職業プログラマでした。(今もプログラムに関係する職業です)
その私にとってプログラムは道具でありおもちゃではないです。
私も始めたばかりの頃は、マニアックな記述の仕方とか、変なテクニックなど、おもちゃとしてのプログラムに楽しさを見出していました。しかしもうその時期は過去のものとなってしまい、また業務プログラムを経験した流れで今は小手先の技術アピールより開発効率、堅牢性などを重視したコーディングをしています。
・・・で、何が言いたいかというと、現在のニワン語には、おもちゃとして楽しむという楽しみ方しかないんじゃないかと。
NIVAはニワン語をおもちゃとして使うためではなく、エンターテイメント的な成果を得るための道具として使い、生み出しました。しかし言い換えると自分にはあれが限界です。そしてニワン語自身の成長がない以上、今後同じスタンスで何かを作り出すことはできないかなぁと。
プログラムをおもちゃとして楽しむ層は普通に存在しますし、プログラマが新規に生まれる数ほど新参者も入ってくるのでニワン語自体はその方面において残るかもしれません。しかしNIVAを作って以降、1年間ニコニコさんの動きを見てきて、自分の中では終わってしまった感がしてしまってます。
今回ちょっと期待してたんですけどねぇ・・・。がっくしデシタ。
直近の問題としてNIVAおよび他音ゲー動画を新プレイヤー対応させるという作業があるのですが、何か全然やる気が上がって来ないです。どうしようかなぁ・・・。(ちなみに前述したとおり大画面に対応させると中画面ではずれる、という根本的には修正不可能な問題を抱えてます。その意味でもどうしようかなぁ・・・)