2010-07-22

ニコスクリプトとニワン語のメモ・その2(子ネタ編)

ニコスクリプト、ニワン語のメモその2。
ニコスクリプトとニワン語の構文だけなら、それぞれ以下を参照すれば大体分かる。

http://nicowiki.com/ニコスクリプト.html
http://nicowiki.com/ニワン語.html

ここでは、個人的に実験してみて得られた実際の挙動、ハマるポイントなどを中心にメモとして残す。

seek
動画内の再生位置を変更する関数。分岐動画を作る際はもう必須の関数。
しかし、かなりこの関数はクセモノである。

1.再生位置→指定位置の間のスクリプトに注意!
なんと、seekでは現在の再生位置から指定位置に一瞬でジャンプするのではなく、現在の再生位置から指定位置までシークする間のスクリプトがすべて実行される。
現在の再生位置をt、指定位置をt'とすると、

・t < t' :指定位置を先に指定
→ t, t'間にあるスクリプトを順番に実行しながらt'まで移動
・t > t' :指定位置を手前に設定
→ 0秒に戻り、0,t'間にあるスクリプトを順番に実行しながらt'まで移動

となる。
前者は、seekを実行する前にフラグを立てておき、ifで判定することで回避可能。
特に注意すべきは後者。
手前に移動する場合、0秒からスクリプトが実行されてしまうため、問答無用で保存している変数が初期化されてしまう。
データを保存しながら進めるタイプのニワン語を組む際は注意が必要。

2.エコノミーになると全く機能しない
これは個人的には未検証だが、wikiに考察されていた。
しかも、リロードをかけると飛ぶ時間も変わってしまうという、全く使い物にならない状態になる。

3.キーフレームの位置にしか移動できない
基本的にはキーフレームの位置にしか移動はできないが、swf形式ならキーフレーム以外でもseekが可能。


4.2回目以降の再生はスルー
再生が一度最後までいってしまうと、2回目以降の再生ではseekを無視する。
よくわからないがそういう仕様らしい。
1回目の再生中であれば、同じseekを何度も使うことは可能(うpした動画では5秒で答えられなかった場合に5秒前に戻るように設定している)
動画自体をリロードすることで再度有効になる。


@CM
要するに、ニコ割を再生するニコスクリプト。
ニワン語でもCM、playCMという関数が提供されていたが、自分が試した段階では上手く動作しなかった。

1.@CMは何度でも再生可能
実験した限りでは同じで動画でも、何度もニコ割を入れることができた。

2.@CMで再生中に@CMすると割り込んで再生する
基本的に、再生を開始する秒を守って再生をかけるらしい。

3.@CMで使えるのは200KB以下、544×56px、300kbps以下のswf
これは仕様。200KB以下なので、ラスタを多用するのは避けた方が良いかもしれない。


@ボタン
要するにボタン。
押すと、特定のコメントを自動で投稿する。投稿したコメントは自分だけが見れる/誰でも見れるを選択可能。
色は決められるが、デザインなどは選択不可能。

1.ユーザが「コメント非表示」設定にしてると表示されない
ボタンはコメント扱いらしい。

2.ボタンを押せる回数は1回
もう一度押すには、F5などで動画自体をリロードする必要がある。



とりあえず、今回は、こんなところで。

2010-07-19

ニコスクリプトとニワン語のメモ(基本編)

ニコスクリプトとニワン語について。

ニコスクリプトとは。
ニコスクリプトとは、動画投稿者が動画に仕掛けをすることが出来る機能である。略してニコスもしくはNICOS。


基本的には、投稿者コメントにおいて独自の命令を入れることにより、視聴者に対してインタラクティブな仕掛けを施すことが出来る。
動作させたいタイムライン上で、@ + (日本語)と投稿者コメントをすることで誰でも簡単に使うことが出来る。

ニワン語とは。

ニコニコ動画において、アップロード者が動画に機能をつけたいときに使うことができるスクリプト言語。



ニワン語は未公開のスクリプト言語。
本来は、ニコスクリプトを実装するために運営側が作った言語。
そのため、ニコスクリプトの機能は全てニワン語を使って実現することができる。

また、ニワン語では、ニコスクリプトでは出来ない細かな設定や、数値計算などができる。これらを使って簡単なゲームも作ることが可能。

記述は、具体的に、投稿者コメントで、

秒::/スクリプト

とスラッシュを加えて入れることでスクリプトとして認識される。

しかし、ニワン語は未公開なスクリプトなため、突然使えなくなったり、動作が不安定なもの、バグがあるものも多い。


ニコスクリプト、ニワン語においてできることを簡単にまとめる。

1. 描画
・任意のメッセージの描画
・円の描画
・矩形の描画
・押すだけで特定の内容のコメントを行うボタンの描画

2. コメント制御
・コメントを検出する(コメントが自分がのものか、他人のものか判別することが可能)
・文字列のreplace
・ユーザのデフォルトのコメントの色、サイズなどを変更
・コメントの流れる方向を変更
・コメントマスク
・コメントによる投票機能(投票後、表示、ジャンプ)
・スコア機能(スコア集計後、表示、ジャンプ)

3. 動画制御
・一時的にコメントを投稿できなくする
・一時的に動画をシークさせなくする
・動画を任意の位置にシークする

4. 他の動画との連携
・他の動画のBGMを本動画に流す
・ニコ割を流す(ニコ割用動画をニコ割枠に流す)
・他の動画にジャンプする(ジャンプ後返ってくることも可能)


基本的にはこれくらい。
色々できそうで、実は制約も結構ある。

それはまた次回に。

2010-07-17

ニコニコ動画でswfファイルをうpするときのメモ

今回はじめてニコ動にswfをうpしたけれど、swfの場合は他の形式と違って、いくつか注意しないといけないことがあった。
とりあえず、基本的な仕様は以下のサイトを見ればすぐわかる。

SWFとは (スウィッフとは) - ニコニコ大百科: http://dic.nicovideo.jp/a/swf

ニコ動にswfを投稿するには、ニコニコムービーメーカー(以下、NMM)を使う必要がある。
投稿するだけなら無料版でも利用可能。

で、ここから、3つほど、自分がハマったこと。


1.サウンドの設定はストリーミングにする
サウンドはイベントサウンドがダメだが、設定をストリーミングにすれば問題ない。
設定はFlashCSシリーズなら配置したサウンドを選択後、プロパティで変更可能。

2.パブリッシュは、FlashPlayer9、またはそれ以下(ニコニコプレイヤーバージョンv4)
ニコニコプレイヤー以前に、NMMでアップロードしようとするとサーバーにはじかれる。

しかも、そのエラー内容が何も表示されないので、原因を探るのに苦労した。
インターネット社どうにかしてください(;^ω^)
FlashPlayer10でパブリッシュ出来ないということは、当然モーションプリセットは使えない。


3.「こいつ動くぞ」をサウンドでやってはいけない!
そもそも、ニコ動の、止めても「こいつ動くぞ」は、ステージのタイムラインしか制御しないというニコニコプレイヤーの仕様による副作用。
ステージ上にMovieClipをおき、そのMovieClipの中のタイムラインで動かすことで簡単に実現できる。
しかし、それと同じことをサウンドやることはオススメしない。

確かに、これをやるとニコニコプレイヤーで止めても、サウンドは確かに止まらなくなる。
しかし、2回目以降の再生、具体的にはサウンドのキーフレームまで戻るとそのサウンドは2重再生される
これは、ループ再生した場合やニコスクリプトやニワン語でタイムラインを移動した場合も適用される。
Flashはたしか32チャンネルあるので、最大32重再生…耳が死ぬw
もはやテロ動画…でも、こんな動画があげられること自体が問題な気がするんですけど…

2010-07-14

ニワン語でミク充動画作ってみた





ニワン語を使って、分岐する動画を作ってみた。
かなり癖があって、苦労した。
あとで調べたことをまとめおこう。

ちなみに、上の動画はコメントを入力しないと先に進まないので注意です。
なので、↓のURLで実際にコメントしてみてください。
【ニコニコ動画】ニワン語でミク充動画作ってみた