- 1 名前:名無しさん@お腹いっぱい。 [2008/05/22(木) 17:16:06 ID:TO4whmqv0]
- ニコニコ動画のニコスクリプト「@」機能や未公開スクリプト「ニワン語」の
使用動画や可能性について語るスレです。動画をうpしていない人も参加OKです スクリプト使用動画であれば自貼り・宣伝も構いません マターリ進行でお願いします。sageなくてもOKです 公式ヘルプ・ニコスクリプトについて help.nicovideo.jp/cat60/ ニコスクリプトwiki nicowiki.com/%E3%83%8B%E3%82%B3%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88.html ニワン語wiki nicowiki.com/%E3%83%8B%E3%83%AF%E3%83%B3%E8%AA%9E.html 意図としては質問スレではないものの雑談よりもそっちの話題も多くなるかもしれないので、 全くの初心者による初歩の質問&回答の場としても使えるスレとします 質問は後述テンプレに沿った事務的な書き方でOKとしますが、最低限一度は上記のヘルプ、Wiki等を全て 読んで、それでもわからなかった問題のみ書いて下さい その上での質問であれば簡単な見落としや理解不足でもお互い許し合いの精神で
- 2 名前:名無しさん@お腹いっぱい。 [2008/05/22(木) 17:17:57 ID:TO4whmqv0]
- スクリプト以外がメインの話題なら
関連スレ 【ニコニコ】うp主・動画職人雑談所 Part7 pc11.2ch.net/test/read.cgi/streaming/1211067860/ ニコニコ動画質問スレ34 pc11.2ch.net/test/read.cgi/streaming/1211250472/ 【全力】ニコニコ関連の質問に全力で答えるスレ3 pc11.2ch.net/test/read.cgi/streaming/1208008540/ 〜質問テンプレ〜 【質問内容】(例:〜〜をしてみたいけど失敗する。解決法はありますか? or こういう事は出来る? etc) 【スクリプト】(自分で試してみた失敗スクリプトなど) 【動画】(実際にスクリプトを試している自分の動画のURLなど)
- 3 名前:名無しさん@お腹いっぱい。 [2008/05/22(木) 19:19:06 ID:LkgXhKAO0]
- 知ってると得する?ニコスクリプト
www.nicovideo.jp/watch/sm2378567 この講座が分かりやすかった
- 4 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/23(金) 02:11:28 ID:c4hd7ZIJ0]
- 「ニコスクリプト」「未公開スクリプト」で検索して今見つかるもの
投票・アンケート動画、弾幕ボタン動画、クイズ動画 選択分岐ノベルゲー動画 オセロやポーカー等のカードゲーム・ボードゲーム動画 ジャンルとしては既にこれ以外思いつかない感も強いけど それぞれ完成度を高める余地はまだありそう ただ細かな作りにしようとするほど処理の重さが激しくなる… 図形描画機能がもっと充実してほしいところ
- 5 名前:名無しさん@お腹いっぱい。 [2008/05/23(金) 19:44:16 ID:c4hd7ZIJ0]
- 予想を裏切らん過疎だなあ
ニコ動作者向けの中でさらにこれほどマイナージャンルに限定した スレじゃこんなもんか…人集まりさえすれば面白くなりそうなんだけど
- 6 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/23(金) 20:53:35 ID:M0iTXomc0]
- 前に「ボタン+スコア+スコア表示」の動画作った事あるけど、
コメが300越えた辺りからめっちゃ重くなって、500辺りでは正常に動かなくなった それ以来スクリプトはトラウマ
- 7 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/24(土) 00:44:23 ID:KgBEQ5uA0]
- ニコスクリプト専用スレ
bbs.nicovideo.jp/test/read.cgi/question/1194853124/
- 8 名前:名無しさん@お腹いっぱい。 [2008/05/24(土) 10:43:11 ID:q8+R2rsF0]
- 面白いって思ってマイリスしてくれる人はいるのに
なんといっても重さが致命的な欠点 処理を軽くする改善とかでなくていいから 表示コメント総数の上限をうp主が設定できるように なるだけであっさり解決するんだが… 150くらいまでならスムーズに動いた
- 9 名前:名無しさん動画閲覧中@全板トナメ出場中 mailto:sage [2008/05/29(木) 19:25:23 ID:MztWy8FI0]
- ジャンプメッセージを表示しない強制ループってどう実装するんですか?
ちなみにプレミアム会員です。
- 10 名前:名無しさん動画閲覧中@全板トナメ出場中 mailto:sage [2008/06/01(日) 14:38:06 ID:bzodJ7Gt0]
- たとえば動画再生終了時に最初へ戻すループなら
@ジャンプ #0:00 を動画の最後で書けばOK
- 11 名前:名無しさん動画閲覧中@全板トナメ出場中 mailto:sage [2008/06/03(火) 09:56:38 ID:GkH4kT9M0]
- A動画からコメB動画ジャンプ→B動画でコメC動画再ジャンプ・・・した場合
C再生が終わったらAの飛び前のシークタイムに戻るんだろうか? あ、いや自分で実験すればいいだけなんでやってみるけど・・・
- 12 名前:名無しさん動画閲覧中@全板トナメ出場中 mailto:sage [2008/06/15(日) 00:03:59 ID:9hTg0IK00]
- .
- 13 名前:名無しさん動画閲覧中@全板トナメ出場中 mailto:sage [2008/06/26(木) 01:09:04 ID:J7cpexd60]
- 音量を制御することは出来ませんか?
- 14 名前:名無しさん動画閲覧中@全板トナメ出場中 mailto:sage [2008/06/26(木) 17:31:10 ID:KA8jO0BE0]
- 画像表示することってできる?
- 15 名前:名無しさん動画閲覧中@全板トナメ出場中 mailto:sage [2008/06/27(金) 01:20:54 ID:iv7gzVZF0]
- こんな機能あったんだ!なんというプログラマー向け。
公式のニコスクリプトのページに何にも書いてないじゃん、 アナウンス不足すぎる。 重くなるからわざとなのかな…。
- 16 名前:名無しさん動画閲覧中@全板トナメ出場中 [2008/06/27(金) 19:46:38 ID:iv7gzVZF0]
- 過疎すぎるからage
今仕事中でちょっと試せないんだが 自分であとで試すつもりだがネタ振りだけしとく。 bigだけ禁止にしたい場合にさ、char.mailを調べることで 書き込みをやめさせられないかと考えたんだけど、 0::/ctrig(if(char.mail.indexOf('big')>=0),then:○○) ここまではいいと思うんだ。○○でいったい何をすればよいだろう。 >>13,14 今のところむりぽ 画像は厳しいけど音量くらいなら今後実装されるかもね。
- 17 名前:名無しさん動画閲覧中@全板トナメ出場中 mailto:sage [2008/06/27(金) 19:48:52 ID:iv7gzVZF0]
- ×char→○chat
職業病だな…。
- 18 名前:名無しさん動画閲覧中@全板トナメ出場中 mailto:sage [2008/06/27(金) 23:21:52 ID:D1RXZKoH0]
- コマンドの置換ってできないんだっけ?
- 19 名前:名無しさん動画閲覧中@全板トナメ出場中 mailto:sage [2008/06/28(土) 00:19:07 ID:8FTjommQ0]
- 今試してること書いていくわ。
【動作しない】 0::/ctrig(chat.message='代入可能?') chatは参照専用のようだ。 【動作した】 0::/ctrig(replace(src:chat.message,dest:'おきかえ')) ただしこれは、そのコメントそのものには間に合わない。 これがヒットしたあと別のコメントで同じ文字列があれば、置換するようだ。 つまりだ >>18 コマンドの置換どころかコメントの置換ができない。 正確には「ctrigでまさに今ひっかけたコメント自体に 影響を与える方法が見つからない」だ。 あらかじめ0秒enable=falseのreplaceを仕込んでおいて、 そいつのsrcやenableを書き換えるってのも考えたんだが、 うまくいったとしてもそれじゃ同時に1つしかできないしな…。
- 20 名前:名無しさん動画閲覧中@全板トナメ出場中 mailto:sage [2008/06/28(土) 00:21:41 ID:8FTjommQ0]
- もっと単純な実験
【動作しない】 0::/replace(src:'big',dest:'small') コマンド欄は対象外のようだ。 当然、コメント欄のbigは置換された。
- 21 名前:名無しさん動画閲覧中@全板トナメ出場中 mailto:sage [2008/06/28(土) 00:50:17 ID:8FTjommQ0]
- >>19の最後で書いたやつも試したけど、
これもその後のコメントにしか効かないからだめだ。 0::/r=replace(enabled=false) 0::/ctrig(r.src=chat.message;r.dest='おきかえ';r.enabled=true) 特定のコマンドを禁止するのは無理っぽい。 全強制で我慢するしかないか。
- 22 名前:名無しさん動画閲覧中@全板トナメ出場中 mailto:sage [2008/07/01(火) 13:48:13 ID:RKekU5lV0]
- 俺しかいない予感!
www.nicovideo.jp/watch/sm3039453 コレ↑を見て会得したイディオムを書いておく。いずれも動作確認済。 いずれwikiに載せるつもり。誰かやってくれたらそれはそれで嬉しい。 【繰り返し構文を使う方法】 C言語における以下のソースとだいたい同じ動作をするニワン語。 型 array[] = {"test1","test2","test3"}, i; for(i=0;i<配列要素数;i++){ printf(array[i]); } ↓ 0::/array = ["test1","test2","test3"] 0::/i=0;def_kari("test",dt(array[i],x:10,y:20*i);i=i+1;if(i<array.size,then:test)) 0::/test ・同様のことを変数iを使わなくても可能。 でも多分こっちのほうがいちいちスタックが増える分遅いと思う。 0::/array = ["test1","test2","test3"] 0::/def_kari("test",dt(array[$1],x:10,y:20*$1);if($1+1<array.size,then:test($1+1))) 0::/test(0) ・breakに相当することをしたい場合は、内部にif文を記述したうえ そのelseで、iの増加と再帰を行うことで実現できる。 0::/array = ["test1","test2","test3"] 0::/i=0;def_kari("test",if(array[i]=="test2",then:dt("hit"+i),else:i=i+1;if(i<array.size,then:test))) 0::/test
- 23 名前:名無しさん動画閲覧中@全板トナメ出場中 mailto:sage [2008/07/01(火) 15:02:46 ID:RKekU5lV0]
- 【文字列の一部を切り取る関数】
・まず、これを固定で記述しておく 0::/def_kari("substr",substr_start=$2;if($1.size-1<$3,then:substr_end=$1.size-1,else:substr_end=$3);substr_ret="";substr_inner("$1")) 0::/def_kari("substr_inner",if(substr_start<=substr_end,then:substr_ret=substr_ret+$1.index(substr_start);substr_start=substr_start+1;substr_inner($1))) ・使うときは以下のように使う substr(文字列,開始index,終了index) 結果の文字列はsubstr_retという変数に格納される。 使用例)0::/substr("abcde",2,3);dt("■"+substr_ret+"■") →結果「■cd■」 −−−−以下プログラマ向け情報−−−− substringくらい作ってくれよ! ということで作ってみたのだが…。 関数呼び出し時に、呼び出し元に値を返す手段がわからない。 引数渡しを試みるも、どうやら値渡しのようだ。 要素1個の配列にして、配列名で渡して[0]に代入してみたが object:147というエラーになってしまった。 しょうがないので決まったグローバル値に入れて、それを見てもらうことにしてみた。
- 24 名前:名無しさん動画閲覧中@全板トナメ出場中 mailto:sage [2008/07/01(火) 22:55:00 ID:/cYtd574O]
- substrすげえw
0::/def_kari("foo",$1+$2) 0::/dt(foo(4,6)) で10が取れるから、関数の結果が戻り値だな 0::/def_kari("bar",$1.push("foobar")) 0::/array=[];bar(array);dt(array[0]) 参照私だな これスゴスギ www.nicovideo.jp/watch/nm3716729
- 25 名前:名無しさん動画閲覧中@全板トナメ出場中 mailto:sage [2008/07/01(火) 23:14:03 ID:1bq+cfNO0]
- 【substr注意事項】
substr_start、substr_endという変数が既にあった場合 へんな値が入っちゃうから、この名前は使わないでね! >>24 >戻り値 ああ、その程度のであればそうなるんだけど… substrみたいに複数の式を実行してる場合はどうなるんだろう。 最後の最後に、結果だけを記述(単体では文として意味を成さない)すれば いいんだろうか…。 >参照渡し なるほど、そういう渡し方ならいけるのか! 単に渡した変数に突っ込むとかやってた。 しかし「関数を使う時には必ず配列を渡し、popで値を取り出す」 という規約になるのか…それはそれで煩わしいな。 その動画は何度見ても凄いな。
- 26 名前:名無しさん動画閲覧中@全板トナメ出場中 mailto:sage [2008/07/02(水) 10:29:55 ID:gs610Xb90]
- 今更だけどfor文はどっちかっていうとdo-while的な動きだよなぁ。
条件を先にもってこないといかん。直します。
- 27 名前:名無しさん動画閲覧中@全板トナメ出場中 mailto:sage [2008/07/03(木) 10:55:56 ID:MXEmNZmc0]
- 値の返し方がわかった。
実行文の最後に、返したい値を記述しておけばいい。 substrも、びっくりするほど簡単な関数になった。 …んだけどさ。 再起が深さ14くらいで落ちる。フラッシュプレーヤーがフリーズして リロードしないといけない状態になる。 for文も14回しかまわせないってことで。 考えてたいろんなアイデアが出鼻くじかれた。 もうちょっとスクリプト強化されるまでスルーするわ。 一応、substr。(読みやすいように改行してる) 0::/def_kari("substr", if( $2 <= $3 && $2 < $1.size, then: $1[$2] + substr( $1, $2+1, $3 ) ,else: "" ) これでret = substr("abcdefg",3,5)って感じで使える
- 28 名前:名無しさん動画閲覧中@全板トナメ出場中 mailto:sage [2008/07/03(木) 11:16:12 ID:MXEmNZmc0]
- とじ括弧1個忘れた。
せっかくだからforも直しとく 0::/def_kari(" if( $1 < array.size, then: dt(array[$1],y:20*$1); test($1+1))test" ) )
- 29 名前:名無しさん動画閲覧中@全板トナメ出場中 mailto:sage [2008/07/04(金) 21:36:18 ID:e9lFZQ3d0]
- ttp://blog.nicovideo.jp/niconews/2008/07/001368.html#nicos
- 30 名前:名無しさん動画閲覧中@全板トナメ出場中 mailto:sage [2008/07/05(土) 14:38:29 ID:Vjb7xJH50]
- 今回のメンテで、ニコスも変わるだろうね。
いままでにないプロパティ等も増えるのだろうか? つーかあれらはみんなどうやって探したの? それっぽいのをdt()して、undefined以外のが出るまで頑張ったんだろうか。
- 31 名前:名無しさん動画閲覧中@全板トナメ出場中 mailto:sage [2008/07/05(土) 15:17:52 ID:57xSH9Au0]
- >>30
秘密の方法でソースファイルを・・・ @BGMも@ボタンみたいにニコスじゃ利用できないなんてならないといいんだが
- 32 名前:名無しさん動画閲覧中@全板トナメ出場中 mailto:sage [2008/07/05(土) 20:16:23 ID:57xSH9Au0]
- vid = BGM(id:'sm??', x:, y:, width:, height:, visual:, volume:)
playBGM(vid) stopBGM(vid) addAtPausePoint(vpos:, wait:) 関数はあったけどニワン語からだとうまく使えないorz とりあえず解析できた変更点は文字修飾の追加くらい dt("hoge", filter:[フィルター]) [フィルター] = "fuchi" or "kasumi" or "kage"
- 33 名前:名無しさん動画閲覧中@全板トナメ出場中 mailto:sage [2008/07/05(土) 23:33:15 ID:57xSH9Au0]
- 0::@BGM
0::/stopBGM(0) 20::/playBGM(0) 25::/stopBGM(0) 30::/playBGM(0) こういう使い方はできるのか
- 34 名前:名無しさん動画閲覧中@全板トナメ出場中 mailto:sage [2008/07/06(日) 02:38:46 ID:aqf9OrQG0]
- なるほど、解析だったのか。
繰り返し構文はいまだ無し、ってことか…。
- 35 名前:名無しさん動画閲覧中@全板トナメ出場中 mailto:sage [2008/07/06(日) 11:01:17 ID:LHfZ3n0i0]
- 少し見ない間にいろいろできるようになったんだなw
- 36 名前:名無しさん動画閲覧中@全板トナメ出場中 mailto:sage [2008/07/06(日) 14:43:45 ID:b1Mq8WTa0]
- >>27のsubstrを改良して再帰の深さに関する問題を解決しました。
foldを使えば回数の制限なしで繰り返し制御が可能です。 0::/def_kari("substr", _a=[0];_s=$1;_i=$2;_e=$3; _a.fold( if(_i <= _e && _i < _s.size, then: _a.push(0); $1 + _s[_i++], else: $1 ), "" ) ) 繰り返しの話がよく出てくるようですが、 ニコスはコメントが投稿されるたびに最初から処理をやり直すので 多用すると大変なことになります。
- 37 名前:名無しさん動画閲覧中@全板トナメ出場中 mailto:sage [2008/07/06(日) 15:18:56 ID:aqf9OrQG0]
- >>36
foldとはなんでしょうか? 自分はニワン語のwikiに書いてあることしか知らんのです…。 重くなるのはおっしゃる通りなので、 繰り返し構文が無いのはわざとなのかなぁとも思ってはいるのですが。
- 38 名前:名無しさん動画閲覧中@全板トナメ出場中 mailto:sage [2008/07/06(日) 16:04:44 ID:b1Mq8WTa0]
- foldとは簡単に言えば配列の各要素に対して処理を行うメソッドです。
使用方法 配列.fold(処理,初期値) 処理の中では $1 が一つ前での実行結果、$2 が現在の要素になります。 初期値は先頭の要素の $1 の値です。 使用例 arr=[0,1,2,3,4,5,6,7,8,9,10] dt( arr.fold( $1+$2 , 0) ) 実行結果 55 繰り返し処理は、 最初に要素数が1の配列を用意して、 foldの処理文で配列の要素数を増やすことで実現しています。
- 39 名前:名無しさん動画閲覧中@全板トナメ出場中 [2008/07/07(月) 01:36:53 ID:DBV2vhGt0]
- B.G.Mニコスクリプトでケツはたたけるのか?最終鬼畜兄貴のケツドラム
www.nicovideo.jp/watch/sm3879550 @BGMをつかって早速動画を作ってみました。 ボタンを押すと兄貴が唸ります。
- 40 名前:名無しさん動画閲覧中@全板トナメ出場中 mailto:sage [2008/07/07(月) 12:33:51 ID:AEaReKh40]
- >>38
なるほど! 他にも、wikiに載ってないのがあれば教えてもらえると助かります >>39 これって、再生位置を変えれば音源3つ以上使えたりしないかな?
- 41 名前:名無しさん動画閲覧中@全板トナメ出場中 [2008/07/07(月) 23:59:07 ID:DBV2vhGt0]
- 配列関係
join 0::/arr=[1,2,3,4,5] 0::/dt(arr.join("+") + " = " + arr.sum) 実行結果 : 1+2+3+4+5=15 数値関係 sin, cos, pow 0::/x=3.1415 0::/a=x.cos; b=x.sin; c=x.pow(2) ++ -- += -= *= /= %= c言語などと同じ オブジェクト関係 local, self bbs.nicovideo.jp/test/read.cgi/question/1194853124/172n ここに詳しく乗ってます 大体使えそうなのはこんな感じかなと
- 42 名前:名無しさん動画閲覧中@全板トナメ出場中 mailto:sage [2008/07/08(火) 00:21:03 ID:UBXXfNm3O]
- :=もあるみたいだ。=とかわらないみたいだけど
- 43 名前:名無しさん動画閲覧中@全板トナメ出場中 mailto:sage [2008/07/08(火) 04:45:02 ID:sEHMRnn/0]
- 以前はその書式使えなかったんだけどな
7/5以降だな、使えるようになったのは
- 44 名前:41 mailto:sage [2008/07/08(火) 23:54:34 ID:knNmJ+yd0]
- ほかにも playStartTime ってのが増えてた。
実行結果: Tue Jul 8 23:11:14 GTM +900 2008 どうやら実行したパソコンの内蔵時計時間を返す模様。 さらに rand 関数の仕様も若干変わってるみたい。 引数に何も設定しないと自動的に playStartTime をシードにして乱数を生成する模様。 しかもソースを見る限り、呼び出すたびに値が変わるようになってる。 しかし playStartTime が文字列として長すぎるので毎回同じ値がかえってきてしまう。 (rand関数は11文字以上ではうまく動作しないみたい)
- 45 名前:名無しさん動画閲覧中@全板トナメ出場中 mailto:sage [2008/07/09(水) 21:19:30 ID:btBxki5L0]
- バグ放置ってことか。
まぁ、未だ「未公開スクリプト」だしな…。
- 46 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/07/17(木) 15:21:47 ID:AzA/SzmR0]
- スクリプトに@キーワードジャンプや@キーワードメッセージを書いていて
書かれたキーワードを含むメッセージがコメント一覧に現れてないように見えるのですが これは他の人にも見えてないのでしょうか? 若しくは表示させる方法がありますか?
- 47 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/07/17(木) 16:00:45 ID:5setO/UG0]
- 公式ヘルプの「コメント保護機能について」を見ましょう、
それは「ニコスコメント一覧」に送られているのですよ。 表示する方法は…ないっぽい。
- 48 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/07/17(木) 21:03:16 ID:2fb7G3DU0]
- >>47
レスありがとう ああ そういうことだったんですか orz 答えが丸見え・・・
- 49 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/07/17(木) 21:23:05 ID:5setO/UG0]
- >>48
ああ、なるほど。自分も同じことを考えて、そしてあきらめたクチ。
- 50 名前:46 mailto:sage [2008/07/18(金) 02:52:49 ID:miq5uMtb0]
- どうやらフィルタを使うと答えが丸わかりなのは防げそうです
コメント一覧に表示する方法はなさそうですが・・・
- 51 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/07/18(金) 11:05:35 ID:oRvurqM90]
- フィルタによるクイズ動画だったら
ニコス実装前から(フィルタ実装直後に)あったからねぇ。
- 52 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/07/20(日) 14:21:14 ID:xS21zkW70]
- playStartTime が実数返すようになってるね。
計算しようと思ったらめんどい上にGTM+900しないといけない。
- 53 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/07/21(月) 18:27:34 ID:oofjze7f0]
- rand関数のバグも修正されてました。
無引数で関数を呼び出すと毎回違う値を返すようになりました。
- 54 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/07/26(土) 21:15:06 ID:xNYEtnTZ0]
- :=の意味が判明したよ。
0::/ a=6; def_kari("b", a:=9; dt("local:"+ a, pos:"shita")); b; dt("global:"+ a, pos:"ue") 実行するとlocal:9 global:6と表示される。a:=9をa=9に直すとlocal:9 global:9になる つまり:=は関数の中に限定した変数に代入するコマンドということだね。
- 55 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/07/26(土) 21:19:15 ID:xNYEtnTZ0]
- 演算子のオーバーロードもできた。
0::/ a=[]; a.def_kari("add", self.push($1)); a + 8 + 9; dt(a[0]+", "+ a[1]) 8, 9を表示。
- 56 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/07/29(火) 04:18:45 ID:sCkr+sEy0]
- それはちょっとまずいんでねーの
- 57 名前:名無しさん@お腹いっぱい。 [2008/08/05(火) 08:17:02 ID:1+dWM/8f0]
- 全く皆さんの書いてることがアホで理解できん…。だが、>>39の様に、@ボタンと@BGMを組み合わせた
動画を作りたいのですが、いったい投稿者コメント欄にどんなスクリプトを入れればいいのでしょうか? レベル低い質問でサーセン^^;
|

|