この記事ではコマンドをより柔軟に、便利に操作ができるようになる変数とユーザーインプットについて解説していきます。
ユーザーインプット
inputコマンドを使用することでコマンドを動作させる前に、そのコマンドでどういった値を使うかを指定することができます。
今までの記事の中では全てコマンドを書く段階で数値、文字を書いていました。変数を使うことでそのコマンドにどの数値を適用するか、どのオブジェクトにそのコマンドを使用するかなどをコマンドを使用する前に決めることができます。
インプット
input
<input name>=<input type>
<input name>=<input type>
<input name>=<input type>
(複数化)
input nameはアルファベットで始まり、文字、数字、アンダーバーを使用することができます。
input typeはtextかnumberを使用することができます。
変数に値が入るとデッキとバックアップに記憶されます。そしてコマンドを作る際に$<input name>の形でその変数の値を使用することができます。
それでは実際に下の記事で紹介したコマンドを使用してコマンドを作っていきます。
numberzに数字を使用する
input
numberz=number
カウントダウンテキストを表示
show
val=1
scene=Text
Timer
カウントダウン開始
countdown
source=Timer
val=$numberz
numberz秒+10秒後にカウントダウンテキストを非表示
show
val=0
scene=Text
Timer
delay=[($numberz * 1000) + 10000]
このコマンドを使用するとまず、numberzの値を数字で入力されるように入力エリアがデッキ上に表示されます。何秒のカウントダウンにしたいかを入力し、右下のチェックボタンを押すことでカウントダウンが開始されます。
この例ではコマンド内の$numberzは15になっています。
次にテキストの更新をユーザーインプットを使用して行っていきます。
ユーザーインプット
input
textz=text
テキストソースの更新
text
source=texto
text=$textz
このコマンドでも同様にまず、テキストの入力を要求されます。
リストから値を選択する
リストの使用方法
自分で入力をして値を決める方法を紹介しましたが、あらかじめ用意しておいたリストから選択する方法を紹介します。
例えば大文字と小文字を区別するため間違えやすいシーンやソースオブジェクトなどに使用すると良いでしょう。
まず、リストを作る必要があります。
UP Deckのデスクトップアプリをダブルクリックして表示されたウェブブラウザのUPDeck SetupにあるFileをクリックします。
開いたUPDeckフォルダの”Lists“フォルダに任意のリストをテキストファイルで作成します。
今回は以下のようなリストを作成しました。
残念ながら現在、リストでは日本語が使用できません。
texts.txt
Thanks for watching!
Follow me on SNS from description!
Hostiong private matches, join us!
Muting mic for eating…
Search UP Deck and kurocha.jp on Google Kappa
textposition.txt
topleft
topright
bottomleft
bottomright
setonoff.txt
0
1
それではこれらを利用してテキストの更新を行うコマンドを作成していきます。
リストの使用にはinputコマンドを使用します。
リストの使用
input
*list=<リストの名前>
<input name>=list
<input name>=list
(複数可)
実際に作ったコマンドがこちらです。
リストからインプット
input
*list=texts
textfornoti=list
*list=textposition
textpos=list
*list=setonoff
onoff=list
$onoffがテキストを表示か非表示を選択
show
val=$onoff
scene=_current
$textpos
テキストソースの更新($textposがテキストの場所)
text
source=$textpos
text=$textfornoti
texts.txtの内容を上下左右にあるテキストソースに書き込み、それを表示させるかどうかを問うコマンドが出来ました。
ラベル付きリスト
リストを使用するなかでURLやファイルの絶対パスなど、長く直感的にわかりづらい値をリストにしたい場合にはラベルを利用することでモバイルアプリ側に表示される名前を任意のものに設定することができます。
ラベルを付けるにはリストを以下のように設定します。
:値:ラベル名
:値:ラベル名
:値:ラベル名
例えば、URLを値に設定する場合は
:8up.uk/:UP Deck official
:kurocha.jp:kurocha blog
:kurocha.jp/updeck-command-archive:command archive
:www.twitch.tv/kurocha:Twitch | kurocha
:www.box.com/ja-jp/home:BOX
このようにすることで
:URL:ウェブサイト名
となりコマンド内ではURLが値として利用され、モバイルアプリ上の表示はウェブサイト名の表示となります。
注意点としてはリスト内では日本語表記不可、ラベル内で:(コロン)の使用は不可となります。
おまけ(inputとMorphの組み合わせ)
この記事では文章は画像で作っていました。
この記事で作ったアニメーションに少し手を加えたいと思います。
ユーザーインプットで5行の分を入力し、それをMorphでアニメーションさせていきます。
まとめ
今回はコマンドの自由度を上げる変数について紹介しました。
少し難しいですができることの幅がぐいっと広がるので是非試してください!