Enviar búsqueda
Cargar
ご注文はライブラリですか?
•
Descargar como PPTX, PDF
•
0 recomendaciones
•
3,291 vistas
O
orekyuu
Seguir
2014/8/24の京都マイクラもぢんぐ会で発表したスライド
Leer menos
Leer más
Presentaciones y charlas públicas
Denunciar
Compartir
Denunciar
Compartir
1 de 30
Descargar ahora
Recomendados
Perlcasual #5 発表資料
Perlcasual #5 発表資料
Junichi Ishida
WebGL入門ハンズオン資料
WebGL入門ハンズオン資料
Kazuya Hiruma
HTML5 Conference 2015 WebGLハンズオン資料
HTML5 Conference 2015 WebGLハンズオン資料
Kazuya Hiruma
20150216 Unity Hands-on 「できる!Unity 2D」
20150216 Unity Hands-on 「できる!Unity 2D」
Mori Tetsuya
20120418 アジャイルサムライ読書会 第1回
20120418 アジャイルサムライ読書会 第1回
株式会社コネクトスター(ConnectStar Co., Ltd.)
CreateJSでアプリつくった話
CreateJSでアプリつくった話
Ru MuckRu
20200216 MacBook Proで姿勢検出
20200216 MacBook Proで姿勢検出
Kenichi Kinoshita
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの作り方〜サービスデザイン編 先生:増井 雄一郎
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの作り方〜サービスデザイン編 先生:増井 雄一郎
schoowebcampus
Recomendados
Perlcasual #5 発表資料
Perlcasual #5 発表資料
Junichi Ishida
WebGL入門ハンズオン資料
WebGL入門ハンズオン資料
Kazuya Hiruma
HTML5 Conference 2015 WebGLハンズオン資料
HTML5 Conference 2015 WebGLハンズオン資料
Kazuya Hiruma
20150216 Unity Hands-on 「できる!Unity 2D」
20150216 Unity Hands-on 「できる!Unity 2D」
Mori Tetsuya
20120418 アジャイルサムライ読書会 第1回
20120418 アジャイルサムライ読書会 第1回
株式会社コネクトスター(ConnectStar Co., Ltd.)
CreateJSでアプリつくった話
CreateJSでアプリつくった話
Ru MuckRu
20200216 MacBook Proで姿勢検出
20200216 MacBook Proで姿勢検出
Kenichi Kinoshita
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの作り方〜サービスデザイン編 先生:増井 雄一郎
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの作り方〜サービスデザイン編 先生:増井 雄一郎
schoowebcampus
Spring boot劇的ビフォーアフター
Spring boot劇的ビフォーアフター
orekyuu
Gradle入門
Gradle入門
orekyuu
【ハピバ】未来に備えたKotlin、大好きだぜ!【Kotlin 1.0】
【ハピバ】未来に備えたKotlin、大好きだぜ!【Kotlin 1.0】
Ryota Murohoshi
Kotlinあるある言いたい
Kotlinあるある言いたい
yy yank
Blenderで作成したデータをMinecraftにぶっこむ
Blenderで作成したデータをMinecraftにぶっこむ
Takuro Wada
普段C#を使っている僕から見たKotlin
普段C#を使っている僕から見たKotlin
Ryota Murohoshi
Minecraft Modding入門
Minecraft Modding入門
Pctg_x8
자바9 특징 (Java9 Features)
자바9 특징 (Java9 Features)
Chang-Hwan Han
인내심없는 개발자를 위한 자바스크립트 - 한줄씩 영어공부하기.
인내심없는 개발자를 위한 자바스크립트 - 한줄씩 영어공부하기.
Nasol Kim
Minecraft で遊びつつ プログラミングを学ぼう ~ ComputerCraft のすすめ ~
Minecraft で遊びつつ プログラミングを学ぼう ~ ComputerCraft のすすめ ~
hevohevo
CTFはとんでもないものを 盗んでいきました。私の時間です…
CTFはとんでもないものを 盗んでいきました。私の時間です…
Hiromu Yakura
Server Side Kotlin
Server Side Kotlin
yy yank
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
cocodrips
Java9 특징 훑어보기
Java9 특징 훑어보기
duriepark 유현석
Mobの作り方
Mobの作り方
iwa_yuki
とある Perl Monger の働き方
とある Perl Monger の働き方
Yusuke Wada
GoPiGo2で遊んでみた
GoPiGo2で遊んでみた
Kazuyuki Mori
RubyMotionを1週間 触ってみた印象
RubyMotionを1週間 触ってみた印象
Tatsuya Tobioka
みくみくまうすについて&Unity で使えるコーディングノウハウ
みくみくまうすについて&Unity で使えるコーディングノウハウ
torisoup
初めてのアジャイル開発プロジェクトを終えて
初めてのアジャイル開発プロジェクトを終えて
dnakagome
IoTとDeep Learningで自宅警備員を育ててみる
IoTとDeep Learningで自宅警備員を育ててみる
Yasuyuki Sugai
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
nishio
Más contenido relacionado
Destacado
Spring boot劇的ビフォーアフター
Spring boot劇的ビフォーアフター
orekyuu
Gradle入門
Gradle入門
orekyuu
【ハピバ】未来に備えたKotlin、大好きだぜ!【Kotlin 1.0】
【ハピバ】未来に備えたKotlin、大好きだぜ!【Kotlin 1.0】
Ryota Murohoshi
Kotlinあるある言いたい
Kotlinあるある言いたい
yy yank
Blenderで作成したデータをMinecraftにぶっこむ
Blenderで作成したデータをMinecraftにぶっこむ
Takuro Wada
普段C#を使っている僕から見たKotlin
普段C#を使っている僕から見たKotlin
Ryota Murohoshi
Minecraft Modding入門
Minecraft Modding入門
Pctg_x8
자바9 특징 (Java9 Features)
자바9 특징 (Java9 Features)
Chang-Hwan Han
인내심없는 개발자를 위한 자바스크립트 - 한줄씩 영어공부하기.
인내심없는 개발자를 위한 자바스크립트 - 한줄씩 영어공부하기.
Nasol Kim
Minecraft で遊びつつ プログラミングを学ぼう ~ ComputerCraft のすすめ ~
Minecraft で遊びつつ プログラミングを学ぼう ~ ComputerCraft のすすめ ~
hevohevo
CTFはとんでもないものを 盗んでいきました。私の時間です…
CTFはとんでもないものを 盗んでいきました。私の時間です…
Hiromu Yakura
Server Side Kotlin
Server Side Kotlin
yy yank
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
cocodrips
Java9 특징 훑어보기
Java9 특징 훑어보기
duriepark 유현석
Mobの作り方
Mobの作り方
iwa_yuki
Destacado
(15)
Spring boot劇的ビフォーアフター
Spring boot劇的ビフォーアフター
Gradle入門
Gradle入門
【ハピバ】未来に備えたKotlin、大好きだぜ!【Kotlin 1.0】
【ハピバ】未来に備えたKotlin、大好きだぜ!【Kotlin 1.0】
Kotlinあるある言いたい
Kotlinあるある言いたい
Blenderで作成したデータをMinecraftにぶっこむ
Blenderで作成したデータをMinecraftにぶっこむ
普段C#を使っている僕から見たKotlin
普段C#を使っている僕から見たKotlin
Minecraft Modding入門
Minecraft Modding入門
자바9 특징 (Java9 Features)
자바9 특징 (Java9 Features)
인내심없는 개발자를 위한 자바스크립트 - 한줄씩 영어공부하기.
인내심없는 개발자를 위한 자바스크립트 - 한줄씩 영어공부하기.
Minecraft で遊びつつ プログラミングを学ぼう ~ ComputerCraft のすすめ ~
Minecraft で遊びつつ プログラミングを学ぼう ~ ComputerCraft のすすめ ~
CTFはとんでもないものを 盗んでいきました。私の時間です…
CTFはとんでもないものを 盗んでいきました。私の時間です…
Server Side Kotlin
Server Side Kotlin
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
Java9 특징 훑어보기
Java9 특징 훑어보기
Mobの作り方
Mobの作り方
Similar a ご注文はライブラリですか?
とある Perl Monger の働き方
とある Perl Monger の働き方
Yusuke Wada
GoPiGo2で遊んでみた
GoPiGo2で遊んでみた
Kazuyuki Mori
RubyMotionを1週間 触ってみた印象
RubyMotionを1週間 触ってみた印象
Tatsuya Tobioka
みくみくまうすについて&Unity で使えるコーディングノウハウ
みくみくまうすについて&Unity で使えるコーディングノウハウ
torisoup
初めてのアジャイル開発プロジェクトを終えて
初めてのアジャイル開発プロジェクトを終えて
dnakagome
IoTとDeep Learningで自宅警備員を育ててみる
IoTとDeep Learningで自宅警備員を育ててみる
Yasuyuki Sugai
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
nishio
エンジニアがプロダクト育成を始めるまでにやったこと
エンジニアがプロダクト育成を始めるまでにやったこと
Takao Sumitomo
ハッピーおうちハッキング - 第2回おうちハック勉強会 キーノートトーク
ハッピーおうちハッキング - 第2回おうちハック勉強会 キーノートトーク
hecomi
おうちハック勉強会2
おうちハック勉強会2
hecomi
20120830 DBリファクタリング読書会第三回
20120830 DBリファクタリング読書会第三回
都元ダイスケ Miyamoto
goroutineはどうやって動いているのか
goroutineはどうやって動いているのか
ota42y
Mruby and microcomputer_board
Mruby and microcomputer_board
Hara Yoshihiko
Global Lab Sendai主催 Unity初心者講座2018
Global Lab Sendai主催 Unity初心者講座2018
Jun Shimura
Similar a ご注文はライブラリですか?
(14)
とある Perl Monger の働き方
とある Perl Monger の働き方
GoPiGo2で遊んでみた
GoPiGo2で遊んでみた
RubyMotionを1週間 触ってみた印象
RubyMotionを1週間 触ってみた印象
みくみくまうすについて&Unity で使えるコーディングノウハウ
みくみくまうすについて&Unity で使えるコーディングノウハウ
初めてのアジャイル開発プロジェクトを終えて
初めてのアジャイル開発プロジェクトを終えて
IoTとDeep Learningで自宅警備員を育ててみる
IoTとDeep Learningで自宅警備員を育ててみる
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
エンジニアがプロダクト育成を始めるまでにやったこと
エンジニアがプロダクト育成を始めるまでにやったこと
ハッピーおうちハッキング - 第2回おうちハック勉強会 キーノートトーク
ハッピーおうちハッキング - 第2回おうちハック勉強会 キーノートトーク
おうちハック勉強会2
おうちハック勉強会2
20120830 DBリファクタリング読書会第三回
20120830 DBリファクタリング読書会第三回
goroutineはどうやって動いているのか
goroutineはどうやって動いているのか
Mruby and microcomputer_board
Mruby and microcomputer_board
Global Lab Sendai主催 Unity初心者講座2018
Global Lab Sendai主催 Unity初心者講座2018
ご注文はライブラリですか?
1.
俺九番 @orekyuu
2.
自己紹介 • 俺九番です。 • 以前は石炭MODと幼女MOD作ってました。not
ロリコン • 最近は公開してないけどBukkitプラグインが中心。
3.
今日する話 • 最近製作中のライブラリ「RabbitHouse」の概要 • RabbitHouse内部の実装の話 •
RabbitHouseでアイテムを作るデモ • スクリプトでGUIをこねる話
4.
合同モド 日本ではいくつか合同MODを作る企画ができては消えていった 僕も挑戦して失敗した経験あり ・例 ed◯craft ケ◯Craft 料理M◯D ←僕が失敗したやつ
5.
失敗の原因 • アイデアは出るけど実装する人が少ない →プログラム出来ない人も参加できるようにすればええんちゃう?
6.
RabbitHouse 今はBlockやItemをツールを使って製作できるのが主な機能 独自の動きはプログラマが用意する。 ・対象 合同MOD 中規模以上のMOD ・効能 開発の進捗がぴょんぴょんします。
7.
どんなツールを作るか • ソースコードの生成 →コンパイル必要なのでプログラム書けない人には難しい。 変更はプログラマしか出来ない。 • データファイルを読み込んで使う →実行時にロードして使うことが可能。 ファイルの入れ替えで対応可能なので、開発環境整える必要なし。
8.
データ形式 { “blocks” : [ { “name”
: “ExampleBlock”, “resource” : “IconName.png” } ] }
9.
ロード処理 class MyBlocks { @BlockField(name
= “TestBlock”) public static Block testBlock; } BlockLoader loader = new BlockLoader(new MyBlocks(), “MODID”); loader.load(); loadメソッドのタイミングで、変数にインスタンスが入る。
10.
独自の機能をもつ classパラメータの指定があった場合は、指定されたクラスを使用して インスタンスを生成する。
11.
内部の実装 1.Gsonを使ってJsonをロード 2.classパラメータが存在すれば、Class.forNameでClassクラスのインスタンス を取ってインスタンス化。なければ普通にnewして作る。 3.パラメータを設定していく。 4.BlockLoaderのコンストラクタから受け取ったインスタンスからgetClassして、 getDeclaredFieldsでFieldの配列を取る。 5.FieldにBlockFieldアノテーションがついていれば手順2で作ったインスタン スをsetする リフレクション結構使ってるけど、MODのロード時の処理のため、速度が遅 くても問題なし。
12.
フォーマットのミスに対処する ロード時に不正なパラメータが見つかればBlockDataFormatException を発生させてプログラムを終了するようにしている。 フォーマットが間違っていた時点で正常に動かない可能性が高いから、 見つけたら即終了。
13.
デモ • 村人を殴るとゾンビになるアイテムを作ってみる
14.
今後の課題 • 自由度が低いし、まださほど便利に感じない • json吐き出すツールまだ作ってない •
プログラマ向けの機能も用意しなければ・・・ ↑ここの話するよ
15.
スクリプトでGUI マインクラフトを起動したままGUIのレイアウトを変更する。 某ロリコンホモ氏と通話してる時にアイデアを頂きました
16.
某ロリコンホモ曰く スクリプトマジ便利だよ GUIとかで使うと捗る アナルソイヤ
17.
18.
ロリコンホモはさておきやってみる
19.
スクリプト言語の選択 • JRuby • Jython •
JavaScript
20.
GUIをJavaScriptで描画できるようにする • javax.scriptパッケージのJavaScriptエンジンを使う。 • Java7まではMozila
Rhinoが搭載されている。 • Java8だとNashornが搭載されて、かなり早いらしいので使いたかった けど、まだ対応してないから仕方がない・・・。
21.
JavaScriptエンジンの使い方 //JavaScriptのエンジンを作成 ScriptEngineManager manager =
new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName(“js”);
22.
JavaScriptファイルを読み込む evalメソッドでReaderを渡して読み込む。 デバッグ中は必ず絶対パスで渡すこと。 //デバッグ中 engine.eval(new FileReader(“jsの絶対パス”)); //配布時 InputStream is
= getClass().getResourceAsStream(“hoge.js”); engine.eval(new InputStreamReader(is));
23.
jsのメソッド呼び出し ScriptEngineをInvocableでキャストし、invokeFunctionで呼び出す //jsのdrawForeground呼び出し invocable.invokeFunction("drawForeground", xSize, ySize, width,
height, this, fontRendererObj);
24.
JavaScriptからJavaのオブジェクトを生成 //import文に相当 importPackage(net.minecraft.util); //オブジェクト作成 var resource =
new ResourceLocation(“hoge.png”);
25.
バインド Java側のスコープをバインドします。 //バインドオブジェクトを作成 Bindings bindings =
new SimpleBindings(); //第二引数の値が第一引数の変数名でJS側から使用できる bindings.put(“js側の変数名”, 値); //スコープを指定してバインド engine.setBindings(bindings, ScriptContext.ENGINE_SCOPE);
26.
読み込むタイミング • GUIを開くごとに読み込みなおしても今のところ問題なかった。 • 開く時に固まるとかはない。 •
変更を反映するにはGUI開き直しでOK • ファイル変更通知を受け取ってリロードとか、一定時間ごとにすると マイクラの状態みながら編集できるし楽そう!
27.
デモ
28.
スクリプトの使い所 • GUIのような微調整が必要なもの。 • トライアンドエラーが多い場所。 速度がやっぱり遅いので、速度が求められるような所では使えない
29.
まとめ • 簡単な単純作業はRabbitHouse使って別の人に任せる。 • GUIとかはスクリプト使って楽に作る。 •
スクリプト使った処理はRabbitHouseに将来入れる予定。
30.
おしまい
Descargar ahora