【Unity】Animatorに登録されたAnimationPropertyを動的に再構成する
Root
┗Target
見たいな構成で、Targetを動かすAnimationをRootに貼り付けて
場面によってTargetを変えたい様なシチュエーションが発生した場合、
普通にInstantiateしてしまうとAnimatorの制御下に入らない。
この場合、Targetを作成してから
Animator.Rebind() を呼べば再構成される。
pythonからTwitterAPI触ってみた(主に画像取得
pythonの勉強にTwitterAPIを触ってみただけ。
※python-twitterは使いません
アプリケーション登録
先人が居るのでそちらを参考に
website-planner.com
ここで取得した
- ConsumerKey
- ConstumerSecret
- AccessToken
- AccessTokenSecret
を使用するのでどこかにメモって置く
OAuth認証
pythonからOAuth認証は requests_oauthlib ライブラリを使う
コマンドは下記
pip install requests_oauthlib
requests_oauthlib がインストール出来たら認証の処理を書くが、
毎回処理を書くのもしんどいので、
別のpythonファイルに切り出しておいてimportする方が楽
from requests_oauthlib import OAuth1Session CONSUMER_KEY = "Consumer Key" CONSUMER_SECRET = "Consumer Secret" ACCESS_TOKEN = "Access Token" ACCESS_TOKEN_SECRET = "Access Token Secret" def CreateOAuthSession(): return OAuth1Session(CONSUMER_KEY,CONSUMER_SECRET,ACCESS_TOKEN,ACCESS_TOKEN_SECRET)
ここで分けて置くと、別のpythonファイルに記述するとき
import ファイル名
twitter = ファイル名.CreateOAuthSession()
だけで完結するので便利
投稿してみる
import sys import OAuth #OAuth認証 twitter = OAuth.CreateOAuthSession() #投稿用エンドポイント url = "https://api.twitter.com/1.1/statuses/update.json" #引数取得 [1] = 投稿したいメッセージ args = sys.argv #投稿 params = {"status":args[1]} response = twitter.post(url,params=params) #投稿成功判定 if response.status_code == 200: print("success") else: print("error")
簡単。
ダイレクトメッセージも送ってみる
import sys import OAuth #OAuth認証 twitter = OAuth.CreateOAuthSession() #ダイレクトメッセージエンドポイント url = "https://api.twitter.com/1.1/direct_messages/new.json" #引数取得 [1] = ユーザー名 [2] = メッセージ args = sys.argv #送信 params={"screen_name":args[1],"text":args[2]} response = twitter.post(url,params=params) #送信成功判定 if response.status_code == 200: print("success") else: print("error")
URLとparamsが変わっただけ。
引数で@ユーザー名とメッセージを渡すだけで送信できる。
検索ワードから画像だけを取得する
これがやりたかった。
が、ほとんど参考にしただけなのでリンクを置く。
これだけではアレなので・・・
python3系で書く場合は1か所注意が必要
filename = '%s.jpg' % md5hex(urls[0]['media_url'])
この部分が文字コードエラーで通らないため、
UTF-8にencodeしてあげる必要があるので下記に治す。
#そもそも上でmedia_urls = urls[0]['media_url'] してた filename = '%s.jpg' % md5hex(media_urls.encode("utf-8"))
これでキチンと動く。
RWBYのカップリング画像集めが捗りそう。
※同じAPIは15分に15回だけなので注意
参考:
qiita.com
Minecraftサーバー起動・停止をLINEに通知してみた
LINENotify + pythonを使って
Minecraftのサーバーを起動・停止時にLINEに通知が飛ぶようにした。
※Windowsです
pythonのインストール
以下のサイトへアクセス
https://www.python.org/
Downloads > Windows > Python3.x.xを選択してインストーラーのダウンロード
環境変数を追加するため
「Add Python3.xx to PATH」にチェックを入れてインストール開始
python --version
を実行し、バージョンが表示されればインストール完了。
python requestsを使えるようにする
以下のサイトへアクセス
https://pypi.python.org/pypi/setuptools
zipをダウンロードして解凍。
解凍したフォルダでコマンドプロンプトを開き以下のコマンドを実行
easy_install pip pip install requests
これで
import requests
が使用できるようになる。
実際の処理を記述する
ここまでの作業で準備は整ったので、pythonファイルを作成し、処理を記述していく
import os import sys import requests #LINENotifyAPIのリクエストデータ準備 line_notify_token = "発行したアクセストークン" line_notify_api = "https://notify-api.line.me/api/notify" message = "サーバー起動メッセージ" #サーバー起動時にLineに起動通知 payload = {"message": message} headers = {"Authorization": "Bearer " + line_notify_token} line_notify = requests.post(line_notify_api, data=payload, headers=headers) #Minecraftのサーバー起動 command = "Minecraftのサーバーの起動コマンド (java から始まるあれ)" os.system(command) #サーバーが停止したら、Lineに停止通知 message = "サーバー停止メッセージ" payload = {"message": message} line_notify = requests.post(line_notify_api, data=payload,headers=headers)
これで起動・停止時にLINEに通知が飛ぶようになりました。
身内をグループに追加してブラッククラフター生活の開始です。
pythonを始めて書いたので変な記述があれば教えてくださいmm
参考サイト
qiita.com
*1:グループしか通知できないので注意