ラベル ニコニコ動画 の投稿を表示しています。 すべての投稿を表示
ラベル ニコニコ動画 の投稿を表示しています。 すべての投稿を表示

2010-08-11

ニコスクリプトとニワン語のメモ・その3

ニコスクリプト、ニワン語のメモその3。
一番重要な関数の説明を忘れていた。

commentTrigger(then:式,timer:有効時間)
省略形はctrig。then:は省略可。
おそらく、ニワン語でもっとも重要な関数。
有効時間内にニコ動中のコメントがが画面に表示される度にthen以下の処理を行う。
以下、ポイント。

1. 関数が有効になるのはユーザーが投稿した瞬間ではない
正確には、現在投稿されている(コメントサーバに登録されている)コメントをすべて検出する。
これを勘違いするとハマる。

したがって、特にコメント数が多いときにこの関数が有効になっていると、全てのコメントにおいて、commentTriggerが発動するため、動作が重たくなりやすい。
弾幕に対して適用したりすると、PC環境や動画が止まる可能性もあるため、使用する際は有効時間を短く設定するなどの対策が必要。

2. 定義変数chatを上手く使え!
実は、ニワン語にはすでにchatという変数が宣言されている。
これはcommentTriggerが発動した際、そのコメント情報がchatに記録されるようになっている。
chatの持つ情報は以下のようになる。
chat.message:コメントの内容(文字列)
chat.vpos:コメントの再生位置(時間)
chat.isYourPost
コメントの投稿者が現在の視聴者 => true
それ以外 => false
chat.mail:コマンド欄の内容
chat.fromButton
コメントのコマンド欄にfrom_buttonがある => true
それ以外 => false
chat.isPremium
コメントの投稿者がプレミアム会員 => true
それ以外 => false
chat.color:コメントの色(0~16777215)。未指定の場合はundefined
chat.size
コメントの文字サイズ。medium、big、smallの順に0、1、2。未指定の場合はundefined
現在の視聴者が投稿したコメントを判別する例。
20::/ commentTrigger(then:if(chat.isYourPost, then:dt('お前、コメントしたな!')), timer:10)
△動画開始20秒目から10秒間コメントを検出。その間のコメントが現在の視聴者のコメントだったなら、"お前、コメントしたな!"とコメント表示。


BGM(id:動画ID,x:x座標,y:y座標,width:幅,height:高さ,visual:表示方法,volume:音量)
外部からBGMとして使用する動画を定義する関数。
visualはtrueで参照動画を小窓に表示。x,y,width,heighは小窓の位置、幅、高さ。

この関数により定義されると、0番から順に番号がふられる。
再生、ポーズをしたい場合は、その番号を使って、以下の関数を呼び出すことで可能。
playBGM(番号) 
stopBGM(番号)
なお、これらの機能は、ニコスクリプトにおける「@BGM、@ポーズ」と同様のもの。

1. 外部BGM参照できる動画の条件
動画情報で「@BGMとして使用の設定」が許可されていること。
しかし、ニコニコムービーメーカーを使う場合は2MB以下にしないと上記の項目を許可することができないので注意。
自分がうpした動画以外では、「@BGM推奨」タグが付いている動画であれば参照可能。

2. BGMはseekの影響を受けない
seekで動画内をジャンプしても、BGMで参照した音声は途切れることはなくそのまま再生される。
そのため、seekの多い動画でもBGMは飛ばしたくない場合などに有効だと考えられる。


def_kari(obj , script)
オブジェクト(関数)を作成する関数。
objと記述するとscriptを実行する。
コードが長い場合、同じ処理を繰り返し行う際に有効。
引数を渡すことも可。以下、サンプル。
0::/def_kari('love',dt($1 + target + $2 + $1))
10::/love('かわいいよ',target:'ミク','さん')
△10秒目に"かわいいよミクさんかわいいよ"とコメント表示。

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で実際にコメントしてみてください。
【ニコニコ動画】ニワン語でミク充動画作ってみた

2009-10-29

【ニコニコ動画(9)】外部プレイヤー完全解禁ktkr【ウンヴォァ!】



��タ――(゚∀゚)――!!



今まで,特定のブログでのみ外部プレイヤーの使用が許可されていたんだけど,

ついに完全解禁されたようです!



ということで,試しにテストで外部プレイヤー貼ってみました.

動画は最近お気に入りのきりんさん.



ウンヴォァ!ウンヴォァ!ウンヴォァ!