現在表示しているスレッドのdatの大きさは58KBです。
何これ楽しすぎるwwwwwwwwwwwww
>>30
絶対サンプル動画作るだろうなと思って、トップの公式タブ開いたら
よしよし動画ってのができてたお
@ジャンプの移動方法デモのと全然違うじゃん。。
「移動します」の表示の後にページ全体で移動とか釣り動画にも使えやしねぇ
ジャンプの瞬間を回避しようと以後のバーをクリックしても結局飛ばされるし
ジャンプ機能うざ
アニメには便利すぎw
@120は@001でも大丈夫だよね?
このスプリクトはZIP厨とか楽しそうに使うだろうから、一般開放しなくていいよ。
ニコスクリプトマニュアル
http://www.nicovideo.jp/static/script/
デフォルト
『コメントのデフォルトの表示設定を変える機能です。』
コメント禁止
『一定時間コメントを非表示にし、閲覧者のコメントを禁止します』
投票
『動画で流れているコメントから任意のコメントの数を数える機能です。』
投票結果
『『@投票』の結果を集計して表示する機能です。』
投票ジャンプ
『『@投票』の結果によって別の動画にジャンプする機能です』
ジャンプ
『別の動画へジャンプさせる機能です。(動画ジャンプはこのコマンドを入れた箇所で行われます)』
キーワードジャンプ
『動画視聴者が特定のコメントを入れた時に動画ジャンプする機能です。(コメント入力者のみ動画ジャンプします)』
キーワードメッセージ
『動画視聴者が特定のコメントを入力時に任意の文字列を表示します。(コメント入力者に対してのみ表示され、他の閲覧者にはみえません)』
投下
窓
『動画の上に窓枠を被せる機能です。窓枠はコメントで動かすことが出来ます。』
玉
『動画の上に玉を出現させ、コメントで動かすことができる機能です。』
玉窓ジャンプ
『@窓 及び@玉 で使った窓穴及び玉が任意の場所に来た時に別の動画にジャンプさせる機能です。』
置換
『コメント内に特定の文字列が含まれる場合、文字列を別の文字列に変更するします。または、特定の文字列を含むコメント全体を別の文字列に置き換えます』
スクリプトの設定にはmigi hidariのコマンドが使えるな
玉窓ジャンプ判定厳しすぎwww
外部でスクリプト書きまくって持って来たらリストに反映するときに再生時がバグる。。
一動画内に投票と結果何個も乱立したらバグるっぽい
とりあえず構文ミスってないか確認中
公式動画のタイピングは面白かったけど、とにかく処理落ちがひどいな
>>44
いきなりですまないが解決した
秒数を60とかジャストで指定してたが60.01で指定したらスクリプトが混乱しなくなったのか一発でいけた
むー。玉を120秒設定「@120」 にしても、70秒位で玉が消えてしまう。。。何故だ。。。
解決。・・・そうか、画面の外まで出ていくのか・・・。
なんか対応策ないもんかね。画面外に窓や玉がいなくなると切ない。
ニコスクリプト、CPU占有率が99%とか酷いことになるんだけど……
メモリ使用率もかなり上がる。
マシン全体の処理が止まってマトモに見れない。
スペックはそこそこいい方だと思うんだけどねぇ……
ニコニコ動画(RC2)‐非公開ニコスクリプト@ドア 体験動画
@投票 A、B、C ←を設定して
__nicoscript_1.words["A"]; ←ってやるとAの集計数にアクセス出来て
/replace(src:"Aの数",dest:__nicoscript_1.words["A"]); ←ってやると"Aの数"っていう文字列をAの集計数に置換出来るんだけど
/replace とか __nicoscript_1 とかって仕様公開されているの?
まさか普通の隠しコマンドみたいに flvplayer.swfを解析して自分で見つけろって言っている?
見当違いなことを言っていたらスマンが誰か教えておくれ
運営が作ったサンプル動画、これやるまでテスト動画みたいなので試してたけど
どうにも微妙感あったが、サンプルのやったらそれなりに楽しめたわ
やっぱりごちゃごちゃ入れるんじゃなしに”これ”と決めて作った動画のほうが楽しいわな
ニコスクリプト@投票 体験動画
ニコスクリプト@窓 体験動画
ニコスクリプト@置換 体験動画
ttp://d.hatena.ne.jp/kotas/20071126/nicoscript
画像付きのチュートリアル
ジャンプ機能の有効活用動画
アイマスヲタがアイマスADVやってるみたいだなwww
動画いっぱいうp必要あるだろうにww
リレー小説ならぬリレー動画ってのはさすがに大変か
>>51
なんだそりゃwwすげええええwwwwwwwww
一般開放されたことだし上げとく、これでニコスクリプトを良い感じに使った動画とか出てきそうだ
全員ジャンプ機能を使えるようになると「ツマラン」とか「自演」「死ね」って書くヤツを
強制的にガチムチ動画にジャンプさせたり出来るからNG機能より使えると思う。
>>58
ワロタ
でもそれやったら余計叩かれそうだなw
ランキング系の動画とかならありかも
スクリプトの種類を増やせば、もっと面白いのつくれるかもね
たとえば、@窓とか@玉を○以外にも□△◇とか増やすだけでも
【ニコスで】体内時計ゲーム
この動画ってどういうこと?
公式で用意してないスクリプトをうp主が自分で書いたのか?
投稿者コメント見ると、なんかプログラムっぽいの書いてあるけど
問題の部分を抜き出してみた。
/t=drawText(text:"",size:100,color:0x00ff00);t2=drawText(text:"",size:30,color:0x0000ff,y:70)
/commentTrigger(then:if(when:chat.message.indexOf("そぉい")>=0&&chat.isYourPost,then:i=chat.vpos-33;p=i-10;t.text=i;if(when:p==0,then:t2.text="EXELLENT!(゜∀゜)! RANK:S";t2.color=0xffff00);if(when:p<-1||1<p,then:t2.text="BAD(´・ω・`) RANK:C";t2.color=0x0000ff);if(when:(-1<=p&&p<-0.3)||(0.3<p&&p<=1),then:t2.text="GOOD!(`・ω・´) RANK:B";t2.color=0xff8800);if(when:(-0.3<=p&&p<0)||(0<p&&p<=0.3),then:t2.text="GREAT!(・∀・) RANK:A";t2.color=0xff0000)),timer:15)
/から始まるコメントはプログラム?
いわゆるjava scriptって奴なの?
しかし悪用されんのかな、ブラクラみたいなの
>>61みたいなのもいいけどさ
公式見本として出てたタイピング動画欲しいわ
見ててゲージが減っていく演出とか秀逸だったし誰か作ってくれないかなぁ
今のとこ公式のが一番やってて楽しいんだよね
ニコスクリプト@置換 体験動画
こんな感じ
/drawShape(width:)
あー書き込みわる前に投稿しちまった
@キーワードメッセージってちゃんと使える?
>>68
61の動画は使ってるんじゃね?
しかしこれさ、投稿者コメントカテゴリいらねえや
前まではプレミアム専用カテゴリとして機能してたけど
それなくなったらもう邪魔でしかなくね?
ニコスクリプト使う=投稿者コメントで書く だから、そこに表示されちゃうわけだし
なんていうか俺の理想としては通常カテの中にニコスクリプト使った動画とか混じってる状態なんだよね
>>70
激しく同意。普通のアニメとかにも使いたいのに
>>70-71
それは「投稿者コメント」タグを消去すれば解決する予感。
ロックかかってるけど、「ロック外し→消去」すれば消せるはず。
まあ一々ロック外すの面倒だから、
デフォルトでロックになるのだけは何とかして欲しいが。
1000件まで登録できるようになったそうだ
ニコスそこまで登録しないが歌詞とか弾幕とか遊ぶ分にはよさそうじゃね?
とりあえず運営乙
>>70
「投稿者コメント」カテゴリ確かにイラネ
他のカテゴリタグと一緒に登録されてると
トップに表示されないわランキングには載らないわで
投稿者コメ付けて盛り上げる意味ねーよw
>>73
>他のカテゴリタグと一緒に登録されてると
>トップに表示されないわランキングには載らないわで
以前の仕様では載らなかったけど、今は載るよ。
・・・投稿者コメント以外のカテゴリランキングには載らなくなるけど。
>>65
>公式見本として出てたタイピング
ってどんなの?
sm2279142作ってみた
>>76
thx。
ゲージは動画側で作ってあるんだね。確かにわかりやすい
JavaScript風のは、@から始まるやつに比べたらかなり自由度高いな
新機能あげ
誰か非公開スクリプトでボタン使う方法わかった人いる?
addButton()入れてみたけど全然導入できないね…。何か宣言が必要とか?
__init_buttons が怪しい
いちお引数一覧をあげとく
message :string :表示メッセージ
mail :string ボタンの表示設定
vpos :int :表示させるタイミング(?)
commes :string :押された後に表示させる文字(?)
commail :string :投稿コメントの表示設定
comvisible :bool : 投稿コメントの表示/非表示
limit :int :押せる限界数
hidden :bool :表示、非表示
(?)は激しく自信がないもの
もしかしてプレミアム限定なのか
commesはボタンを押すと投稿されるコメントじゃない?
こういうのってどやって解析してるんですか?
やっぱ勘?
@ボタンで作成したオブジェクトは、__init_buttons[x]というラベルが付けられる。
dt(__init_buttons[0].mail)→@10 shita big red みたいに参照できるけど、
__init_buttons[0].message = "hoge" としたところでボタンの表示は変わらず。
addButtonコマンドを仕様した後、dt(__init_buttons[0])とすると
undefinedではなくObject型で返すことから見ると生成自体は出来てるらしい。
@ボタンでもまぁいいんだけど何が不満って、
ボタンを縦にしか並べられないことだよ・・・・
新機能紹介動画の時点では十字キーを出してるじゃない・・・詐欺だ・・・orz
1つの動画からある動画にジャンプ→戻る、数秒後に別の動画にジャンプ→戻る、というのはできないのかな?
一回ジャンプしたら、戻ってきた後の時刻に設定した「@ジャンプ」に反応しない…_| ̄|○
まあどうせ未公開スクリプトで使えたとしても、
色設定、位置設定、表示設定もろもろ
@ボタンとほとんどやれることが変わらんからな。
drawtextみたいにcolorとかx,yとかあればよかったんだけど。
ああ、でも__init_buttons[x]で動的にボタンの状態を制御できるのか。
いや__init_buttonsは、ほぼ読み取り専用だわ。
この新しい投票ジャンプって、自分自身の別の場所にシークできるみたいだけど
例えば4択で、それぞれが1位になった場合に別の場所に飛ばすにはどうすればいいんだ? これ…
30::@投票ジャンプ [ラベル] smXXXXXX,smXXXXXX,smXXXXXX,smXXXXXX 1:00,2:00,3:00,4:00
とかだとダメみたいなんだけど
別の動画にジャンプした後、戻ってくると最初から再生する仕様になった?
あるいは、串をかましているから?
わからんことが多すぐる
http://www.nicovideo.jp/watch/sm9?returnto=10&returnmsg=back&returnid=sm1097445&length=10&from=10
どうもジャンプはURLで制御してるみたいだぞ
ttp://www.nicovideo.jp/watch/sm9?returnto=10&returnmsg=back&returnid=sm1097445&length=10&from=10
ミスったw
>>93
今テストしてみたけど、ちゃんとジャンプした時間から再生されたよ。
一応参考まで
jump("sm9", msg:"sm9に飛ぶ時に表示するコメ",from:10,return:true,length:10,returnmsg:"sm9から戻ってくる時に表示するコメ")
シークを使ってニワン語でループ構文が作れるかなと思ったんだけど、無理っぽいね。
なんか変数がシーク前まで戻されてる。
これってやっぱシークが発生すると、最初からスクリプトを評価しなおしてるってことなのか?
変数の変化は時系列で格納されてるからな。
もっとグローバルな変数が使えればいいんだけど、ひょっこり見つからないかな?
>>96
ありがとう。助かりました。
元動画からジャンプする際、1/10秒以下のところを指定していたからでした。
元に戻るとき、エンコされたURLをブラウザが理解しなかった?みたいです。
色々調べてみたー
s = "文字列";
dt(s[2] + s[0]); 列文と表示
dt(s.size) 3と表示
d = ["A","B","C"];
dt(d[0]+d[1]+d[2]); ABCを表示
dt(d.size); 3を表示
d.push("D");
d.push("E");
d.pop;
dt(a[a.size-1]) Dを表示
[1,2,3].sum、 [1,2,3].productもツカエタよ
http://bbs.nicovideo.jp/test/read.cgi/request/1192027372/188
↑のページを参考にして
ランダムに出題されるクイズ作りましたー
すんげー疲れた。。割に過疎ってるけど。。orz
前のバージョンでは
d = ["A","B","C"];
d[1] = "C"
dt(d[0]+d[1]+d[2])→CCC な感じだったけど
今のバージョンでは直ってるっぽい?
試してみたけど、ACCになったよ
直ってるみたいだね
ああ、でも
d = ["A","B","C"]; d[1] = "C"
dt(d[0])→表示されず、というよりこの行がスクリプトエラーになる。
0::/ d=["A","B","C"];d[1]="B";dt(d[1])
0::/ dt(d[0])→Bと表示。
このあたりの不具合は直ってないな・・・
こういうのは同じ行に連続で書いちゃダメっぽいね。
他の行で配列参照するとバグるんだね。修正きぼん
糞機能すぎる
型毎に使えそうなものを列挙してみた。
String: indexOf , size , index , toInteger , toFloat
array: index , push , unshift , pop , shift , size , sum , product
chat: message , vpos , isYouPost , mail , fromButton , isPremium
>>88
@ボタンでなんちゃって十字キー作ってみた sm2649827
ニワン語じゃないけど……。addButton謎すぐる
@ボタン 糞機能はすぎる
それこそコメントこじきって感じだな
ずっとアニメタグの上にあって 見た目にもいい印象ではない
それに1秒以内の間隔でもコメントできるから
すさまじい鯖への負担
規制は好きではないが あまりにも不快に感じた
>>110
確かに現状荒れすぎだよな
でもこういう使い方ならいいかなと思って作ってみた
どうもパソコンによってはとまってしまうようなんだが、
だれか調べてもらえないだろうか
コメントが集中してるポイントでcommentTriggerが
表示されたコメントを一斉に条件処理してるわけだから重くもなる。
ひとつのコメントに対しての処理が少なく、コメントが分散するような動画なら処理が軽くなるだろうね。
>>112
最初にchat.isYourPostで場合わけはしたんだけどね。
!!!を処理する場所をあと2〜3個作って、
ランダムでどれかに飛ばすようにすれば軽くなるわけか。
ブラクラ並みに重くなる環境が出ないか心配だ
重いとかなら改善すべきだとは思うけど、コメントランキングは別に気にならない
ランダム置換について色々試行錯誤中。
ttp://www.nicovideo.jp/watch/sm2595140
一番最初(すんごい重かった)
---------------
0::/random=0
###置換対象が4つあるため、以下の行を対象と結果を変えて4回記述
0::/rep1=replace(src:'置換対象1',dest:'1置換結果1',fill:true,color:0x00ffff,size:'small');
commentTrigger(random=(rand(chat.message)+chat.vpos*1000+random)%5;
if(when:random==1,then:rep8.dest='1置換結果2');
if(when:random==2,then:rep8.dest='1置換結果3');
if(when:random==3,then:rep8.dest='1置換結果4');
if(when:random==4,then:rep8.dest='1置換結果5'),timer:200)
---------------
現状(多少軽くなった?)
---------------
0::/random=0;ex1=['結果1','結果2','結果3','結果4'];ex2=['結果1','結果2','結果3','結果4'];ex3=['結果1','結果2','結果3','結果4'];ex4=['結果1','結果2','結果3','結果4']
0::/rep1=replace(src:'‡',dest:'‡',fill:true,color:0x00ffff);
rep2=replace(src:'‰',dest:'‰',fill:true,color:0xffff00);
rep3=replace(src:'o',dest:'o',fill:true,color:0xff0000);
rep4=replace(src:'§',dest:'§',fill:true,color:0x00cc00,size:'small')
###置換結果を配列化し、コメントトリガー内のif文を削除
0::/commentTrigger(random=(rand(chat.message)+chat.vpos*1000+random)%6;
rep1.dest=ex1[random];rep2.dest=ex2[random];rep3.dest=ex3[random];rep4.dest=ex4[random]),timer:200)
---------------
コメントトリガー使ってランダム置換するのって、高負荷になるのは避けられないんですかねぇ。。
その乱数の使い方だとコメントが増えたときに、そのコメント以降すべてに影響が出るよな。
コメント投稿時の負荷を軽くしたいんだったら random=rand(chat.vpos)%4 でいいんじゃね?
そもそもmp4再生にCPU食われてるんだから、どのみち高負荷よね。
>>116
>コメントが増えたときに、そのコメント以降すべてに影響が出る
投稿内容そのものが上書きされるわけじゃないので、
全体をばらけさせようと思うと、どうしてもこういう使い方になっちゃうんですよねぇ。。
>random=rand(chat.vpos)%4
たしかにこの用法ではこんなもんで十分なのかも。
ちょっとやってみますー
random=(rand(chat.vpos)+random)%6
↑に変えてみました。(実際の配列要素は6個定義してます)
>>115
ttp://www.hal.fscs.jp/nicoscript/ の作者です
動画内での宣伝ありがとうございます。
random=(rand(chat.message)+chat.vpos*1000+random)%5 についてですが、
これは3/13以前のrand関数では、いろいろと制限があり、純粋な乱数を得るためにわざわざこのような形にしていました。
しかし、スクリプト強化に伴いrand関数の仕様が変更されたため、現在なら random=rand(chat.vpos)%6 でも問題なく動作します。
ただrand関数は整数を引数とするため、0秒から0.999秒は同じ値を返すことになります。
ですので random=rand(chat.vpos*1000)%6 とすることをオススメします。
速度に関しては自分も研究中です。
なにか成果があったら報告します。
どうやらrand関数がだいぶ重たい関数であるようです。
rand関数を取り除いたところだいぶ処理速度が改善しました。
rand関数を使わずに乱数を取得する方法なんですが、
投稿時間の小数点以下がいいんじゃないかと。たぶんこれでも問題ないはず。
あと指定時間内の連続変更も制限してみたんですが、これもいい感じに効き目がありました。
以下サンプル
0::/
r=0;
b=0;
ex=['置き換え1','置き換え2','置き換え3'];
rep=replace(src:'',dest:'置き換え1',fill:true);
commentTrigger(
if(
when:b<chat.vpos,
then:
b=chat.vpos+0.5;
rep.dest=ex[(chat.vpos*1000)%3]
),
timer:30)
実際の(ry
0::/r=0;ex=['置き換え1','置き換え2','置き換え3'];rep=replace(src:'',dest:'置き換え1',fill:true);commentTrigger(r=(rand(chat.vpos*1000)+r)%3;rep.dest=ex[r],timer:30)
配列でif文を排除する方法は参考にさせてもらいました。
ほかにもいいアイデアがあったらぜひ教えてください。
>>119
わざわざどもです!私元スレの160ですw
元々は単体で何回も遊べるランダム出題&ランダムご褒美なクイズを作りたくて、前の書き込みしたんですよー
時流を逃しましたが。。orz
>random=rand(chat.vpos*1000)%6
これって、chat.vposの値が同一でも異なる値を返すように仕様変更されたってことなんでしょうか。
random=(rand(chat.vpos*1000)+random)%6
~~~~~~~~~
↑は無意味っぽいですか?
って書き込む前にHP拝見したら、
やっぱ+randomはあったほうがいいっぽいっすよね。
ミスったw
しかも長文すまんw
実際の(ry (修正版
0::/r=0;b=0;ex=['置き換え1','置き換え2','置き換え3'];rep=replace(src:'',dest:'置き換え1',fill:true);commentTrigger(if(when:b<chat.vpos,then:b=chat.vpos+0.5;rep.dest=ex[(chat.vpos*1000)%3]),timer:30)
誤解を招くようなかきかたして申し訳ない
rand関数は、ある値に対して決まった別の数を返すので、
毎回変えたいならrandom=rand(chat.vpos*1000)%6でいいかと
ちなみに以前の仕様は、
「数値を引数にした場合、31の倍数のうちその引数を超えない最大のものを返す」
という仕様でした。
今考えれば rand(chat.vpos+' ')で十分だった気もします。
まあなんにせよrand関数は重たいんで、commentTrigger内で使うのはやめときましょう。
あと諸事情によりしばらくHPは更新できそうもないです
また間違えたw
random=rand(chat.vpos*1000+random)%6
もし、クイズなどで他人のコメントを乱数に使う場合は
問題を答えてるあいだに出題が変わる可能性がありますよね。
変化をもたせたい場合は、視聴者のコメントだけを使ったほうが安全かと。
その場合は、コメントをしないと進めないようにする必要もありますよね。
今日の豆知識:dt・drawTextは合計50個まで、それとは別にdrawShapeも50個まで。
>>125
スクリプト量が異常なので晒せませんが、
クイズの方はもう出来てまっす。めちゃめちゃ過疎ってますが。。orz>>150のコメントにリンクがあります。
手法としては、問題とマッチング用の回答をペアにしてそれぞれ別の配列で管理して、
出題直前に要素番号をランダムで決めてます。
また、一問目は固定問題としてその間に処理タイミングをずらして色々やってます。
-----------------------
###問題回答配列
arr問題=['1+1は?', 'このサイトの名前は?', 'りんごを英訳せよ。']
arr回答=['2', 'ニコニコ', 'apple']
###出題内容確定
random=(ry
###出題
dt(arr問題[random])
###答え合わせ
when:!keywordflag&&chat.isYourPost&&chat.message.indexOf(arr回答[random])!=-1,
###次の出題内容確定
random=(ry
-----------------------
おっしゃるとおり初めは回答者のコメだけをトリガとしてランダム生成してたんですが、
あまりの過疎っぷりにうp後に問題生成の方針を変えましたw
>>125
なるほど。
つまりコメント一覧が更新されると、スクリプトが再評価されて、
乱数も更新されるのか。なんと恐ろしい罠w
参考になります。
>>124
もう3度目ですがまたミスが発覚。
chat.vpos*1000 だと一の位が0になっちゃうので、
chat.vpos*100としなければなりませんでした。
>>126
書き込んだ直後に気がついた。
変数randomは、出題数の数だけ作ってます。やっぱ記憶だけで書くもんじゃないっすね。。
------
random=[false,false,false,false,false,false,false,false,false,false,false,false,false]
問題1を管理するのはrandom[0]
問題2を管理するのはrandom[1]
------
んでさらに気がついた。
これじゃ指摘のバグ発生しちゃってるのかーーーーー!orz
元に戻すのめんどくさすぎる。。orz
スクリプト全体の流れの中で、乱数算出に一度でも自分以外の投稿者コメント絡ませちゃうと、
どうやっても後ろ全部の問題が変わる可能性があるのか。。
今は↓のような感じで進めてます。
--------
0:00〜0:10 乱数決定
0:20〜0:40 出題&回答1
0:50〜0:60 乱数決定
0:70〜0:90 出題&回答2
--------
配列でペアにしてる関係上、問題と回答がずれるってことは起こりえないんですが、
見てたら突然問題が変わるって事は有り得る訳ですね。。orz
あと、、我ながら書き込み杉自重します。。orz
私は一向に構わんッッ!
せっかくのスレなんだから使ってなんぼでしょ。
いいこと思いついたような気がしたけど
「自動的にコメントを受信する」のチェックを外しても投稿したら受信しちゃうからこれは無理か。