<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>家 - プログラミングで遊ブログ</title>
	<atom:link href="https://lemon818.com/tag/%E5%AE%B6/feed/" rel="self" type="application/rss+xml" />
	<link>https://lemon818.com</link>
	<description>現役システムエンジニアが趣味でプログラミングする自由気ままなブログ</description>
	<lastBuildDate>Mon, 14 Feb 2022 12:36:37 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/>	<item>
		<title>【マイクラ・プログラミング】完全自動で和風建築の家をつくってみた！</title>
		<link>https://lemon818.com/minecraft_house/</link>
		
		<dc:creator><![CDATA[Take]]></dc:creator>
		<pubDate>Sun, 13 Feb 2022 14:30:47 +0000</pubDate>
				<category><![CDATA[minecraft]]></category>
		<category><![CDATA[Code Conndection for Minecraft]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[マイクラ]]></category>
		<category><![CDATA[和風建築]]></category>
		<category><![CDATA[家]]></category>
		<guid isPermaLink="false">https://lemon818.com/?p=6111</guid>

					<description><![CDATA[minecraft で完全自動で和風の家をつくってみたい！ &#160; そう思ったことはありませんか？ どーもTakeです。 &#160; 私も minecraft にはまっておりますが、自動で家をつくってみたい！とも…]]></description>
										<content:encoded><![CDATA[<div class="sc_frame_wrap solid yellow">
<div></div>
<div class="sc_frame "><strong><span style="color: #000000;">minecraft で完全自動で和風の家をつくってみたい！</span></strong></div>
</div>
<p>&nbsp;</p>
<p>そう思ったことはありませんか？</p>
<p>どーもTakeです。</p>
<p>&nbsp;</p>
<p>私も minecraft にはまっておりますが、自動で家をつくってみたい！とも思い。</p>
<p>Python プログラミングで<strong>「<span style="color: #3366ff;">高さ、横幅、奥行き</span>」</strong>全部自由の<span style="background-color: #ffff00;"><strong>完全自動の和風家建築プログラミング</strong></span><span style="background-color: #ffff00;"><strong>を開発しました！！</strong></span></p>
<p>私が作成したプログラミングを動かしたらこんな感じです！</p>
<p>&nbsp;</p>
<p><img fetchpriority="high" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2022/02/minecraft_ie.png" alt="" width="898" height="632" class="aligncenter size-full wp-image-6116" srcset="https://lemon818.com/wp/wp-content/uploads/2022/02/minecraft_ie.png 898w, https://lemon818.com/wp/wp-content/uploads/2022/02/minecraft_ie-300x211.png 300w, https://lemon818.com/wp/wp-content/uploads/2022/02/minecraft_ie-768x541.png 768w" sizes="(max-width: 898px) 100vw, 898px" /></p>
<p>&nbsp;</p>
<p>見た目は和風っぽいです！（たぶん）</p>
<p>内装はこんな感じです！（あんまり和風っぽくないかも、）</p>
<p>&nbsp;</p>
<p><img decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2022/02/minecraft_ie2.png" alt="" width="1141" height="596" class="aligncenter wp-image-6117" srcset="https://lemon818.com/wp/wp-content/uploads/2022/02/minecraft_ie2.png 1918w, https://lemon818.com/wp/wp-content/uploads/2022/02/minecraft_ie2-300x157.png 300w, https://lemon818.com/wp/wp-content/uploads/2022/02/minecraft_ie2-1024x535.png 1024w, https://lemon818.com/wp/wp-content/uploads/2022/02/minecraft_ie2-768x401.png 768w, https://lemon818.com/wp/wp-content/uploads/2022/02/minecraft_ie2-1536x802.png 1536w" sizes="(max-width: 1141px) 100vw, 1141px" /></p>
<p>&nbsp;</p>
<p>minecraftには和風modというのもあるんですが、<strong>なるべくmod入れずに作りたかったので、</strong>こんな感じの内装になりました。すみません。</p>
<p>&nbsp;</p>
<p>これは Minecraft 上で Python プログラミングを動かしている作成したものです。</p>
<p>Python プログラミング「<strong>code connection for Minecraft</strong>」と呼ばれるMinecraft 公式のプログラミング開発環境用のツールで開発しました。</p>
<p>※ 「<strong>code connection for Minecraft</strong>」の使い方について詳しく知りたい方は下記をどうぞ！</p>
<div class="sc_getpost"><a class="clearfix" href="https://lemon818.com/minecraft_code_connection/" ><div class="sc_getpost_thumb post-box-thumbnail__wrap"><img decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2022/01/example20220128.gif" width="1482" height="1043"></div><div class="title">【Windows11】Minecraftで Python プログラミングをはじめる方法！</div><div class="date">2022.1.26</div><div class="substr">マイクラでプログラミングを勉強したい！ マイクラでプログラミングするには何から始めたらいいの？わからない！  こんな悩みありませんか？ どーもTakeです。  私も最近趣味でマインクラフトという神ゲーで遊んでいます。 このゲームは自由度が高いというのが特徴ですが、なんとプログラミングで建物もつくれち...</div></a></div>
<p>&nbsp;</p>
<p>この記事では、私が作成したMinecraft 上で<strong>「<span style="color: #3366ff;">高さ、横幅、奥行き</span>」</strong>全部自由の<span style="background-color: #ffff00;"><strong>完全自動の和風建築の家のプログラミング</strong></span>ついて簡単に解説します。</p>
<p>※ YouTube 動画でも紹介しています！よければ<a href="https://youtu.be/5_ujbJ8k52E">こちら</a>どうぞ！</p>
<p>&nbsp;</p>
<div class="sc_frame_wrap block blue">
<div class="sc_frame_title">このプログラミングの特徴！</div>
<div class="sc_frame ">
<div class="sc_frame_text">
<div class="sc_designlist ol square solid blue">
<ol>
<li><strong>「<span style="color: #3366ff;">高さ、横幅、奥行き</span>」</strong>の完全自由に指定できます！</li>
<li>完全自動です！コマンドを入力するだけで何も動かず自動作成できます！</li>
</ol>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
<h2><strong>「高さ、奥行き、横幅のエレベーター」</strong>を建築するPython プログラミングの作り方</h2>
<p>&nbsp;</p>
<p>まず<strong>「高さ、奥行き、横幅のエレベーター」</strong>を建築する プログラミングですが、Python というプログラミング言語で作成します。</p>
<p>また開発環境ですが、「<strong>code connection for Minecraft</strong>」と呼ばれるMinecraft 公式のプログラミング開発環境用のツールで開発しました。</p>
<p>&nbsp;</p>
<p>作り方といっても、下の「エレベータプログラミのソースコード」を「<strong>code connection for Minecraft</strong>」のPython プログラミングのところに貼り付けて実行すればOKです！</p>
<p>※ イメージこんな感じです！こんな感じで貼り付けて右下の再生ボタンを押下すればOK！</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2022/01/code.png" alt="" width="1151" height="618" class="aligncenter wp-image-6092" srcset="https://lemon818.com/wp/wp-content/uploads/2022/01/code.png 1910w, https://lemon818.com/wp/wp-content/uploads/2022/01/code-300x161.png 300w, https://lemon818.com/wp/wp-content/uploads/2022/01/code-1024x550.png 1024w, https://lemon818.com/wp/wp-content/uploads/2022/01/code-768x413.png 768w, https://lemon818.com/wp/wp-content/uploads/2022/01/code-1536x825.png 1536w" sizes="auto, (max-width: 1151px) 100vw, 1151px" /></p>
<p>&nbsp;</p>
<p>※ よくわからない方は下記ページに詳しく記載しています。</p>
<div class="sc_getpost"><a class="clearfix" href="https://lemon818.com/minecraft_code_connection/" ><div class="sc_getpost_thumb post-box-thumbnail__wrap"><img decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2022/01/example20220128.gif" width="1482" height="1043"></div><div class="title">【Windows11】Minecraftで Python プログラミングをはじめる方法！</div><div class="date">2022.1.26</div><div class="substr">マイクラでプログラミングを勉強したい！ マイクラでプログラミングするには何から始めたらいいの？わからない！  こんな悩みありませんか？ どーもTakeです。  私も最近趣味でマインクラフトという神ゲーで遊んでいます。 このゲームは自由度が高いというのが特徴ですが、なんとプログラミングで建物もつくれち...</div></a></div>
<p>&nbsp;</p>
<h3>エレベータープログラミングの実行方法について</h3>
<p>&nbsp;</p>
<p><strong>「高さ、奥行き、横幅のエレベーター」</strong>のプログラミングを「code connection for Minecraft」のPythonプログラムに貼り付けて実行状態にできれば</p>
<p>あとはMinecraft のチャット欄に「build」と入力し Enter すればOKです！</p>
<p>&nbsp;</p>
<div class="sc_frame_wrap block orange">
<div class="sc_frame_title"><strong>「高さ、奥行き、横幅のエレベーター」の実行方法！</strong></div>
<div class="sc_frame ">
<div class="sc_frame_text"><strong>build &lt;横幅&gt; &lt;高さ&gt; &lt;奥行&gt;</strong></div>
</div>
</div>
<p>&nbsp;</p>
<h3>エレベータープログラミングのソースコード</h3>
<p>&nbsp;</p>
<p>Python プログラミングのソースコードを載せます。</p><pre class="crayon-plain-tag"># ############################################
# 標準メソッド
# ############################################

# 最初のポジション
D_F_X = 0
D_F_Y = -1
D_F_Z = 5

F_X = D_F_X
F_Y = D_F_Y
F_Z = D_F_Z

# 客席つくる
def makeSeat():
    blocks.fill(GLASS, pos(-1,1,-1), pos(1,2,-1), FillOperation.REPLACE)
    blocks.fill(GLASS, pos(-1,1,1), pos(1,2,1), FillOperation.REPLACE)
    blocks.fill(GLASS, pos(-1,1,0), pos(-1,2,0), FillOperation.REPLACE)
    blocks.fill(GLASS, pos(1,1,0), pos(1,2,0), FillOperation.REPLACE)

# 客席削除
def deleteSeat():
    blocks.fill(AIR, pos(-1,1,-1), pos(1,2,-1), FillOperation.REPLACE)
    blocks.fill(AIR, pos(-1,1,1), pos(1,2,1), FillOperation.REPLACE)
    blocks.fill(AIR, pos(-1,1,0), pos(-1,2,0), FillOperation.REPLACE)
    blocks.fill(AIR, pos(1,1,0), pos(1,2,0), FillOperation.REPLACE)

# 入力位置を最初の位置からのポジションずらす
def setPositionInfo(aX: number, aY: number, aZ: number):
    apX = F_X + aX
    apY = F_Y + aY
    apZ = F_Z + aZ
    return apX,apY,apZ

# ############################################
# 建物構築メソッド
# ############################################

# 和風建物
def buildWahuHouse(aX: number, aY: number, aZ: number):

    # 柱ブロック
    hashiraBlock = PLANKS_DARK_OAK

    # 床ブロック
    yukaBlock = COBBLESTONE

    # 階段ブロック
    stairsBlock = COBBLESTONE_STAIRS
    stairsBlock2 = BLOCK_OF_QUARTZ

    # 屋根ブロック
    roofBlocks = COBBLESTONE_STAIRS

    # 室内ブロック
    innerBlock1 = PLANKS_OAK
    innerBlock2 = BLOCK_OF_QUARTZ

    firstPosition = pos(F_X, F_Y, F_Z)
    apX,apY,apZ = setPositionInfo(aX, aY, aZ)   
    newPosition = pos(apX, apY, apZ)

    blocks.fill(AIR, firstPosition, newPosition, FillOperation.REPLACE)

    buildInner()
    buildWafuRoof()
    buildWafuTower()
    buildKagu()


    # 和風建物土台
    def buildWafuTower():
    
        # 柱
        blocks.fill(hashiraBlock, pos(F_X, F_Y, F_Z), pos(F_X, apY, F_Z), FillOperation.REPLACE)
        blocks.fill(hashiraBlock, pos(apX, F_Y, F_Z), pos(apX, apY, F_Z), FillOperation.REPLACE)
        blocks.fill(hashiraBlock, pos(F_X, F_Y, apZ), pos(F_X, apY, apZ), FillOperation.REPLACE)
        blocks.fill(hashiraBlock, pos(apX, F_Y, apZ), pos(apX, apY, apZ), FillOperation.REPLACE)
        # 床
        blocks.fill(yukaBlock, pos(F_X-1, F_Y+1, F_Z-1), pos(apX+1, F_Y+1, apZ+1), FillOperation.REPLACE)
        # 天井
        blocks.fill(hashiraBlock, pos(F_X, apY, F_Z), pos(apX, apY, apZ), FillOperation.REPLACE)
        # 階段
        blocks.fill(blocks.block_with_data(stairsBlock, 2), pos(F_X+2, F_Y+1, F_Z-1), pos(apX-2, F_Y+1, F_Z-1), FillOperation.REPLACE)
        # 扉
        blocks.fill(AIR, pos(F_X+aX/2, F_Y+2, F_Z), pos(F_X+aX/2+1, F_Y+3, F_Z), FillOperation.REPLACE)
        blocks.fill(blocks.block_with_data(ACACIA_DOOR, 1), pos(F_X+aX/2, F_Y+2, F_Z+1), pos(F_X+aX/2+1, F_Y+3, F_Z+1), FillOperation.REPLACE)

    # 和風建物屋根
    def buildWafuRoof():
    
        # 前
        blocks.fill(blocks.block_with_data(roofBlocks, 2), pos(F_X-2, apY+1, F_Z-3), pos(apX+2, apY+1, F_Z), FillOperation.REPLACE)
        blocks.fill(blocks.block_with_data(roofBlocks, 2), pos(F_X-1, apY+2, F_Z-2), pos(apX+1, apY+2, F_Z), FillOperation.REPLACE)
        blocks.fill(blocks.block_with_data(roofBlocks, 2), pos(F_X, apY+3, F_Z-1), pos(apX, apY+3, F_Z), FillOperation.REPLACE)
        # 奥
        blocks.fill(blocks.block_with_data(roofBlocks, 3), pos(F_X-2, apY+1, apZ+3), pos(apX+2, apY+1, apZ), FillOperation.REPLACE)
        blocks.fill(blocks.block_with_data(roofBlocks, 3), pos(F_X-1, apY+2, apZ+2), pos(apX+1, apY+2, apZ), FillOperation.REPLACE)
        blocks.fill(blocks.block_with_data(roofBlocks, 3), pos(F_X, apY+3, apZ+1), pos(apX, apY+3, apZ), FillOperation.REPLACE)
        # 左
        blocks.fill(blocks.block_with_data(roofBlocks, 1), pos(apX, apY+1, F_Z-2), pos(apX+2, apY+1, apZ+2), FillOperation.REPLACE)
        blocks.fill(blocks.block_with_data(roofBlocks, 1), pos(apX, apY+2, F_Z-1), pos(apX+1, apY+2, apZ+1), FillOperation.REPLACE)
        blocks.fill(blocks.block_with_data(roofBlocks, 1), pos(apX, apY+3, F_Z), pos(apX, apY+3, apZ), FillOperation.REPLACE)
        # 右
        blocks.fill(blocks.block_with_data(roofBlocks, 0), pos(F_X, apY+1, F_Z-2), pos(F_X-2, apY+1, apZ+2), FillOperation.REPLACE)
        blocks.fill(blocks.block_with_data(roofBlocks, 0), pos(F_X, apY+2, F_Z-1), pos(F_X-1, apY+2, apZ+1), FillOperation.REPLACE)
        blocks.fill(blocks.block_with_data(roofBlocks, 0), pos(F_X, apY+3, F_Z), pos(F_X, apY+3, apZ), FillOperation.REPLACE)

        # 上の土台
        fZ = F_Z
        mZ = F_Z+aX/2
        lZ = apZ
        for i in range(aY):
            if fZ < lZ:
                blocks.fill(blocks.block_with_data(roofBlocks, 2), pos(F_X+1, apY+4+i, fZ), pos(apX-1, apY+4+i, mZ), FillOperation.REPLACE)
                blocks.fill(blocks.block_with_data(roofBlocks, 3), pos(F_X+1, apY+4+i, mZ), pos(apX-1, apY+4+i, lZ), FillOperation.REPLACE)
            else :
                break
            fZ = fZ + 1
            lZ = lZ - 1
            mZ = fZ+(lZ-fZ)/2

    # 和風建物内部
    def buildInner():

        # 壁
        blocks.fill(innerBlock1, pos(F_X, F_Y+1, F_Z), pos(F_X, F_Y+aY/2-2, apZ), FillOperation.REPLACE)
        blocks.fill(innerBlock1, pos(apX, F_Y+1, F_Z), pos(apX, F_Y+aY/2-2, apZ), FillOperation.REPLACE)
        blocks.fill(innerBlock1, pos(F_X, F_Y+1, F_Z), pos(apX-1, F_Y+aY/2-2, F_Z), FillOperation.REPLACE)
        blocks.fill(innerBlock1, pos(F_X, F_Y+1, apZ), pos(apX-1, F_Y+aY/2-2, apZ), FillOperation.REPLACE)

        blocks.fill(innerBlock2, pos(F_X, F_Y+aY/2-1, F_Z), pos(F_X, apY+2, apZ), FillOperation.REPLACE)
        blocks.fill(innerBlock2, pos(apX, F_Y+aY/2-1, F_Z), pos(apX, apY+2, apZ), FillOperation.REPLACE)
        blocks.fill(innerBlock2, pos(F_X, F_Y+aY/2-1, F_Z), pos(apX, apY+2, F_Z), FillOperation.REPLACE)
        blocks.fill(innerBlock2, pos(F_X, F_Y+aY/2-1, apZ), pos(apX, apY+2, apZ), FillOperation.REPLACE)

        WINDOWS_BLOCK = AIR

        # 窓 正面
        for i in range(F_X,apX):
            if i - F_X >= 3 and (i -F_X) % 3 == 0 :
                blocks.fill(WINDOWS_BLOCK, pos(i, F_Y+aY/2+1, F_Z), pos(i, F_Y+aY/2+1, F_Z), FillOperation.REPLACE)


        # 窓 左右
        for i in range(F_Z,apZ):
            if i - F_Z &gt;= 3 and (i -F_Z) % 3 == 0 :
                blocks.fill(WINDOWS_BLOCK, pos(F_X, F_Y+aY/2+1, i), pos(F_X, F_Y+aY/2+1, i), FillOperation.REPLACE)
                blocks.fill(WINDOWS_BLOCK, pos(apX, F_Y+aY/2+1, i), pos(apX, F_Y+aY/2+1, i), FillOperation.REPLACE)

    # 家具
    def buildKagu():

        # ベッド
        blocks.fill(BED, pos(F_X+1, F_Y+2, apZ-1), pos(F_X+2, F_Y+2, apZ-1), FillOperation.REPLACE)

        # 本棚
        blocks.fill(BOOKSHELF, pos(F_X+4, F_Y+2, apZ-1), pos(apX-1, apY-2, apZ-1), FillOperation.REPLACE)

        # 松明
        blocks.fill(TORCH, pos(F_X+1, F_Y+4, apZ-1), pos(F_X+1, F_Y+4, apZ-2), FillOperation.REPLACE)
        blocks.fill(TORCH, pos(F_X+1, F_Y+4, apZ-1), pos(F_X+1, F_Y+4, apZ-2), FillOperation.REPLACE)

        # チェスト
        blocks.fill(blocks.block_with_data(CHEST, 4), pos(apX-1, F_Y+2, F_Z+1), pos(apX-1, apY-2, F_Z+2), FillOperation.REPLACE)

        # 台所
        blocks.fill(blocks.block_with_data(62, 5), pos(F_X+1, F_Y+2, F_Z+1), pos(F_X+1, F_Y+3, apZ-4), FillOperation.REPLACE)

        # 椅子
        blocks.place(blocks.block_with_data(SPRUCE_WOOD_STAIRS, 3), pos(apX-3, F_Y+2, F_Z+3))
        blocks.fill(blocks.block_with_data(SPRUCE_WOOD_STAIRS, 1), pos(apX-4, F_Y+2, F_Z+3), pos(apX-4, F_Y+2, apZ-3), FillOperation.REPLACE)
        blocks.place(blocks.block_with_data(SPRUCE_WOOD_STAIRS, 2), pos(apX-3, F_Y+2, apZ-3))

        # 焚火
        blocks.fill(yukaBlock, pos(apX-1, F_Y+2, F_Z+3), pos(apX-1, apY-2, F_Z+3), FillOperation.REPLACE)
        blocks.fill(yukaBlock, pos(apX-1, F_Y+2, apZ-3), pos(apX-1, apY-2, apZ-3), FillOperation.REPLACE)
        blocks.fill(yukaBlock, pos(apX-1, apY-2, F_Z+4), pos(apX-1, apY-2, apZ-4), FillOperation.REPLACE)
        blocks.fill(CAMPFIRE, pos(apX-1, F_Y+2, F_Z+4), pos(apX-1, F_Y+2, apZ-4), FillOperation.REPLACE)

        # 村人
        mobs.spawn(VILLAGER, pos(apX/2, F_Y+3, apZ/2))
        mobs.spawn(VILLAGER, pos(apX/2, F_Y+3, apZ/2))


# ############################################
# 呼び出し用メソッド
# ############################################

# チャット 家の建築
def on_on_chat5(INPUT_X=0,INPUT_Y=0,INPUT_Z=0):

    if INPUT_X &gt; 0 and INPUT_Y &gt; 0 and INPUT_Z &gt; 0:
        makeSeat()
        buildWahuHouse(INPUT_X, INPUT_Y, INPUT_Z)
        deleteSeat()
        player.say("完了")
    else:
        player.say("build x y z")
        player.say("例) build 8 8 8")

player.on_chat("build", on_on_chat5)</pre><p>
&nbsp;</p>
<h3><strong>「高さ、奥行き、横幅のエレベーター」</strong>プログラミングを実行する上での注意点</h3>
<p>&nbsp;</p>
<p>まずこのプログラムを実行する上での注意点です。</p>
<div class="sc_frame_wrap orange">
<div class="sc_frame ">
<div class="sc_frame_text">
<div class="sc_designlist ol square solid orange">
<ol>
<li><strong><span style="color: #ff0000;"><span style="color: #000000;">プログラミングを実行中は</span>プレイヤー（つまり自分自身）を絶対に動かさないこと！</span></strong></li>
<li><strong>プログラムを実行する前に「compass」コマンドを実行して位置を確認！</strong></li>
<li><strong>あまり無茶な動かし方をすると、正常に動かなくなる可能性もあります！</strong></li>
</ol>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h4>プログラミングを実行中はプレイヤー（つまり自分自身）を絶対に動かさないこと！</h4>
<p>&nbsp;</p>
<p>「高さ、奥行き、横幅のエレベーター」プログラミングを実行する際は必ずプレイヤーを操作しないようお願いします。</p>
<p>なぜなら動かしてしまうと建物の形がおかしなことになります。</p>
<p>&nbsp;</p>
<p>これはなぜかというと、Miecraft プログラミングで<strong>ブロックを置く処理を実行する際</strong>、</p>
<p>Minecraft のプログラミングの仕様上、<strong><span style="color: #3366ff;">プレイヤーの位置が原点</span>（つまり数学でいう（0,0,0）の点）になるから</strong>です。</p>
<p>&nbsp;</p>
<p>何言ってるかよくわからん人は下記図を見てください。</p>
<p>たとえばあるプレイヤーが水色の位置にブロックを置こうとします。</p>
<p>この場合、プログラミングで指定するブロックの配置場所は「プレイヤーの前の４ブロック」ですよね。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2022/01/minecraft_python_elevator3.png" alt="" width="341" height="490" class="aligncenter size-full wp-image-6089" srcset="https://lemon818.com/wp/wp-content/uploads/2022/01/minecraft_python_elevator3.png 341w, https://lemon818.com/wp/wp-content/uploads/2022/01/minecraft_python_elevator3-209x300.png 209w" sizes="auto, (max-width: 341px) 100vw, 341px" /></p>
<p>ではこのプログラムを実行する間にプレイヤーが動いてしまうと下記のようになります。</p>
<p>プログラムでは「プレイヤーの前の４ブロック」に置こうとしますが、プレイヤーが自体が移動してしまうため、</p>
<p>ブロックの配置場所がずれてしまうということになります。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2022/01/minecraft_python_elevator4.png" alt="" width="453" height="522" class="aligncenter wp-image-6090" srcset="https://lemon818.com/wp/wp-content/uploads/2022/01/minecraft_python_elevator4.png 506w, https://lemon818.com/wp/wp-content/uploads/2022/01/minecraft_python_elevator4-260x300.png 260w" sizes="auto, (max-width: 453px) 100vw, 453px" /></p>
<p>&nbsp;</p>
<p>こういう理由のため、「高さ、奥行き、横幅のエレベーター」プログラミングを実行する際はかならずプレイヤーを動かさないでください！</p>
<p>（見上げるとか視点を変える動作はOKです！）</p>
<p>&nbsp;</p>
<h3>「build」コマンドを実行する前に「compass」コマンドを実行して位置を確認！</h3>
<p>&nbsp;</p>
<p>Minecraft の世界では前とか後ろという方向性は、Minecraftのもつ X軸、Y軸、Z軸で決定しますが、</p>
<p>プログラミング開発している場合はどちらが前か正直わからないという悩みがあります。</p>
<p>&nbsp;</p>
<p>わたしは独自に「<strong>compass</strong>」というコマンド作成しており、下図のように床に<span style="color: #ff0000;"><strong>赤いブロック</strong></span>が出力されたほうを<span style="color: #ff0000;"><strong>前</strong></span>とわかるようにしています。</p>
<p>なので、建物を建築する前はかならず「<strong>compass</strong>」コマンドを実行するようにしましょう！</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2022/01/compass.png" alt="" width="1151" height="647" class="aligncenter wp-image-6093" srcset="https://lemon818.com/wp/wp-content/uploads/2022/01/compass.png 1920w, https://lemon818.com/wp/wp-content/uploads/2022/01/compass-300x169.png 300w, https://lemon818.com/wp/wp-content/uploads/2022/01/compass-1024x576.png 1024w, https://lemon818.com/wp/wp-content/uploads/2022/01/compass-768x432.png 768w, https://lemon818.com/wp/wp-content/uploads/2022/01/compass-1536x864.png 1536w" sizes="auto, (max-width: 1151px) 100vw, 1151px" /></p>
<p>&nbsp;</p>
<h3>あまり無茶な動かし方をすると、正常に動かなくなる可能性もあります！</h3>
<p>&nbsp;</p>
<p>これは Minecraft のプログラミングのスペック上仕方がないです。</p>
<p>例えば建物 10000階のエレベーターを作成しようとしても Minecraft 上では描くことができません。</p>
<p>なので、あまり無茶に動かさないようにお願いします。</p>
<p>&nbsp;</p>
<h2>最後に</h2>
<p>いかがでしたでしょうか？</p>
<p>この記事では、Minecraft でもPython プログラミングで<strong>「<span style="color: #3366ff;">高さ、横幅、奥行き</span>」</strong>全部自由の<span style="background-color: #ffff00;"><strong>完全自動の和風建築の家のプログラミング</strong></span><span style="background-color: #ffff00;"><strong>を開発しました！！</strong></span></p>
<p>&nbsp;</p>
<p>YouTubeでも紹介していますので、ぜひそちらもご覧ください。</p>
<p>この記事が読者の Python 開発のお役に立てれば幸いです。</p>
<p>ではでは</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
