0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用Python在游戲中實(shí)現(xiàn)延時攝影

科技綠洲 ? 來源:Python實(shí)用寶典 ? 作者:Python實(shí)用寶典 ? 2023-10-30 09:52 ? 次閱讀

這個時代,隨著游戲引擎技術(shù)的快速發(fā)展,游戲畫面越來越精美,許多人迷上了游戲內(nèi)的角色、場景。

尤其是端游,顯卡技術(shù)能夠支撐精美的游戲畫面,最有名的莫過于《地平線》系列游戲。

很多玩家希望拍攝這些精美游戲中的畫面,尤其是希望能拍攝到游戲內(nèi)不同時刻的畫面,為了滿足這個需求,我們就需要用上延時攝影。游戲內(nèi)的時間過得比現(xiàn)實(shí)世界更快,一個小時內(nèi)可能你就能經(jīng)歷白天的夜晚的變化,這也為延時攝影提供了很好的環(huán)境。

那么究竟怎么在拍攝中實(shí)現(xiàn)延時的效果呢?方法大致有兩種,最簡單的可以先錄制視頻,然后用后期剪輯軟件或者特效軟件通過丟幀的方法實(shí)現(xiàn),但這樣一來便造成了巨大的浪費(fèi)。拍幾個小時的視頻,如果通過丟幀實(shí)現(xiàn)延時效果,最后轉(zhuǎn)換為幾十分鐘的片段,那么被丟掉的幀就要比最后留下的多得多。如果要實(shí)現(xiàn)更高速的畫面運(yùn)動,這種浪費(fèi)無疑將會被更加擴(kuò)大。

本篇教程介紹第二種方法,定時截圖的形式,我們將結(jié)合前面Python實(shí)用寶典使用過的三個模塊——moviepy、win32gui 及 PIL 為大家講解如何使用Python在游戲中實(shí)現(xiàn)延時攝影,我還將教你如何將圖片拼接成視頻、添加背景音樂一條龍操作。

1.準(zhǔn)備

開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上,如果沒有,可以訪問這篇文章:超詳細(xì)Python安裝指南 進(jìn)行安裝。

**(可選1) **如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda,它內(nèi)置了Python和pip.

**(可選2) **此外,推薦大家用VSCode編輯器,它有許多的優(yōu)點(diǎn):Python 編程的最好搭檔—VSCode 詳細(xì)指南

請選擇以下任一種方式輸入命令安裝依賴

  1. Windows 環(huán)境 打開 Cmd (開始-運(yùn)行-CMD)。
  2. MacOS 環(huán)境 打開 Terminal (command+空格輸入Terminal)。
  3. 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install moviepy
pip install pypiwin32
pip install pillow

本文所有代碼均開源在:https://github.com/Ckend/python-time-lapse-photo 倉庫,如果你無法訪問GitHub,也可以在Python實(shí)用寶典后臺回復(fù) 延時攝影 下載。

2.定時"拍攝"

為了實(shí)現(xiàn)定時拍攝的邏輯,我們需要用到pypiwin32模塊和pillow模塊,在之前的這篇文章中有介紹過:

超方便的 Python 自動喚醒窗口截圖腳本

分為三個步驟:

  1. 獲得游戲窗口界面
  2. 獲得游戲界面大小
  3. 截圖

每隔N秒定時循環(huán)執(zhí)行以上三個步驟,代碼如下:

# main.py
# Python實(shí)用寶典
# 2022-03-25
import time
import win32gui
from PIL import ImageGrab


def get_window_pos(name):
    name = name
    handle = win32gui.FindWindow(0, name)
    if handle == 0:
        return None
    else:
        return win32gui.GetWindowRect(handle), handle

while True:
    try:
        (x1, y1, x2, y2), handle = get_window_pos('極限競速:地平線 4')
        win32gui.SetForegroundWindow(handle)
        img_ready = ImageGrab.grab((x1, y1, x2, y2))
        img_ready.save(f"./result/{time.time()}.jpg")
        time.sleep(5)
    except Exception as e:
        print(e)

請注意,"極限競速:地平線 4" 要改成你對應(yīng)拍攝的游戲名稱,這樣,運(yùn)行程序后就會自動在result文件夾下定時生成截圖:

成功截取你想要的時間段的場景圖片后,就可以進(jìn)行下面的拼接和補(bǔ)充背景音樂部分。

3.拼接延時攝影視頻

為了達(dá)到延時攝影的效果,我們在這一部分中將使用moviepy模塊,拼接所有圖片到一個視頻中。

當(dāng)然還要補(bǔ)充背景音樂,代碼其實(shí)非常簡單,調(diào)用了部分moviepy模塊的功能:

# jointer.py
# Python實(shí)用寶典
# 2022-03-25
import os
import moviepy
import moviepy.video.io.ImageSequenceClip
from moviepy.editor import *

def pics2video(frames_dir, video_dst, music, fps=10):
    """
    圖片合成MP4

    Args:
        frames_dir (str): 圖片目錄
        video_dst (str): 目標(biāo)目錄
        fps (int, optional): 幀數(shù). Defaults to 25.
    """
    frames_name = sorted(os.listdir(frames_dir))
    frames_path = [frames_dir+frame_name for frame_name in frames_name]
    clip = moviepy.video.io.ImageSequenceClip.ImageSequenceClip(frames_path, fps=fps)
    
    audio_clip = AudioFileClip(music).volumex(0.5)
    audio = afx.audio_loop( audio_clip, duration=clip.duration)
    final_video = clip.set_audio(audio)

    final_video.write_videofile(video_dst, codec='libx264')

music = '打上花火.mp3'
frames_dir = './result/'
video_dst = 'screenshots.mp4'
pics2video(frames_dir, video_dst, music)

1.將你的音樂放在當(dāng)前目錄下,修改music變量為對應(yīng)的文件名。

2.調(diào)整你想要的fps參數(shù)——幀數(shù),這個值越低,畫面越順暢。

運(yùn)行此文件后就會在當(dāng)前文件夾下生成 'screenshots.mp4'. 這個就是我們的處理結(jié)果了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 模塊
    +關(guān)注

    關(guān)注

    7

    文章

    2750

    瀏覽量

    48187
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4813

    瀏覽量

    85316
  • PIL
    PIL
    +關(guān)注

    關(guān)注

    0

    文章

    19

    瀏覽量

    8673
收藏 人收藏

    評論

    相關(guān)推薦

    電容式感應(yīng)在電玩游戲中的應(yīng)用

    電容式感應(yīng)在電玩游戲中的應(yīng)用  電玩游戲應(yīng)用擁有多項技術(shù)層級,尤其是軟件方面,然而游戲本身的才是主角。   繪圖與處理速度能限制或展現(xiàn)游戲中
    發(fā)表于 09-12 16:43

    延時攝影怎么玩?但如果你有一臺compass……

    記錄片的部分片段。我們先來看延時攝影的原理是什么?它以一種將時間壓縮的拍攝技術(shù)。一段延時攝影視頻中,物體或者景物緩慢變化的過程被壓縮到一個
    發(fā)表于 12-19 09:48

    玩轉(zhuǎn)延時攝影,compass黑盒子的秘密

    拍照錄視頻,重要的是還有延時攝影的功能。以前一提到延時攝影,以前聽起來就很高大上,不是什么攝影大V都玩不好的樣子。但是現(xiàn)在越來越簡便設(shè)備和處
    發(fā)表于 01-12 21:35

    Python

    的原型(有時甚至是程序的最終界面),然后對其中有特別要求的部分,用更合適的語言改寫,比如3D游戲中的圖形渲染模塊,性能要求特別高,就可以用C/C++重寫,而后封裝為Python可以調(diào)用的擴(kuò)展類庫。需要注意的是您使用擴(kuò)展類庫時可
    發(fā)表于 04-14 10:15

    電容式感應(yīng)在電玩游戲中的應(yīng)用

      電玩游戲應(yīng)用擁有多項技術(shù)層級,尤其是軟件方面,然而游戲本身的才是主角?! ±L圖與處理速度能限制或展現(xiàn)游戲中軟件的開發(fā)狀況,因此最容易受到消費(fèi)者和評論家關(guān)注。而主機(jī)控制器(cons
    發(fā)表于 10-25 11:17

    采用單片機(jī)來實(shí)現(xiàn)的智能俄羅斯方塊游戲

    俄羅斯方塊游戲算法請參考俄羅斯方塊游戲的算法1.概述俄羅斯方塊是一款風(fēng)靡全球的益智游戲。它規(guī)則簡單,容易上手,且游戲過程變化無窮,使用戶
    發(fā)表于 11-19 08:26

    水滴攝影是如何實(shí)現(xiàn)的?

    水滴攝影攝影是一門通過探索和學(xué)習(xí)來灌輸?shù)乃囆g(shù)。數(shù)百次點(diǎn)擊就能捕捉到一張完美的照片,攝影師臉上的滿足感眨眼之間就被掩蓋了。各種類型的
    發(fā)表于 05-01 16:25

    單片機(jī)游戲中的實(shí)際應(yīng)用

    本軟件介紹單片機(jī)游戲中的實(shí)際應(yīng)用,你必須使用正常方式驅(qū)動!
    發(fā)表于 03-23 17:24 ?1次下載

    vr游戲中的應(yīng)用案例分析

    傳統(tǒng)的網(wǎng)絡(luò)游戲技術(shù),目的是僅僅是為了滿足玩家的精神追求,更加注重游戲世界的設(shè)定,而忽視了玩家體驗,將玩家拒之于顯示器之外,玩家只能通過操作角色來體驗游戲中的各種設(shè)定,游戲體驗僅僅停留于
    發(fā)表于 03-08 08:42 ?2.6w次閱讀

    游戲中視覺風(fēng)格的歷史和現(xiàn)狀

    Double Fine(殘酷傳奇,破碎時代)的Lee Petty介紹了游戲中視覺風(fēng)格的歷史和現(xiàn)狀,并提供了如何使用視覺風(fēng)格您自己的游戲中產(chǎn)生最大影響的見解。
    的頭像 發(fā)表于 11-08 06:19 ?2860次閱讀

    游戲中怎么實(shí)現(xiàn)AI?

    游戲開發(fā)人員的挑戰(zhàn)在于如何不斷突破極限,開發(fā)出越來越引人注目的游戲。 計算機(jī)控制的人工智能 (AI) 已經(jīng)發(fā)生了多種形式的演變,以滿足測試要求。 然而,為游戲玩家設(shè)計符合其動作并促進(jìn)玩家數(shù)量增長的自適應(yīng)對手并非易事。
    的頭像 發(fā)表于 01-03 12:38 ?2884次閱讀

    使用Python實(shí)現(xiàn)游戲APP充值A(chǔ)PI調(diào)用的代碼實(shí)例

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用Python實(shí)現(xiàn)游戲APP充值A(chǔ)PI調(diào)用的代碼實(shí)例。
    發(fā)表于 01-15 11:34 ?38次下載

    Imagination和完美世界游戲攜手推進(jìn)光線追蹤游戲中的應(yīng)用

    Imagination Technologies和完美世界游戲(Perfect World Games)宣布,雙方正在合作將光線追蹤技術(shù)(ray tracing)整合至完美世界游戲的移動游戲中。
    發(fā)表于 05-06 10:09 ?716次閱讀

    簡單的延時攝影PiCamera

    電子發(fā)燒友網(wǎng)站提供《簡單的延時攝影PiCamera.zip》資料免費(fèi)下載
    發(fā)表于 10-28 14:50 ?0次下載
    簡單的<b class='flag-5'>延時</b><b class='flag-5'>攝影</b>PiCamera

    Xbox應(yīng)用新增“游戲中心”功能

    微軟 Xbox 體驗高級產(chǎn)品經(jīng)理 Dylan Meade表示,“游戲中心”便于玩家追蹤游戲進(jìn)展,發(fā)現(xiàn)游戲最新內(nèi)容和擴(kuò)展包,與友人聯(lián)機(jī)競技,接收開發(fā)商的最新新聞等。
    的頭像 發(fā)表于 02-27 14:02 ?866次閱讀